aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-12-15 09:22:01 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-12-15 09:22:01 +0000
commit2242b02f8156c33827a17ed281ce48c0c9664682 (patch)
treee49966e61fc0a88b441c70e2b6008d02d0b87a38 /src
parent992cbd13d6888470b32a2897a290bd373432acdd (diff)
downloadqmmp-2242b02f8156c33827a17ed281ce48c0c9664682.tar.gz
qmmp-2242b02f8156c33827a17ed281ce48c0c9664682.tar.bz2
qmmp-2242b02f8156c33827a17ed281ce48c0c9664682.zip
added timer for settings
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3965 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/qmmp/qmmpsettings.cpp16
-rw-r--r--src/qmmp/qmmpsettings.h8
-rw-r--r--src/qmmpui/configdialog.cpp2
-rw-r--r--src/qmmpui/playlistmanager.h2
-rw-r--r--src/qmmpui/qmmpuisettings.cpp15
-rw-r--r--src/qmmpui/qmmpuisettings.h14
6 files changed, 47 insertions, 10 deletions
diff --git a/src/qmmp/qmmpsettings.cpp b/src/qmmp/qmmpsettings.cpp
index 23fe01698..bd4d0faa4 100644
--- a/src/qmmp/qmmpsettings.cpp
+++ b/src/qmmp/qmmpsettings.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010-2012 by Ilya Kotov *
+ * Copyright (C) 2010-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -20,6 +20,7 @@
#include <QSettings>
#include <QApplication>
+#include <QTimer>
#include "metadatamanager.h"
#include "qmmp.h"
#include "qmmpsettings.h"
@@ -28,6 +29,8 @@ QmmpSettings *QmmpSettings::m_instance = 0;
QmmpSettings::QmmpSettings(QObject *parent) : QObject(parent)
{
+ if(m_instance)
+ qFatal("QmmpSettings: only one instance is allowed");
m_instance = this;
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
//replaygain settings
@@ -55,6 +58,11 @@ QmmpSettings::QmmpSettings(QObject *parent) : QObject(parent)
m_buffer_size = settings.value("Output/buffer_size", 500).toInt();
//file type determination
m_determine_by_content = settings.value("Misc/determine_file_by_content", false).toBool();
+ //timer
+ m_timer = new QTimer(this);
+ m_timer->setSingleShot(true);
+ m_timer->setInterval(5000);
+ connect(m_timer, SIGNAL(timeout()), SLOT(sync()));
}
QmmpSettings::~QmmpSettings()
@@ -89,6 +97,7 @@ void QmmpSettings::setReplayGainSettings(ReplayGainMode mode, double preamp, dou
m_rg_preamp = preamp;
m_rg_defaut_gain = def_gain;
m_rg_prevent_clipping = clip;
+ m_timer->start();
emit replayGainSettingsChanged();
}
@@ -106,6 +115,7 @@ void QmmpSettings::setAudioSettings(bool soft_volume, bool use_16bit)
{
m_aud_software_volume = soft_volume;
m_aud_16bit = use_16bit;
+ m_timer->start();
emit audioSettingsChanged();
}
@@ -131,6 +141,7 @@ void QmmpSettings::setCoverSettings(QStringList inc, QStringList exc, int depth,
m_cover_depth = depth;
m_cover_use_files = use_files;
MetaDataManager::instance()->clearCoverChache();
+ m_timer->start();
emit coverSettingsChanged();
}
@@ -154,6 +165,7 @@ void QmmpSettings::setNetworkSettings(bool use_proxy, bool auth, const QUrl &pro
m_proxy_enabled = use_proxy;
m_proxy_auth = auth;
m_proxy_url = proxy;
+ m_timer->start();
emit networkSettingsChanged();
}
@@ -165,6 +177,7 @@ EqSettings QmmpSettings::eqSettings() const
void QmmpSettings::setEqSettings(const EqSettings &settings)
{
m_eq_settings = settings;
+ m_timer->start();
emit eqSettingsChanged();
}
@@ -193,6 +206,7 @@ void QmmpSettings::setBufferSize(int msec)
void QmmpSettings::sync()
{
+ qDebug("%s", Q_FUNC_INFO);
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
//replaygain settings
settings.beginGroup("ReplayGain");
diff --git a/src/qmmp/qmmpsettings.h b/src/qmmp/qmmpsettings.h
index f7aaba251..8b4392288 100644
--- a/src/qmmp/qmmpsettings.h
+++ b/src/qmmp/qmmpsettings.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Ilya Kotov *
+ * Copyright (C) 2010-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -26,6 +26,8 @@
#include <QStringList>
#include "eqsettings.h"
+class QTimer;
+
/*! @brief The QmmpSettings class provides access to global settings.
* @author Ilya Kotov <forkotov02@hotmail.ru>
*/
@@ -191,7 +193,7 @@ signals:
*/
void eqSettingsChanged();
-public slots:
+private slots:
/*!
* Writes all unsaved settings to configuration file
*/
@@ -221,6 +223,8 @@ private:
int m_buffer_size;
//file type determination
bool m_determine_by_content;
+ //timer
+ QTimer *m_timer;
static QmmpSettings* m_instance;
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp
index 2071a630d..c3899ea27 100644
--- a/src/qmmpui/configdialog.cpp
+++ b/src/qmmpui/configdialog.cpp
@@ -391,7 +391,6 @@ void ConfigDialog::saveSettings()
m_ui->defaultPlayListCheckBox->isChecked());
guis->setAutoSavePlayList(m_ui->autoSavePlayListCheckBox->isChecked());
guis->setUseClipboard(m_ui->clipboardCheckBox->isChecked());
- guis->sync();
}
QmmpSettings *gs = QmmpSettings::instance();
@@ -418,7 +417,6 @@ void ConfigDialog::saveSettings()
gs->setAudioSettings(m_ui->softVolumeCheckBox->isChecked(), m_ui->use16BitCheckBox->isChecked());
gs->setBufferSize(m_ui->bufferSizeSpinBox->value());
gs->setDetermineFileTypeByContent(m_ui->byContentCheckBox->isChecked());
- gs->sync();
QList<QVariant> var_sizes;
var_sizes << m_ui->splitter->sizes().first() << m_ui->splitter->sizes().last();
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h
index 520d7c876..1903fcae3 100644
--- a/src/qmmpui/playlistmanager.h
+++ b/src/qmmpui/playlistmanager.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2009-2012 by Ilya Kotov *
+ * Copyright (C) 2009-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/qmmpui/qmmpuisettings.cpp b/src/qmmpui/qmmpuisettings.cpp
index 6e718eb0b..36668c5f8 100644
--- a/src/qmmpui/qmmpuisettings.cpp
+++ b/src/qmmpui/qmmpuisettings.cpp
@@ -20,6 +20,7 @@
#include <QSettings>
#include <QApplication>
+#include <QTimer>
#include <qmmp/qmmp.h>
#include "playlistmanager.h"
#include "qmmpuisettings.h"
@@ -53,6 +54,10 @@ QmmpUiSettings::QmmpUiSettings(QObject *parent) : QObject(parent)
m_default_pl_name = s.value("default_pl_name", tr("Playlist")).toString();
s.endGroup();
m_use_clipboard = s.value("URLDialog/use_clipboard", false).toBool();
+ m_timer = new QTimer(this);
+ m_timer->setInterval(5000);
+ m_timer->setSingleShot(true);
+ connect(m_timer, SIGNAL(timeout()), SLOT(sync()));
}
QmmpUiSettings::~QmmpUiSettings()
@@ -172,6 +177,7 @@ bool QmmpUiSettings::useClipboard() const
void QmmpUiSettings::sync()
{
+ qDebug("%s", Q_FUNC_INFO);
QSettings s(Qmmp::configFile(), QSettings::IniFormat);
s.setValue("PlayList/title_format", m_title_format);
s.setValue("PlayList/group_format", m_group_format);
@@ -197,6 +203,7 @@ void QmmpUiSettings::setRepeatableList(bool r)
if(m_repeate_list == r)
return;
m_repeate_list = r;
+ m_timer->start();
emit repeatableListChanged(r);
}
@@ -205,6 +212,7 @@ void QmmpUiSettings::setShuffle(bool s)
if(m_shuffle == s)
return;
m_shuffle = s;
+ m_timer->start();
emit shuffleChanged(s);
}
@@ -213,6 +221,7 @@ void QmmpUiSettings::setGroupsEnabled(bool enabled)
if(m_groups_enabled == enabled)
return;
m_groups_enabled = enabled;
+ m_timer->start();
emit groupsChanged(enabled);
}
@@ -221,6 +230,7 @@ void QmmpUiSettings::setRepeatableTrack(bool enabled)
if(m_repeat_track == enabled)
return;
m_repeat_track = enabled;
+ m_timer->start();
emit repeatableTrackChanged(enabled);
}
@@ -229,6 +239,7 @@ void QmmpUiSettings::setNoPlayListAdvance(bool enabled)
if(m_no_pl_advance == enabled)
return;
m_no_pl_advance = enabled;
+ m_timer->start();
emit noPlayListAdvanceChanged(enabled);
}
@@ -240,6 +251,7 @@ QStringList QmmpUiSettings::restrictFilters() const
void QmmpUiSettings::setRestrictFilters(const QString &filters)
{
m_restrict_filters = filters.trimmed().split(";", QString::SkipEmptyParts);
+ m_timer->start();
}
QStringList QmmpUiSettings::excludeFilters() const
@@ -250,6 +262,7 @@ QStringList QmmpUiSettings::excludeFilters() const
void QmmpUiSettings::setExcludeFilters(const QString &filters)
{
m_exclude_filters = filters.trimmed().split(";", QString::SkipEmptyParts);
+ m_timer->start();
}
bool QmmpUiSettings::useDefaultPlayList() const
@@ -273,11 +286,13 @@ void QmmpUiSettings::setDefaultPlayList(const QString &name, bool enabled)
{
m_use_default_pl = enabled;
m_default_pl_name = name;
+ m_timer->start();
}
void QmmpUiSettings::setAutoSavePlayList(bool enabled)
{
m_autosave_playlist = enabled;
+ m_timer->start();
}
bool QmmpUiSettings::autoSavePlayList() const
diff --git a/src/qmmpui/qmmpuisettings.h b/src/qmmpui/qmmpuisettings.h
index c5b63f496..9df54b6ee 100644
--- a/src/qmmpui/qmmpuisettings.h
+++ b/src/qmmpui/qmmpuisettings.h
@@ -24,6 +24,8 @@
#include <QObject>
#include <QStringList>
+class QTimer;
+
/*! @brief The QmmpUiSettings class provides access to global libqmmpui library settings.
* @author Ilya Kotov <forkotov02@hotmail.ru>
*/
@@ -202,10 +204,6 @@ signals:
public slots:
/*!
- * Writes all unsaved settings to configuration file
- */
- void sync();
- /*!
* Prepares all playlists for repeatable playing (loop mode).
* @param r State of the repeatable mode (\b true - enabled, \b false - disabled)
*/
@@ -232,6 +230,12 @@ public slots:
*/
void setNoPlayListAdvance(bool enabled);
+private slots:
+ /*!
+ * Writes all unsaved settings to configuration file
+ */
+ void sync();
+
private:
static QmmpUiSettings* m_instance;
@@ -254,6 +258,8 @@ private:
QString m_default_pl_name;
//url dialog
bool m_use_clipboard;
+ //timer
+ QTimer *m_timer;
};
#endif // QMMPUISETTINGS_H