You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.3 KiB
153 lines
4.3 KiB
#ifndef UBFEATURESCONTROLLER_H
|
|
#define UBFEATURESCONTROLLER_H
|
|
|
|
#include <QMetaType>
|
|
#include <QObject>
|
|
#include <QWidget>
|
|
#include <QSet>
|
|
#include <QVector>
|
|
#include <QString>
|
|
#include <QPixmap>
|
|
#include <QMap>
|
|
#include <QUrl>
|
|
#include <QByteArray>
|
|
|
|
//#include "UBDockPaletteWidget.h"
|
|
|
|
enum UBFeatureElementType
|
|
{
|
|
FEATURE_CATEGORY,
|
|
FEATURE_VIRTUALFOLDER,
|
|
FEATURE_FOLDER,
|
|
FEATURE_INTERACTIVE,
|
|
FEATURE_INTERNAL,
|
|
FEATURE_ITEM,
|
|
FEATURE_TRASH,
|
|
FEATURE_FAVORITE,
|
|
FEATURE_SEARCH
|
|
};
|
|
|
|
class UBFeature
|
|
{
|
|
public:
|
|
UBFeature() {;}
|
|
//UBFeature(const UBFeature &f);
|
|
UBFeature(const QString &url, const QPixmap &icon, const QString &name, const QUrl &realPath, UBFeatureElementType type = FEATURE_CATEGORY);
|
|
virtual ~UBFeature() {;}
|
|
QString getName() const { return mName; }
|
|
QPixmap getThumbnail() const {return mThumbnail;}
|
|
QString getVirtualPath() const { return virtualPath; }
|
|
//QString getPath() const { return mPath; };
|
|
QUrl getFullPath() const { return mPath; }
|
|
QString getFullVirtualPath() const { return virtualPath + "/" + mName; }
|
|
QString getUrl() const;
|
|
UBFeatureElementType getType() const { return elementType; }
|
|
|
|
bool isFolder() const;
|
|
bool isDeletable() const;
|
|
bool operator ==( const UBFeature &f )const;
|
|
bool operator !=( const UBFeature &f )const;
|
|
const QMap<QString,QString> & getMetadata() const { return metadata; }
|
|
void setMetadata( const QMap<QString,QString> &data ) { metadata = data; }
|
|
private:
|
|
QString virtualPath;
|
|
QPixmap mThumbnail;
|
|
QString mName;
|
|
QUrl mPath;
|
|
UBFeatureElementType elementType;
|
|
QMap<QString,QString> metadata;
|
|
};
|
|
Q_DECLARE_METATYPE( UBFeature )
|
|
|
|
|
|
class UBFeaturesController : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
UBFeaturesController(QWidget *parentWidget);
|
|
virtual ~UBFeaturesController();
|
|
|
|
QList <UBFeature>* getFeatures()const { return featuresList; }
|
|
|
|
const QString& getRootPath()const { return rootPath; }
|
|
|
|
void addItemToPage( const UBFeature &item );
|
|
void addItemAsBackground( const UBFeature &item );
|
|
const UBFeature& getCurrentElement()const { return currentElement; }
|
|
void setCurrentElement( const UBFeature &elem ) { currentElement = elem; }
|
|
const UBFeature & getTrashElement () const { return trashElement; }
|
|
|
|
UBFeature addDownloadedFile( const QUrl &sourceUrl, const QByteArray &pData );
|
|
|
|
UBFeature moveItemToFolder( const QUrl &url, const UBFeature &destination );
|
|
UBFeature copyItemToFolder( const QUrl &url, const UBFeature &destination );
|
|
void deleteItem( const QUrl &url );
|
|
bool isTrash( const QUrl &url );
|
|
UBFeature newFolder( const QString &name );
|
|
UBFeature addToFavorite( const QUrl &path );
|
|
void removeFromFavorite( const QUrl &path );
|
|
UBFeature importImage( const QImage &image, const UBFeature &destination );
|
|
|
|
static QString fileNameFromUrl( const QUrl &url );
|
|
static QPixmap thumbnailForFile( const QString &path );
|
|
static bool isDeletable( const QUrl &url );
|
|
private:
|
|
void initDirectoryTree();
|
|
void fileSystemScan(const QUrl &currPath, const QString & currVirtualPath);
|
|
static QPixmap createThumbnail(const QString &path);
|
|
//void addImageToCurrentPage( const QString &path );
|
|
void loadFavoriteList();
|
|
void saveFavoriteList();
|
|
UBFeature getDestinationForItem( const QUrl &url );
|
|
|
|
static UBFeatureElementType fileTypeFromUrl( const QString &path );
|
|
|
|
QList <UBFeature> *featuresList;
|
|
UBFeature *rootElement;
|
|
|
|
QUrl mUserAudioDirectoryPath;
|
|
QUrl mUserVideoDirectoryPath;
|
|
QUrl mUserPicturesDirectoryPath;
|
|
QUrl mUserInteractiveDirectoryPath;
|
|
QUrl mUserAnimationDirectoryPath;
|
|
|
|
QString libraryPath;
|
|
QUrl mLibAudioDirectoryPath;
|
|
QUrl mLibVideoDirectoryPath;
|
|
QUrl mLibPicturesDirectoryPath;
|
|
QUrl mLibInteractiveDirectoryPath;
|
|
QUrl mLibAnimationDirectoryPath;
|
|
QUrl mLibApplicationsDirectoryPath;
|
|
QUrl mLibShapesDirectoryPath;
|
|
QUrl trashDirectoryPath;
|
|
QUrl mLibSearchDirectoryPath;
|
|
|
|
QString rootPath;
|
|
QString audiosPath;
|
|
QString moviesPath;
|
|
QString picturesPath;
|
|
QString appPath;
|
|
QString flashPath;
|
|
QString shapesPath;
|
|
QString interactPath;
|
|
QString trashPath;
|
|
QString favoritePath;
|
|
|
|
int mLastItemOffsetIndex;
|
|
UBFeature currentElement;
|
|
UBFeature trashElement;
|
|
UBFeature favoriteElement;
|
|
UBFeature audiosElement;
|
|
UBFeature moviesElement;
|
|
UBFeature picturesElement;
|
|
UBFeature interactElement;
|
|
UBFeature flashElement;
|
|
UBFeature shapesElement;
|
|
UBFeature webSearchElement;
|
|
|
|
QSet <QUrl> *favoriteSet;
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|