diff options
author | Arno <arno@disconnect.de> | 2017-03-06 07:57:07 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-03-06 07:57:07 +0100 |
commit | e7616324065c0a96acba082c914e935158380cd2 (patch) | |
tree | 1f7bf488e7a16ede217372e39884897d550f09b3 | |
parent | 157cdabc1a1d5f38d02b221db86c05341e8babef (diff) | |
download | BeetPlayer-e7616324065c0a96acba082c914e935158380cd2.tar.gz BeetPlayer-e7616324065c0a96acba082c914e935158380cd2.tar.bz2 BeetPlayer-e7616324065c0a96acba082c914e935158380cd2.zip |
Read and write settings
-rw-r--r-- | beetplayer.cpp | 3 | ||||
-rw-r--r-- | playerwidget.cpp | 23 | ||||
-rw-r--r-- | playerwidget.h | 4 |
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 |