summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--beetplayer.cpp3
-rw-r--r--playerwidget.cpp23
-rw-r--r--playerwidget.h4
3 files changed, 29 insertions, 1 deletions
diff --git a/beetplayer.cpp b/beetplayer.cpp
index 99d5a92..ab26e3f 100644
--- a/beetplayer.cpp
+++ b/beetplayer.cpp
@@ -39,6 +39,9 @@ BeetPlayer::BeetPlayer(QWidget *parent, Qt::WindowFlags f) : QMainWindow(parent,
qApp->processEvents();
mPlayerWidget->doStop();
mPlayerWidget->doPopulateByArtist();
+ splash.showMessage(tr("Reading settings..."), Qt::AlignHCenter, Qt::yellow);
+ qApp->processEvents();
+ mPlayerWidget->readSettings();
}
void BeetPlayer::openDatabase(){
diff --git a/playerwidget.cpp b/playerwidget.cpp
index 0a14d22..2ad2246 100644
--- a/playerwidget.cpp
+++ b/playerwidget.cpp
@@ -17,6 +17,7 @@
#include <QHash>
#include <QDir>
#include <QMimeDatabase>
+#include <QSettings>
#include <QApplication>
#include <algorithm>
@@ -35,6 +36,10 @@ PlayerWidget::PlayerWidget(QWidget *parent) : QWidget(parent), mDurSecs(0), mPla
createActions();
}
+PlayerWidget::~PlayerWidget(){
+ writeSettings();
+}
+
void PlayerWidget::setupGui(){
//the Player
mPlayer = new QMediaPlayer(this);
@@ -480,8 +485,9 @@ void PlayerWidget::doPopulateByFolder(QString dir){
mFolderModel->clear();
mFolderModel->setHorizontalHeaderLabels(QStringList() << tr("Name"));
if(dir.isEmpty()){
- dir = QDir::homePath();
+ dir = mCurDir;
}
+ mCurDir = dir;
QDir d(dir);
QMimeDatabase db;
QStandardItem *root = mFolderModel->invisibleRootItem();
@@ -529,6 +535,7 @@ void PlayerWidget::viewDoubleClicked(const QModelIndex &idx){
QFileInfo fi(fp);
if(fi.isDir()){
doPopulateByFolder(fp);
+ mCurDir = fp;
}else{
addToPlayList();
}
@@ -912,3 +919,17 @@ void PlayerWidget::expandRecursive(const QModelIndex &idx){
}
}
}
+
+void PlayerWidget::readSettings(){
+ QSettings s;
+ int vol = s.value("volume").toInt();
+ mVolumeSlider->setValue(vol);
+ QString dir = s.value("folderdir", QDir::homePath()).toString();
+ mCurDir = dir;
+}
+
+void PlayerWidget::writeSettings(){
+ QSettings s;
+ s.setValue("volume", mVolumeSlider->value());
+ s.setValue("folderdir", mCurDir);
+}
diff --git a/playerwidget.h b/playerwidget.h
index 4458777..6f39385 100644
--- a/playerwidget.h
+++ b/playerwidget.h
@@ -23,6 +23,7 @@ class PlayerWidget : public QWidget {
enum PopulateType { FilterType, IdType, EmptyType };
enum CustomRoles { TypeRole = Qt::UserRole + 1, IdRole = Qt::UserRole + 2, FullPathRole = Qt::UserRole + 3, GenreRole = Qt::UserRole + 4, ArtistRole = Qt::UserRole + 5, TitleRole = Qt::UserRole + 6, AlbumRole = Qt::UserRole + 7, LengthRole = Qt::UserRole + 8 };
explicit PlayerWidget(QWidget *parent = 0);
+ ~PlayerWidget();
const QMediaPlayer* player() const { return mPlayer; }
public slots:
@@ -53,6 +54,8 @@ class PlayerWidget : public QWidget {
void slide(int value);
void continuePlaying(QMediaPlayer::MediaStatus state);
void expand();
+ void readSettings();
+ void writeSettings();
signals:
void viewModeChanged(const QString &viewMode);
@@ -97,6 +100,7 @@ class PlayerWidget : public QWidget {
QAction *mViewByArtistA;
qint64 mDurSecs;
quint64 mPlayListLength;
+ QString mCurDir;
};
#endif // PLAYERWIDGET_H