From c71d921f09166b12233a27bf605fd01b1fb81afe Mon Sep 17 00:00:00 2001 From: graffy76 Date: Sun, 12 May 2013 15:15:57 -0500 Subject: [PATCH] Moved signalUpdateEditorSettings from UserSettingsDialog to UserSettings. UserSettings is now derived from QObject. --- apps/opencs/CMakeLists.txt | 2 +- apps/opencs/model/settings/usersettings.hpp | 8 +++++++- apps/opencs/view/doc/view.cpp | 6 +++++- apps/opencs/view/settings/usersettingsdialog.cpp | 2 +- apps/opencs/view/settings/usersettingsdialog.hpp | 4 +--- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/apps/opencs/CMakeLists.txt b/apps/opencs/CMakeLists.txt index f60da9472..f595d8bc8 100644 --- a/apps/opencs/CMakeLists.txt +++ b/apps/opencs/CMakeLists.txt @@ -93,12 +93,12 @@ opencs_units_noqt (view/settings ) opencs_units (model/settings + usersettings settingcontainer ) opencs_units_noqt (model/settings support - usersettings settingsitem ) diff --git a/apps/opencs/model/settings/usersettings.hpp b/apps/opencs/model/settings/usersettings.hpp index cef356ad7..343702eda 100644 --- a/apps/opencs/model/settings/usersettings.hpp +++ b/apps/opencs/model/settings/usersettings.hpp @@ -17,8 +17,11 @@ class QFile; namespace CSMSettings { - struct UserSettings + struct UserSettings: public QObject { + + Q_OBJECT + public: static UserSettings &instance() @@ -41,6 +44,9 @@ namespace CSMSettings { UserSettings (UserSettings const &); //not implemented void operator= (UserSettings const &); //not implemented + signals: + void signalUpdateEditorSetting (const QString &settingName, const QString &settingValue); + }; } #endif // USERSETTINGS_HPP diff --git a/apps/opencs/view/doc/view.cpp b/apps/opencs/view/doc/view.cpp index d4df3b633..6d2d3df8c 100644 --- a/apps/opencs/view/doc/view.cpp +++ b/apps/opencs/view/doc/view.cpp @@ -16,6 +16,8 @@ #include "operations.hpp" #include "subview.hpp" +#include + void CSVDoc::View::closeEvent (QCloseEvent *event) { if (!mViewManager.closeRequest (this)) @@ -250,7 +252,7 @@ void CSVDoc::View::showUserSettings() { CSVSettings::UserSettingsDialog *settingsDialog = new CSVSettings::UserSettingsDialog(this); - connect (settingsDialog, SIGNAL (signalUpdateEditorSetting (const QString &, const QString &)), + connect (&(CSMSettings::UserSettings::instance()), SIGNAL (signalUpdateEditorSetting (const QString &, const QString &)), this, SLOT (slotUpdateEditorSetting (const QString &, const QString &)) ); settingsDialog->show(); @@ -260,6 +262,8 @@ void CSVDoc::View::slotUpdateEditorSetting(const QString &settingName, const QSt { static QString lastValue = ""; + qDebug() << "updating setting: " << settingName << " = " << settingValue; + if (lastValue != settingValue) { //evaluate settingName against tokens to determine which function to call to update Editor application. diff --git a/apps/opencs/view/settings/usersettingsdialog.cpp b/apps/opencs/view/settings/usersettingsdialog.cpp index 24aae84f8..8f662f3a4 100644 --- a/apps/opencs/view/settings/usersettingsdialog.cpp +++ b/apps/opencs/view/settings/usersettingsdialog.cpp @@ -92,7 +92,7 @@ void CSVSettings::UserSettingsDialog::createSamplePage() new QListWidgetItem (page->objectName(), mListWidget); connect ( page, SIGNAL ( signalUpdateEditorSetting (const QString &, const QString &)), - this, SIGNAL ( signalUpdateEditorSetting (const QString &, const QString &))); + &(CSMSettings::UserSettings::instance()), SIGNAL ( signalUpdateEditorSetting (const QString &, const QString &))); } void CSVSettings::UserSettingsDialog::positionWindow () diff --git a/apps/opencs/view/settings/usersettingsdialog.hpp b/apps/opencs/view/settings/usersettingsdialog.hpp index 3b8e3964c..38ae2c538 100644 --- a/apps/opencs/view/settings/usersettingsdialog.hpp +++ b/apps/opencs/view/settings/usersettingsdialog.hpp @@ -16,6 +16,7 @@ class QListWidget; namespace CSVSettings { class AbstractPage; + class UserSettingsDialog : public QMainWindow { Q_OBJECT @@ -59,9 +60,6 @@ namespace CSVSettings { resize (mStackedWidget->sizeHint()); } - signals: - void signalUpdateEditorSetting (const QString &settingName, const QString &settingValue); - public slots: void slotChangePage (QListWidgetItem*, QListWidgetItem*); };