diff options
author | Arno <arno@disconnect.de> | 2017-04-09 06:43:16 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-04-09 06:43:16 +0200 |
commit | 2cda7e844709ed533f2ac146fd7a608f5e41f709 (patch) | |
tree | 73464b0df7dedfeb1e1490765a84a929dcd0e89f /playerwidget.cpp | |
parent | 5e69e8130c9f207e5f8e3222841e7771c56ccd24 (diff) | |
download | BeetPlayer-2cda7e844709ed533f2ac146fd7a608f5e41f709.tar.gz BeetPlayer-2cda7e844709ed533f2ac146fd7a608f5e41f709.tar.bz2 BeetPlayer-2cda7e844709ed533f2ac146fd7a608f5e41f709.zip |
Added navigation for folder mode
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r-- | playerwidget.cpp | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp index c476f93..66ca04c 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -21,6 +21,7 @@ #include <QMessageBox> #include <QInputDialog> #include <QTimer> +#include <QStackedLayout> #include <QApplication> #include <algorithm> @@ -128,11 +129,36 @@ void PlayerWidget::setupGui(){ filterLayout->addWidget(searchTB); filterGB->setLayout(filterLayout); + //directories + QGroupBox *dirGB = new QGroupBox(QString(tr("Current Directory"))); + mDir = new QLineEdit; + mDir->setEnabled(false); + QToolBar *dirTB = new QToolBar; + QImage upImg(":/stomp.png"); + upImg = upImg.mirrored(); + QIcon upDirIcon = QPixmap::fromImage(upImg); + QAction *upDirA = new QAction(upDirIcon, tr("Up directory"), this); + connect(upDirA, &QAction::triggered, this, &PlayerWidget::dirUp); + dirTB->addAction(upDirA); + QAction *homeDirA = new QAction(QIcon(":/home.png"), tr("Go home"), this); + connect(homeDirA, &QAction::triggered, this, &PlayerWidget::dirHome); + dirTB->addAction(homeDirA); + dirTB->addAction(mRefreshA); + QHBoxLayout *dirLayout = new QHBoxLayout; + dirLayout->addWidget(mDir); + dirLayout->addWidget(dirTB); + dirGB->setLayout(dirLayout); + + //stack it up! + mSearchDirStack = new QStackedLayout; + mSearchDirStack->addWidget(filterGB); + mSearchDirStack->addWidget(dirGB); + //left widget QWidget *leftWidget = new QWidget; QVBoxLayout *leftWidgetL = new QVBoxLayout; - leftWidgetL->addWidget(filterGB); - leftWidgetL->addWidget(mView); + leftWidgetL->addLayout(mSearchDirStack); + leftWidgetL->addWidget(mView, 999); QHBoxLayout *selViewL = new QHBoxLayout; selViewL->addWidget(new QLabel(tr("View by:"))); selViewL->addStretch(); @@ -608,11 +634,13 @@ void PlayerWidget::doModelChanged(){ mDeselectAllA->setEnabled(true); mDeleteFilesA->setEnabled(true); mRefreshA->setEnabled(true); + mSearchDirStack->setCurrentIndex(1); }else{ mSelectFilesA->setEnabled(false); mDeselectAllA->setEnabled(false); mDeleteFilesA->setEnabled(false); mRefreshA->setEnabled(false); + mSearchDirStack->setCurrentIndex(0); } } @@ -626,6 +654,7 @@ void PlayerWidget::viewDoubleClicked(const QModelIndex &idx){ QFileInfo fi(fp); if(fi.isDir()){ mCurDir = fp; + mDir->setText(fp); doPopulateByFolder(); }else{ addToPlayList(); @@ -733,6 +762,20 @@ void PlayerWidget::volumeDown(){ adjustVolume(-2); } +void PlayerWidget::dirUp(){ + QDir d(mCurDir); + d.cdUp(); + mDir->setText(d.absolutePath()); + mCurDir = d.absolutePath(); + doPopulateByFolder(); +} + +void PlayerWidget::dirHome(){ + mCurDir = QDir::homePath(); + mDir->setText(mCurDir); + doPopulateByFolder(); +} + void PlayerWidget::showVolume(){ int volume = mVolumeSlider->value(); QString msg = QString(tr("Volume: %1%")).arg(volume, 3, 10, QChar('0')); @@ -856,6 +899,7 @@ void PlayerWidget::doPopulateBySong(){ } void PlayerWidget::doFilter(){ + mSearchDirStack->setCurrentIndex(0); QString filter = mSearch->text(); mSearchModel->clear(); mSearchModel->setHorizontalHeaderLabels(QStringList() << tr("Name")); @@ -1116,6 +1160,7 @@ void PlayerWidget::readSettings(){ mVolumeSlider->setValue(vol); QString dir = s.value("folderdir", QDir::homePath()).toString(); mCurDir = dir; + mDir->setText(mCurDir); mStarting = false; } |