diff options
author | Arno <arno@disconnect.de> | 2019-01-19 21:51:51 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2019-01-19 21:51:51 +0100 |
commit | 0e0d7944883fd7aad7c8334c9d7cc636d84a0630 (patch) | |
tree | 9dacedee6e7ed0f329103138901720f53f2ebff5 | |
parent | 0d058fda9189f6bf96c70d71ffe1d18ca433e046 (diff) | |
download | BeetPlayer-0e0d7944883fd7aad7c8334c9d7cc636d84a0630.tar.gz BeetPlayer-0e0d7944883fd7aad7c8334c9d7cc636d84a0630.tar.bz2 BeetPlayer-0e0d7944883fd7aad7c8334c9d7cc636d84a0630.zip |
Always show an existing directory
When the current directory was deleted otherwhere while in
CollectionFoldersView, a refresh left the user with no choice at all.
Set mCurrentFolder to default (QSetting->folderdir) and say so in the
status bar.
For the latter add a signal to CollectionWidget and connect it to
PlayerWidget::message.
-rw-r--r-- | collectionfoldersview.cpp | 6 | ||||
-rw-r--r-- | collectionwidget.h | 3 | ||||
-rw-r--r-- | playerwidget.cpp | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/collectionfoldersview.cpp b/collectionfoldersview.cpp index e1a96b2..483f42c 100644 --- a/collectionfoldersview.cpp +++ b/collectionfoldersview.cpp @@ -21,6 +21,12 @@ void CollectionFoldersView::populate(){ model()->setHorizontalHeaderLabels(headers()); QStandardItem *root = model()->invisibleRootItem(); QDir d(mCurrentFolder); + if(!d.exists()){ + QString msg = QString("%1 vanished from under us!").arg(mCurrentFolder); + emit message(msg); + readSettings(); + d.setPath(mCurrentFolder); + } QMimeDatabase db; QIcon songIcon(":/song.png"); QIcon otherIcon(":/belly_right_and_clear.png"); diff --git a/collectionwidget.h b/collectionwidget.h index fe4a086..e910e57 100644 --- a/collectionwidget.h +++ b/collectionwidget.h @@ -24,6 +24,9 @@ class CollectionWidget : public QWidget { void enableSorting(int column = 0, Qt::SortOrder sortOrder = Qt::AscendingOrder); QActionGroup *customActions() { return mCustomActions; } + signals: + void message(const QString &msg); + public slots: virtual void populate() { return; } virtual void expandFirst(QSortFilterProxyModel *proxy); diff --git a/playerwidget.cpp b/playerwidget.cpp index c9e8214..54a1f50 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -161,6 +161,7 @@ void PlayerWidget::setupGui(QSplashScreen *splash){ } for(int i = 0; i < mCollectionStack->count(); ++i){ CollectionWidget *curW = qobject_cast<CollectionWidget*>(mCollectionStack->widget(i)); + connect(curW, &CollectionWidget::message, this, &PlayerWidget::message); const QString name = curW->objectName(); // special case webradio if(name == "webradio"){ |