From 7bde21f66ddd82eb6e4a36c2f55154c5f872b03d Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 26 Mar 2014 12:14:23 +0000 Subject: added new option 'clear previous playlist when opening new one' git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4208 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/configdialog.cpp | 2 ++ src/qmmpui/forms/configdialog.ui | 11 +++++++++-- src/qmmpui/qmmpuisettings.cpp | 13 +++++++++++++ src/qmmpui/qmmpuisettings.h | 12 ++++++++++++ src/qmmpui/uihelper.cpp | 16 ++++++++++------ 5 files changed, 46 insertions(+), 8 deletions(-) (limited to 'src') 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 @@ 0 0 640 - 479 + 489 @@ -113,7 +113,7 @@ QFrame::Raised - 1 + 0 @@ -229,6 +229,13 @@ + + + + Clear previous playlist when opening new one + + + 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 @@ -169,6 +169,17 @@ public: * otherwise. */ 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. */ @@ -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 #include #include +#include #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(); } } -- cgit v1.2.3-13-gbd6f