diff options
| -rw-r--r-- | src/qmmpui/configdialog.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/forms/configdialog.ui | 11 | ||||
| -rw-r--r-- | src/qmmpui/qmmpuisettings.cpp | 13 | ||||
| -rw-r--r-- | src/qmmpui/qmmpuisettings.h | 12 | ||||
| -rw-r--r-- | src/qmmpui/uihelper.cpp | 16 |
5 files changed, 46 insertions, 8 deletions
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp index 676310646..cf814c150 100644 --- a/src/qmmpui/configdialog.cpp +++ b/src/qmmpui/configdialog.cpp @@ -108,6 +108,7 @@ void ConfigDialog::readSettings() m_ui->metadataCheckBox->setChecked(guis->useMetadata()); m_ui->underscoresCheckBox->setChecked(guis->convertUnderscore()); m_ui->per20CheckBox->setChecked(guis->convertTwenty()); + m_ui->clearPrevPLCheckBox->setChecked(guis->clearPreviousPlayList()); //resume playback on startup m_ui->continuePlaybackCheckBox->setChecked(guis->resumeOnStartup()); //directory filters @@ -403,6 +404,7 @@ void ConfigDialog::saveSettings() guis->setUseMetadata(m_ui->metadataCheckBox->isChecked()); guis->setConvertUnderscore(m_ui->underscoresCheckBox->isChecked()); guis->setConvertTwenty(m_ui->per20CheckBox->isChecked()); + guis->setClearPreviousPlayList(m_ui->clearPrevPLCheckBox->isChecked()); guis->setResumeOnStartup(m_ui->continuePlaybackCheckBox->isChecked()); guis->setRestrictFilters(m_ui->dirRestrictLineEdit->text()); guis->setExcludeFilters(m_ui->dirExcludeLineEdit->text()); diff --git a/src/qmmpui/forms/configdialog.ui b/src/qmmpui/forms/configdialog.ui index a2941826c..49dc8730e 100644 --- a/src/qmmpui/forms/configdialog.ui +++ b/src/qmmpui/forms/configdialog.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>640</width> - <height>479</height> + <height>489</height> </rect> </property> <property name="windowTitle"> @@ -113,7 +113,7 @@ <enum>QFrame::Raised</enum> </property> <property name="currentIndex"> - <number>1</number> + <number>0</number> </property> <widget class="QWidget" name="page"> <layout class="QVBoxLayout" name="verticalLayout"> @@ -229,6 +229,13 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="clearPrevPLCheckBox"> + <property name="text"> + <string>Clear previous playlist when opening new one</string> + </property> + </widget> + </item> </layout> </widget> </item> diff --git a/src/qmmpui/qmmpuisettings.cpp b/src/qmmpui/qmmpuisettings.cpp index 2d05321c3..822f9c1d0 100644 --- a/src/qmmpui/qmmpuisettings.cpp +++ b/src/qmmpui/qmmpuisettings.cpp @@ -45,6 +45,7 @@ QmmpUiSettings::QmmpUiSettings(QObject *parent) : QObject(parent) m_groups_enabled = s.value("groups",false).toBool(); m_repeat_track = s.value("repeate_track",false).toBool(); m_no_pl_advance = s.value("no_advance",false).toBool(); + m_clear_prev_playlist = s.value("clear_previous", false).toBool(); s.endGroup(); s.beginGroup("General"); m_resume_on_startup = s.value("resume_on_startup", false).toBool(); @@ -190,6 +191,7 @@ void QmmpUiSettings::sync() s.setValue("PlayList/groups", m_groups_enabled); s.setValue("PlayList/repeate_track", m_repeat_track); s.setValue("PlayList/no_advance", m_no_pl_advance); + s.setValue("PlayList/clear_previous", m_clear_prev_playlist); s.setValue("General/resume_on_startup", m_resume_on_startup); s.setValue("General/restrict_filters", m_restrict_filters); s.setValue("General/exclude_filters", m_exclude_filters); @@ -299,3 +301,14 @@ bool QmmpUiSettings::autoSavePlayList() const { return m_autosave_playlist; } + +void QmmpUiSettings::setClearPreviousPlayList(bool enabled) +{ + m_clear_prev_playlist = enabled; + m_timer->start(); +} + +bool QmmpUiSettings::clearPreviousPlayList() const +{ + return m_clear_prev_playlist; +} diff --git a/src/qmmpui/qmmpuisettings.h b/src/qmmpui/qmmpuisettings.h index 9df54b6ee..a070dc348 100644 --- a/src/qmmpui/qmmpuisettings.h +++ b/src/qmmpui/qmmpuisettings.h @@ -170,6 +170,17 @@ public: */ bool autoSavePlayList() const; /*! + * Enable/disable feature to clear previous playlist when opening new one. + * @param enabled New setting for this option (\b true to enable) + */ + void setClearPreviousPlayList(bool enabled); + /*! + * Return the current setting for the option to clear playlist when opening new one. + * @return \b true if the playlist should be saved automatically, \b false + * otherwise. + */ + bool clearPreviousPlayList() const; + /*! * Returns a pointer to the QmmpUiSettings instance. */ static QmmpUiSettings* instance(); @@ -250,6 +261,7 @@ private: bool m_groups_enabled; bool m_repeat_track; bool m_no_pl_advance; + bool m_clear_prev_playlist; //general bool m_resume_on_startup; QStringList m_exclude_filters, m_restrict_filters; diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp index e7eb3392a..bd2cf9c5c 100644 --- a/src/qmmpui/uihelper.cpp +++ b/src/qmmpui/uihelper.cpp @@ -28,6 +28,7 @@ #include <qmmpui/filedialog.h> #include <qmmpui/playlistparser.h> #include <qmmpui/playlistmanager.h> +#include <qmmpui/qmmpuisettings.h> #include "general.h" #include "generalfactory.h" #include "jumptotrackdialog_p.h" @@ -177,13 +178,16 @@ void UiHelper::loadPlayList(QWidget *parent, PlayListModel *model) QString mask = tr("Playlist Files") + " (" + PlayListParser::nameFilters().join(" ") + ")"; //TODO use nonmodal dialog and multiplier playlists - QString f_name = FileDialog::getOpenFileName(parent, tr("Open Playlist"), m_lastDir, mask); - if (!f_name.isEmpty()) + QString f_path = FileDialog::getOpenFileName(parent, tr("Open Playlist"), m_lastDir, mask); + if (!f_path.isEmpty()) { - model->clear(); - model->loadPlaylist(f_name); - model->setName(QFileInfo(f_name).baseName()); - m_lastDir = QFileInfo(f_name).absoluteDir().path(); + if(QmmpUiSettings::instance()->clearPreviousPlayList()) + { + model->clear(); + model->setName(QFileInfo(f_path).baseName()); + } + model->loadPlaylist(f_path); + m_lastDir = QFileInfo(f_path).absoluteDir().path(); } } |
