diff --git a/src/board/UBLibraryController.cpp b/src/board/UBLibraryController.cpp index 1eec04f6..745187d2 100644 --- a/src/board/UBLibraryController.cpp +++ b/src/board/UBLibraryController.cpp @@ -46,10 +46,7 @@ #include static quint32 magicNumber = 0xACDCAFE0; -static QString applicationsVirtualPath = "$applications$"; -static QString picturesVirtualPath = "$pictures$"; static QString favoriteVirtualPath = "$favorite$"; -static QString interactivesCategoryPath; UBLibraryController::UBLibraryController(QWidget *pParentWidget, UBBoardController *pBoardController) : QObject(pParentWidget), @@ -80,6 +77,8 @@ UBLibraryController::UBLibraryController(QWidget *pParentWidget, UBBoardControll mPicturesStandardDirectoryPath = QUrl::fromLocalFile(UBDesktopServices::storageLocation(QDesktopServices::PicturesLocation)); userPath(mPicturesStandardDirectoryPath); + mInteractiveUserDirectoryPath = QUrl::fromLocalFile(UBSettings::settings()->uniboardInteractiveUserDirectory()); + createInternalWidgetItems(); } @@ -224,14 +223,13 @@ QList UBLibraryController::rootCategoriesList() element->setMoveable(false); categories << element; - element = new UBLibElement(eUBLibElementType_Folder, mVideoStandardDirectoryPath, tr("Movies", "Movies category element")); categoryImage = new QImage(":images/libpalette/MoviesCategory.svg"); element->setThumbnail(categoryImage); element->setMoveable(false); categories << element; - element = new UBLibElement(eUBLibElementType_VirtualFolder, picturesVirtualPath, tr("Pictures", "Pictures category element")); + element = new UBLibElement(eUBLibElementType_Folder, mPicturesStandardDirectoryPath, tr("Pictures", "Pictures category element")); categoryImage = new QImage(":images/libpalette/PicturesCategory.svg"); element->setThumbnail(categoryImage); element->setMoveable(false); @@ -246,7 +244,7 @@ QList UBLibraryController::rootCategoriesList() categoryImage = new QImage(":images/libpalette/ApplicationsCategory.svg"); - element = new UBLibElement(eUBLibElementType_VirtualFolder, applicationsVirtualPath, tr("Applications", "Applications category element")); + element = new UBLibElement(eUBLibElementType_Folder, mInteractiveUserDirectoryPath, tr("Applications", "Applications category element")); element->setThumbnail(categoryImage); element->setMoveable(false); categories << element; @@ -258,8 +256,8 @@ QList UBLibraryController::rootCategoriesList() categories << element; categoryImage = new QImage(":images/libpalette/InteractivesCategory.svg"); - interactivesCategoryPath = UBSettings::settings()->uniboardGipLibraryDirectory(); - element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(interactivesCategoryPath), tr("Interactives", "Interactives category element")); + mInteractiveCategoryPath = QUrl::fromLocalFile(UBSettings::settings()->uniboardGipLibraryDirectory()); + element = new UBLibElement(eUBLibElementType_Folder, mInteractiveCategoryPath, tr("Interactives", "Interactives category element")); element->setThumbnail(categoryImage); element->setMoveable(false); categories << element; @@ -315,9 +313,27 @@ QImage* UBLibraryController::thumbnailForFile(UBLibElement* pElement) return createThumbnail(pElement); } -QList UBLibraryController::listElementsInPath(const QString& pPath) +QList UBLibraryController::addVirtualElementsForItemPath(const QString& pPath) { QList content; + if (pPath == mInteractiveCategoryPath.toString()) + content << mInternalLibElements; + else if (pPath == mPicturesStandardDirectoryPath.toLocalFile()){ + QUrl path = QUrl::fromLocalFile(UBSettings::settings()->uniboardImageLibraryDirectory()); + userPath(path); + content << listElementsInPath(path.toLocalFile()); + } + else if (pPath == mInteractiveUserDirectoryPath.toLocalFile()){ + content << listElementsInPath(UBSettings::settings()->uniboardInteractiveLibraryDirectory()); + content << listElementsInPath(UBSettings::settings()->uniboardInteractiveFavoritesDirectory()); + } + + return content; +} + +QList UBLibraryController::listElementsInPath(const QString& pPath) +{ + QList content = addVirtualElementsForItemPath(pPath); QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(pPath); QFileInfoList::iterator fileInfo; @@ -346,56 +362,14 @@ QList UBLibraryController::listElementsInPath(const QString& pPat content << element; } - if (pPath == interactivesCategoryPath) - content << mInternalLibElements; - return content; -} - -QList UBLibraryController::elementsInPicturesVirtualForlder() -{ - QList content; - - UBLibElement *element = new UBLibElement(eUBLibElementType_Folder, mPicturesStandardDirectoryPath, tr("User Pictures", "User Pictures directory")); - - QImage* categoryImage = new QImage(":images/libpalette/PicturesCategory.svg"); - element->setThumbnail(categoryImage); - content << element; - - QUrl path = QUrl::fromLocalFile(UBSettings::settings()->uniboardImageLibraryDirectory()); - userPath(path); - element = new UBLibElement(eUBLibElementType_Folder, path,tr("Sankoré 3.1 Pictures", "Sankoré 3.1 Pictures directory")); - - element->setThumbnail(categoryImage); - content << element; - return content; } -QList UBLibraryController::elementsInApplicationsVirtualForlder() -{ - QList content; - - UBLibElement *element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(UBSettings::settings()->uniboardInteractiveLibraryDirectory()), tr("Sankoré Interactive")); - content << element; - - element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(UBSettings::settings()->uniboardInteractiveUserDirectory()), tr("User Interactive")); - content << element; - - element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(UBSettings::settings()->uniboardInteractiveFavoritesDirectory()), tr("Favorite Interactive")); - content << element; - return content; - -} QList UBLibraryController::listElementsInVirtualForlder(UBLibElement* pElement) { - if (pElement->path() == applicationsVirtualPath) - return elementsInApplicationsVirtualForlder(); - else if (pElement->path() == picturesVirtualPath) - return elementsInPicturesVirtualForlder(); - else - return mFavoriteList; + return mFavoriteList; } void UBLibraryController::moveContent(QList sourceList, UBLibElement *pDestination) diff --git a/src/board/UBLibraryController.h b/src/board/UBLibraryController.h index 2061d689..2a84361d 100644 --- a/src/board/UBLibraryController.h +++ b/src/board/UBLibraryController.h @@ -103,8 +103,8 @@ class UBLibraryController : public QObject void addToFavorite(QList elementList); void removeFromFavorite(QList elementList); - void importItemOnLibrary(QString& pItemString); - void importImageOnLibrary(QImage &pImage); + void importItemOnLibrary(QString& pItemString); + void importImageOnLibrary(QImage &pImage); QString favoritePath(); @@ -169,16 +169,17 @@ class UBLibraryController : public QObject void userPath(QUrl &pPath); QImage* thumbnailForFile(UBLibElement* pPath); QImage* createThumbnail(UBLibElement* pPath); - QList elementsInPicturesVirtualForlder(); - QList elementsInApplicationsVirtualForlder(); + QList addVirtualElementsForItemPath(const QString& pPath); void createInternalWidgetItems(); void routeItem(QString& pItem, QString pMiddleDirectory = QString()); - void createDirectory(QUrl& pDirPath); + void createDirectory(QUrl& pDirPath); - QUrl mAudioStandardDirectoryPath; - QUrl mVideoStandardDirectoryPath; - QUrl mPicturesStandardDirectoryPath; + QUrl mAudioStandardDirectoryPath; + QUrl mVideoStandardDirectoryPath; + QUrl mPicturesStandardDirectoryPath; + QUrl mInteractiveUserDirectoryPath; + QUrl mInteractiveCategoryPath; QStringList addItemsToCurrentLibrary(const QDir& pSelectedFolder, const QStringList& pExtensions);