UBFeaturesController.h 2.55 KB
Newer Older
Anna Udovichenko's avatar
Anna Udovichenko committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#ifndef UBFEATURESCONTROLLER_H
#define UBFEATURESCONTROLLER_H

#include <QMetaType>
#include <QObject>
#include <QWidget>
#include <QVector>
#include <QString>
#include <QPixmap>

//#include "UBDockPaletteWidget.h"

enum UBFeatureElementType
{
    FEATURE_CATEGORY,
    FEATURE_VIRTUALFOLDER,
    FEATURE_FOLDER,
    FEATURE_INTERACTIVE,
    FEATURE_ITEM
};

class UBFeature
{
public:
Ivan Ilin's avatar
Ivan Ilin committed
25
    UBFeature() {;}
Anna Udovichenko's avatar
Anna Udovichenko committed
26
	UBFeature(const UBFeature &f);
Ivan Ilin's avatar
Ivan Ilin committed
27 28 29 30 31
    UBFeature(const QString &url, const QPixmap &icon, const QString &name, const QString &realPath, UBFeatureElementType type = FEATURE_CATEGORY);
    virtual ~UBFeature() {;}
    QString getName() const { return mName; }
    QPixmap getThumbnail() const {return mThumbnail;}
    QString getUrl() const { return virtualPath; }
32
	//QString getPath() const { return mPath; };
Ivan Ilin's avatar
Ivan Ilin committed
33 34
    QString getFullPath() const { return mPath; }
    UBFeatureElementType getType() const { return elementType; }
Anna Udovichenko's avatar
Anna Udovichenko committed
35 36 37 38
private:
	QString virtualPath;
    QPixmap mThumbnail;
    QString mName;
Ivan Ilin's avatar
Ivan Ilin committed
39 40
	QString mPath;
    UBFeatureElementType elementType;
Anna Udovichenko's avatar
Anna Udovichenko committed
41 42 43 44 45 46 47 48 49 50 51
};
Q_DECLARE_METATYPE( UBFeature )


class UBFeaturesController : public QObject
{
Q_OBJECT
public:
	UBFeaturesController(QWidget *parentWidget);
    virtual ~UBFeaturesController();

Ivan Ilin's avatar
Ivan Ilin committed
52
    QVector <UBFeature>* getFeatures()const { return featuresList; }
Anna Udovichenko's avatar
Anna Udovichenko committed
53
	
Ivan Ilin's avatar
Ivan Ilin committed
54
    QString getRootPath()const { return rootPath; }
Anna Udovichenko's avatar
Anna Udovichenko committed
55 56 57 58

	void addItemToPage(const UBFeature &item);
	static QPixmap thumbnailForFile( const QString &path );
	static UBFeature moveItemToFolder( const QUrl &url, const UBFeature &destination );
59
	static UBFeature copyItemToFolder( const QUrl &url, const UBFeature &destination );
Anna Udovichenko's avatar
Anna Udovichenko committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
private:
	void initDirectoryTree();
	void fileSystemScan(const QString &currPath, const QString & currVirtualPath);
	static QPixmap createThumbnail(const QString &path);
	//void addImageToCurrentPage( const QString &path );

	QVector <UBFeature> *featuresList;
	UBFeature *rootElement;

	QString mUserAudioDirectoryPath;
    QString mUserVideoDirectoryPath;
    QString mUserPicturesDirectoryPath;
    QString mUserInteractiveDirectoryPath;
    QString mUserAnimationDirectoryPath;

	QString libraryPath;
	QString mLibAudioDirectoryPath;
    QString mLibVideoDirectoryPath;
    QString mLibPicturesDirectoryPath;
    QString mLibInteractiveDirectoryPath;
    QString mLibAnimationDirectoryPath;
	QString mLibApplicationsDirectoryPath;
	QString mLibShapesDirectoryPath;

	QString rootPath;
	QString audiosPath;
	QString moviesPath;
	QString picturesPath;
	QString appPath;
	QString flashPath;
	QString shapesPath;
	QString interactPath;

	int mLastItemOffsetIndex;
};



Ivan Ilin's avatar
Ivan Ilin committed
98
#endif