aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/configdialog.cpp2
-rw-r--r--src/qmmpui/forms/configdialog.ui11
-rw-r--r--src/qmmpui/qmmpuisettings.cpp13
-rw-r--r--src/qmmpui/qmmpuisettings.h12
-rw-r--r--src/qmmpui/uihelper.cpp16
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();
}
}