From 88572ee1e3d4596a1d5aadbb357be0b7d0435d7e Mon Sep 17 00:00:00 2001 From: Paolo Capriotti Date: Sat, 21 Jul 2007 13:36:18 +0200 Subject: [PATCH] Removed global settings object. Fixes ticket #18. --- src/board.cpp | 2 +- src/clock.cpp | 4 ++-- src/console.cpp | 2 +- src/graphicalgame.cpp | 8 ++++---- src/graphicalsystem.cpp | 2 +- src/loader/theme.cpp | 4 ++-- src/mainwindow.cpp | 4 ++-- src/mastersettings.cpp | 5 ++++- src/mastersettings.h | 2 +- src/movelist.cpp | 6 ++---- src/pref_board.cpp | 8 ++++---- src/pref_engines.cpp | 4 ++-- src/pref_preferences.cpp | 2 +- src/pref_theme.cpp | 10 +++++----- src/qconnect.cpp | 4 ++-- 15 files changed, 34 insertions(+), 33 deletions(-) diff --git a/src/board.cpp b/src/board.cpp index b28b125..1d44668 100644 --- a/src/board.cpp +++ b/src/board.cpp @@ -76,7 +76,7 @@ Board::~Board() { } void Board::settingsChanged() { - Settings s_anim = settings.group("animations"); + Settings s_anim = settings().group("animations"); int speed = (s_anim["speed"] | 16); int smoothness = (s_anim["smoothness"] | 16); m_main_animation->setSpeed( 0.4*pow(10.0, speed/32.0) ); diff --git a/src/clock.cpp b/src/clock.cpp index 5157b40..8c6140b 100644 --- a/src/clock.cpp +++ b/src/clock.cpp @@ -202,7 +202,7 @@ void Clock::Info::setup(const Player& player, const QRect& rect, const QString& m_total_time = 0; m_rect = rect; - Settings s_clock = settings.group("clock"); + Settings s_clock = settings().group("clock"); QColor framecol(0x60,0x60,0x90); QColor backgroundColor; @@ -263,7 +263,7 @@ void Clock::Info::setup(const Player& player, const QRect& rect, const QString& } void Clock::Info::reload() { - Settings s_clock = settings.group("clock"); + Settings s_clock = settings().group("clock"); QFont tempFont; QColor backgroundColor; diff --git a/src/console.cpp b/src/console.cpp index e02cd0b..9f34fbe 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -219,7 +219,7 @@ Console::Console(QWidget* parent, const QString& caption) display->setAcceptRichText(false); display->setWordWrapMode (QTextOption::NoWrap); display->setUndoRedoEnabled (false); - Settings s_console = settings.group("console"); + Settings s_console = settings().group("console"); if (!s_console["font"]) { QFont f = QApplication::font(); f.setFamily("Monospace"); diff --git a/src/graphicalgame.cpp b/src/graphicalgame.cpp index a0ace99..7aeaba1 100644 --- a/src/graphicalgame.cpp +++ b/src/graphicalgame.cpp @@ -51,7 +51,7 @@ GraphicalGame::GraphicalGame(GraphicalSystem* graphical, m_movelist->setNotifier( static_cast(this) ); m_movelist->show(); } - settings.onChange(this, "settingsChanged", "Loader::Theme"); + settings().onChange(this, "settingsChanged", "Loader::Theme"); settingsChanged(); } @@ -64,9 +64,9 @@ GraphicalGame::~GraphicalGame() { } void GraphicalGame::settingsChanged() { - m_anim_sequence = settings.flag("animations", true) - && settings("animations").flag("sequence", true); - m_anim_sequence_max = settings("animations")("sequence")[QString("max")] | 10; + m_anim_sequence = settings().flag("animations", true) + && settings()("animations").flag("sequence", true); + m_anim_sequence_max = settings()("animations")("sequence")[QString("max")] | 10; } void GraphicalGame::onAdded(const Index& ix) { diff --git a/src/graphicalsystem.cpp b/src/graphicalsystem.cpp index 4d2707e..217c809 100644 --- a/src/graphicalsystem.cpp +++ b/src/graphicalsystem.cpp @@ -46,7 +46,7 @@ GraphicalSystem::GraphicalSystem(ChessTable* view, m_animator = m_variant->createAnimator(this); - settings.onChange(this, "settingsChanged", "Loader::Theme"); + settings().onChange(this, "settingsChanged", "Loader::Theme"); settingsChanged(); if (startingPosition) diff --git a/src/loader/theme.cpp b/src/loader/theme.cpp index a07e3db..5eebe71 100644 --- a/src/loader/theme.cpp +++ b/src/loader/theme.cpp @@ -41,7 +41,7 @@ Theme::Theme(const ThemeInfo& theme) if(m_lua_loader.error()) ERROR("Script load error: " << std::endl << m_lua_loader.errorString()); - settings.onChange(this, "onSettingsChanged"); + settings().onChange(this, "onSettingsChanged"); onSettingsChanged(); } @@ -51,7 +51,7 @@ Theme::~Theme() { } void Theme::onSettingsChanged() { - SettingMap s_lua = settings.group("lua-settings").map("entry", "file-name"); + SettingMap s_lua = settings().group("lua-settings").map("entry", "file-name"); Settings entry = s_lua.insert(m_theme.file_name); OptList ol = m_lua_loader.getValue("options", 0, NULL, true); if(m_lua_loader.error()) { diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e762497..03c2687 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -123,7 +123,7 @@ KAction* MainWindow::installRegularAction(const QString& name, const KIcon& icon void MainWindow::setupEngineMenu() { QMenu* engine_menu = 0; - SettingArray engine_settings = settings.group("engines").array("engine"); + SettingArray engine_settings = settings().group("engines").array("engine"); foreach (Settings s, engine_settings) { if (!engine_menu) { // this way the menu is created only if there is at least one engine @@ -532,7 +532,7 @@ void MainWindow::icsDisconnect() { } void MainWindow::testConnect() { - Settings s_ics = settings.group("ics"); + Settings s_ics = settings().group("ics"); if (s_ics["username"]) { QString username = s_ics["username"].value(); QString password = (s_ics["password"] | ""); diff --git a/src/mastersettings.cpp b/src/mastersettings.cpp index d2c5019..78700d8 100644 --- a/src/mastersettings.cpp +++ b/src/mastersettings.cpp @@ -134,6 +134,9 @@ void MasterSettings::changed() { sync(); } -MasterSettings settings(".taguarc.xml"); +MasterSettings& settings() { + static MasterSettings static_settings(".taguarc.xml"); + return static_settings; +} diff --git a/src/mastersettings.h b/src/mastersettings.h index 8f12fde..883b70a 100644 --- a/src/mastersettings.h +++ b/src/mastersettings.h @@ -72,6 +72,6 @@ public: void sync(); }; -extern MasterSettings settings; // yes, I know global objects are evil +MasterSettings& settings(); #endif // MASTERSETTINGS_H diff --git a/src/movelist.cpp b/src/movelist.cpp index dfa43a6..3c6a12b 100644 --- a/src/movelist.cpp +++ b/src/movelist.cpp @@ -401,7 +401,7 @@ void Entry::doUpdate () { //BEGIN Settings--------------------------------------------------------------- void Settings::load() { - ::Settings s = settings.group("move-list"); + ::Settings s = settings().group("move-list"); ::Settings s_anim = s.group("animations"); anim_enabled = s.group("animations").flag("enabled", true); @@ -425,12 +425,10 @@ void Settings::load() { mv_fmetrics = QFontMetrics(mv_font); sel_mv_fmetrics = QFontMetrics(sel_mv_font); comm_fmetrics = QFontMetrics(comm_font); - -// settings.qSettings()->endGroup(); } void Settings::save() { - ::Settings s = settings.group("move-list"); + ::Settings s = settings().group("move-list"); ::Settings s_anim = s.group("animations"); s.group("animations").setFlag("enabled", anim_enabled); diff --git a/src/pref_board.cpp b/src/pref_board.cpp index a9e25a1..544dc29 100644 --- a/src/pref_board.cpp +++ b/src/pref_board.cpp @@ -20,7 +20,7 @@ PrefBoard::PrefBoard(QWidget *parent) setupUi(this); { - Settings s_anim = settings.group("animations"); + Settings s_anim = settings().group("animations"); groupAnimations->setChecked(s_anim.flag("enabled", true)); checkMovements->setChecked(s_anim["movement"].flag("enabled", true)); checkExplosions->setChecked(s_anim["explode"].flag("enabled", true)); @@ -37,7 +37,7 @@ PrefBoard::PrefBoard(QWidget *parent) } { - Settings s_border = settings.group("board-border"); + Settings s_border = settings().group("board-border"); groupBorder->setChecked(s_border.flag("visible", "true")); colorBorder->setColor(s_border["color"] |= QColor(Qt::white)); colorBorderText->setColor(s_border["text-color"] |= QColor(Qt::black)); @@ -50,7 +50,7 @@ PrefBoard::~PrefBoard() { void PrefBoard::apply() { { - Settings s_anim = settings.group("animations"); + Settings s_anim = settings().group("animations"); s_anim.setFlag("enabled", groupAnimations->isChecked()); s_anim.group("movement").setFlag("enabled", checkMovements->isChecked()); s_anim.group("explode").setFlag("enabled", checkExplosions->isChecked()); @@ -67,7 +67,7 @@ void PrefBoard::apply() { } { - Settings s_border = settings.group("board-border"); + Settings s_border = settings().group("board-border"); s_border.setFlag("visible", groupBorder->isChecked()); s_border["color"] = colorBorder->color(); s_border["text-color"] = colorBorderText->color(); diff --git a/src/pref_engines.cpp b/src/pref_engines.cpp index b844657..42b5a21 100644 --- a/src/pref_engines.cpp +++ b/src/pref_engines.cpp @@ -30,7 +30,7 @@ PrefEngines::PrefEngines(QWidget* parent) m_add_engine->setIcon(KIcon("add")); m_remove_engine->setIcon(KIcon("edit-delete")); - SettingArray s_engines = settings.group("engines").array("engine"); + SettingArray s_engines = settings().group("engines").array("engine"); foreach (Settings s, s_engines) { EngineDetails details; s["name"] >> details.name; @@ -109,7 +109,7 @@ void PrefEngines::changeEngine(QListWidgetItem*) { void PrefEngines::apply() { - SettingArray s_engines = settings.group("engines").newArray("engine"); + SettingArray s_engines = settings().group("engines").newArray("engine"); std::pair p; for (int i = 0; i < m_engine_list->count(); i++) { diff --git a/src/pref_preferences.cpp b/src/pref_preferences.cpp index 0a7a72d..6dcd3ed 100644 --- a/src/pref_preferences.cpp +++ b/src/pref_preferences.cpp @@ -89,6 +89,6 @@ Preferences::~Preferences() { void Preferences::apply() { emit applied(); - settings.changed(); + settings().changed(); } diff --git a/src/pref_theme.cpp b/src/pref_theme.cpp index 878a57a..35dd40f 100644 --- a/src/pref_theme.cpp +++ b/src/pref_theme.cpp @@ -115,7 +115,7 @@ OptList PrefTheme::get_file_options(const QString& f, bool reload_defaults) { } if(!reload_defaults) { - SettingMap s_lua = settings.group("lua-settings").map("entry", "file-name"); + SettingMap s_lua = settings().group("lua-settings").map("entry", "file-name"); Settings entry = s_lua.insert(f); options_list_load_from_settings(*o, entry.group("options")); @@ -174,7 +174,7 @@ PrefTheme::~PrefTheme() { } void PrefTheme::apply() { - SettingMap variants = settings.group("variants").map("variant", "name"); + SettingMap variants = settings().group("variants").map("variant", "name"); for(CategoryMap::iterator cit = m_categories.begin(); cit != m_categories.end(); ++cit) { Category* c = cit->second; @@ -193,7 +193,7 @@ void PrefTheme::apply() { for(std::map >::iterator it = m_new_theme_options.begin(); it != m_new_theme_options.end(); ++it) { - SettingMap s_lua = settings.group("lua-settings").map("entry", "file-name"); + SettingMap s_lua = settings().group("lua-settings").map("entry", "file-name"); Settings entry = s_lua.insert(it->first); options_list_save_to_settings(*it->second, entry.group("options")); } @@ -247,7 +247,7 @@ void PrefTheme::variantChanged() { QString vname = vi->name(); QString vproxy = vi->themeProxy(); - SettingMap variants = settings.group("variants").map("variant", "name"); + SettingMap variants = settings().group("variants").map("variant", "name"); Settings var = variants.insert(vname); bool ck = vname != vproxy; @@ -278,7 +278,7 @@ ThemeInfo PrefTheme::getBestTheme(VariantInfo* vi, const QString& category) { QString tag = category + "-theme"; QString deftag = category + "-use-def"; QString v = vi->name(); - SettingMap variants = settings.group("variants").map("variant", "name"); + SettingMap variants = settings().group("variants").map("variant", "name"); if (v != vi->themeProxy() && (variants.insert(v)[deftag] | true) ) v = vi->themeProxy(); diff --git a/src/qconnect.cpp b/src/qconnect.cpp index 6ad3c9a..3f52d5f 100644 --- a/src/qconnect.cpp +++ b/src/qconnect.cpp @@ -34,7 +34,7 @@ QConnect::QConnect(QWidget *parent, const char *name) editTimesealCmd->setToolTip(timeseal_cmd_tool_tip); //std::cout << "initializing dialog" << std::endl; - Settings s_ics = settings.group("ics"); + Settings s_ics = settings().group("ics"); if (s_ics["username"]) editUsername->setText(s_ics["username"].value()); if (s_ics["password"]) { @@ -59,7 +59,7 @@ void QConnect::setTimesealPath() { void QConnect::accept() { QDialog::accept(); - Settings s_ics = settings.group("ics"); + Settings s_ics = settings().group("ics"); s_ics["username"] = editUsername->text(); if (chkStore->isChecked()) s_ics["password"] = editPassword->text(); -- 2.11.4.GIT