From b083bd564dfd3d6cf1181053bd154bbc53bc861f Mon Sep 17 00:00:00 2001 From: Craig Drummond Date: Sun, 29 Jul 2018 18:03:01 +0100 Subject: [PATCH] Use ":/" as root path for windows folder browse, seems to then list each drive. Closes #1331 --- ChangeLog | 3 ++- gui/folderpage.cpp | 10 ---------- gui/localfolderpage.cpp | 28 ++-------------------------- gui/localfolderpage.h | 11 ----------- 4 files changed, 4 insertions(+), 48 deletions(-) diff --git a/ChangeLog b/ChangeLog index cf42f109a..12b556112 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16,7 +16,8 @@ 11. Check HTTP stream URLs are valid URLs, and scheme starts with http. 12. Due to reports of crashes in libvlc code, default to using QtMultiMedia for HTTP stream playback on Linux builds (already default for Mac/Win). -13. Add all drives (apart from A and B) to folder page for windows. +13. Use ":/" as root path for windows folder browse, seems to then list each + drive. 14. If a dynamic playlist has rating 0..5 stars, then include all songs (even those without an explicit rating). diff --git a/gui/folderpage.cpp b/gui/folderpage.cpp index 592c5f0a6..92b5201eb 100644 --- a/gui/folderpage.cpp +++ b/gui/folderpage.cpp @@ -35,18 +35,8 @@ FolderPage::FolderPage(QWidget *p) homeBrowse=new LocalFolderBrowsePage(true, this); addPage(homeBrowse->name(), homeBrowse->icon(), homeBrowse->title(), homeBrowse->descr(), homeBrowse); - #ifdef Q_OS_WIN - for (const auto &drive: QDir::drives()) { - QString letter = drive.absoluteFilePath().left(1); - if (QLatin1String("A")!=letter && QLatin1String("B")!=letter) { - LocalFolderBrowsePage *dirBrowse=new LocalFolderBrowsePage(letter, this); - } - addPage(dirBrowse->name(), dirBrowse->icon(), dirBrowse->title(), dirBrowse->descr(), dirBrowse); - } - #else LocalFolderBrowsePage *rootBrowse=new LocalFolderBrowsePage(false, this); addPage(rootBrowse->name(), rootBrowse->icon(), rootBrowse->title(), rootBrowse->descr(), rootBrowse); - #endif Configuration config(metaObject()->className()); load(config); diff --git a/gui/localfolderpage.cpp b/gui/localfolderpage.cpp index 77d57e28c..13a21e61a 100644 --- a/gui/localfolderpage.cpp +++ b/gui/localfolderpage.cpp @@ -34,34 +34,14 @@ #endif #include -#ifdef Q_OS_WIN -LocalFolderBrowsePage::LocalFolderBrowsePage(const QString &d, QWidget *p) - : SinglePageWidget(p) - , drive(d) - , isHomeFolder(d.isEmpty()) -{ - create(); -} -#endif LocalFolderBrowsePage::LocalFolderBrowsePage(bool isHome, QWidget *p) : SinglePageWidget(p) , isHomeFolder(isHome) -{ - create(); -} - -void LocalFolderBrowsePage::create() { QColor col = Utils::monoIconColor(); model = isHomeFolder ? new LocalBrowseModel(QLatin1String("localbrowsehome"), tr("Home"), tr("Browse files in your home folder"), MonoIcon::icon(FontAwesome::home, col), this) - : new LocalBrowseModel(QLatin1String("localbrowseroot"), - #ifdef Q_OS_WIN - drive.toUpper()+QLatin1Char(':'), - #else - tr("Root"), - #endif - tr("Browse files on your computer"), MonoIcon::icon(FontAwesome::hddo, col), this); + : new LocalBrowseModel(QLatin1String("localbrowseroot"), tr("Root"), tr("Browse files on your computer"), MonoIcon::icon(FontAwesome::hddo, col), this); proxy = new FileSystemProxyModel(model); browseAction = new Action(MonoIcon::icon(FontAwesome::folderopen, col), tr("Open In File Manager"), this); connect(view, SIGNAL(itemsSelected(bool)), this, SLOT(controlActions())); @@ -99,18 +79,14 @@ LocalFolderBrowsePage::~LocalFolderBrowsePage() QString LocalFolderBrowsePage::configGroup() const { - #ifdef Q_OS_WIN - return isHomeFolder ? QLatin1String("localbrowsehome") : (QLatin1String("localbrowsedrive")+drive); - #else return isHomeFolder ? QLatin1String("localbrowsehome") : QLatin1String("localbrowseroot"); - #endif } void LocalFolderBrowsePage::setView(int v) { SinglePageWidget::setView(v); #ifdef Q_OS_WIN - view->view()->setRootIndex(proxy->mapFromSource(model->setRootPath(isHomeFolder ? QDir::homePath() : (drive+":/")))); + view->view()->setRootIndex(proxy->mapFromSource(model->setRootPath(isHomeFolder ? QDir::homePath() : (":/")))); #else view->view()->setRootIndex(proxy->mapFromSource(model->setRootPath(isHomeFolder ? QDir::homePath() : QDir::rootPath()))); #endif diff --git a/gui/localfolderpage.h b/gui/localfolderpage.h index a6e7fc574..927e4a7da 100644 --- a/gui/localfolderpage.h +++ b/gui/localfolderpage.h @@ -33,9 +33,6 @@ class LocalFolderBrowsePage : public SinglePageWidget { Q_OBJECT public: - #ifdef Q_OS_WIN - LocalFolderBrowsePage(const QString &d, QWidget *p); - #endif LocalFolderBrowsePage(bool isHome, QWidget *p); ~LocalFolderBrowsePage() override; @@ -45,12 +42,7 @@ public: const QIcon & icon() const { return model->icon(); } QList selectedSongs(bool allowPlaylists=false) const override; - #ifdef Q_OS_WIN - const QString & driveLetter() const { return drive; } - #endif - private: - void create(); QString configGroup() const; void setView(int v) override; void addSelectionToPlaylist(const QString &name=QString(), int action=MPDConnection::Append, quint8 priority=0, bool decreasePriority=false) override; @@ -63,9 +55,6 @@ private Q_SLOTS: void openFileManager(); private: - #ifdef Q_OS_WIN - QString drive; - #endif bool isHomeFolder; LocalBrowseModel *model; FileSystemProxyModel *proxy;