summaryrefslogtreecommitdiffstats
path: root/playerwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2017-04-09 06:43:16 +0200
committerArno <arno@disconnect.de>2017-04-09 06:43:16 +0200
commit2cda7e844709ed533f2ac146fd7a608f5e41f709 (patch)
tree73464b0df7dedfeb1e1490765a84a929dcd0e89f /playerwidget.cpp
parent5e69e8130c9f207e5f8e3222841e7771c56ccd24 (diff)
downloadBeetPlayer-2cda7e844709ed533f2ac146fd7a608f5e41f709.tar.gz
BeetPlayer-2cda7e844709ed533f2ac146fd7a608f5e41f709.tar.bz2
BeetPlayer-2cda7e844709ed533f2ac146fd7a608f5e41f709.zip
Added navigation for folder mode
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r--playerwidget.cpp49
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;
}