[gnote] Do not statically access IGnote in PreferencesDialog



commit 4379f967898e8ad3630c1621acb8997eb78fefa8
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Fri Nov 1 23:40:27 2019 +0200

    Do not statically access IGnote in PreferencesDialog

 src/gnote.cpp             |  2 +-
 src/preferencesdialog.cpp | 51 ++++++++++++++++++++++++-----------------------
 src/preferencesdialog.hpp |  4 +++-
 3 files changed, 30 insertions(+), 27 deletions(-)
---
diff --git a/src/gnote.cpp b/src/gnote.cpp
index 96934171..de28a207 100644
--- a/src/gnote.cpp
+++ b/src/gnote.cpp
@@ -244,7 +244,7 @@ namespace gnote {
   void Gnote::on_show_preferences_action(const Glib::VariantBase&)
   {
     if(!m_prefsdlg) {
-      m_prefsdlg = new PreferencesDialog(default_note_manager());
+      m_prefsdlg = new PreferencesDialog(*this, default_note_manager());
       m_prefsdlg->signal_response().connect(
         sigc::mem_fun(*this, &Gnote::on_preferences_response));
     }
diff --git a/src/preferencesdialog.cpp b/src/preferencesdialog.cpp
index 904d50dc..c57b6fd7 100644
--- a/src/preferencesdialog.cpp
+++ b/src/preferencesdialog.cpp
@@ -83,7 +83,7 @@ namespace gnote {
   };
 
 
-  PreferencesDialog::PreferencesDialog(NoteManager & note_manager)
+  PreferencesDialog::PreferencesDialog(IGnote & ignote, NoteManager & note_manager)
     : Gtk::Dialog()
     , m_sync_addin_combo(NULL)
     , m_selected_sync_addin(NULL)
@@ -92,6 +92,7 @@ namespace gnote {
     , m_reset_sync_addin_button(NULL)
     , m_save_sync_addin_button(NULL)
     , m_rename_behavior_combo(NULL)
+    , m_gnote(ignote)
     , m_addin_manager(note_manager.get_addin_manager())
     , m_note_manager(note_manager)
   {
@@ -163,7 +164,7 @@ namespace gnote {
       add_action_widget (*button, Gtk::RESPONSE_CLOSE);
       set_default_response(Gtk::RESPONSE_CLOSE);
 
-    IGnote::obj().preferences().get_schema_settings(
+    m_gnote.preferences().get_schema_settings(
       Preferences::SCHEMA_GNOTE)->signal_changed().connect(
         sigc::mem_fun(*this, &PreferencesDialog::on_preferences_setting_changed));
   }
@@ -209,7 +210,7 @@ namespace gnote {
   void PreferencesDialog::enable_app_addin(ApplicationAddin *addin, bool enable)
   {
     if(enable) {
-      addin->initialize(IGnote::obj(), m_note_manager);
+      addin->initialize(m_gnote, m_note_manager);
     }
     else {
       addin->shutdown();
@@ -220,7 +221,7 @@ namespace gnote {
   void PreferencesDialog::enable_sync_addin(sync::SyncServiceAddin *addin, bool enable)
   {
     if(enable) {
-      addin->initialize(IGnote::obj(), IGnote::obj().sync_manager());
+      addin->initialize(m_gnote, m_gnote.sync_manager());
     }
     else {
       addin->shutdown();
@@ -235,7 +236,7 @@ namespace gnote {
       Gtk::Label *label;
       Gtk::CheckButton *check;
       sharp::PropertyEditorBool *peditor, *font_peditor,* bullet_peditor;
-      Glib::RefPtr<Gio::Settings> settings = 
IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_GNOTE);
+      Glib::RefPtr<Gio::Settings> settings = 
m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_GNOTE);
 
       Gtk::Grid *options_list = manage(new Gtk::Grid);
       options_list->set_row_spacing(12);
@@ -364,7 +365,7 @@ namespace gnote {
     button->add (*font_box);
     button->show ();
 
-    Glib::ustring font_desc = IGnote::obj().preferences().get_schema_settings(
+    Glib::ustring font_desc = m_gnote.preferences().get_schema_settings(
         Preferences::SCHEMA_GNOTE)->get_string(Preferences::CUSTOM_FONT_FACE);
     update_font_button (font_desc);
 
@@ -381,7 +382,7 @@ namespace gnote {
     Gtk::CheckButton *check;
     sharp::PropertyEditorBool *peditor;
     int vbox_row = 0;
-    Glib::RefPtr<Gio::Settings> settings = IGnote::obj().preferences()
+    Glib::RefPtr<Gio::Settings> settings = m_gnote.preferences()
       .get_schema_settings(Preferences::SCHEMA_GNOTE);
 
     // internal links
@@ -458,7 +459,7 @@ namespace gnote {
 
     // Read from Preferences which service is configured and select it
     // by default.  Otherwise, just select the first one in the list.
-    Glib::ustring addin_id = IGnote::obj().preferences()
+    Glib::ustring addin_id = m_gnote.preferences()
       .get_schema_settings(Preferences::SCHEMA_SYNC)->get_string(Preferences::SYNC_SELECTED_SERVICE_ADDIN);
 
     Gtk::TreeIter active_iter;
@@ -506,11 +507,11 @@ namespace gnote {
     vbox->attach(*m_sync_addin_prefs_container, 0, vbox_row++, 1, 1);
 
     // Autosync preference
-    int timeout = IGnote::obj().preferences().get_schema_settings(
+    int timeout = m_gnote.preferences().get_schema_settings(
         Preferences::SCHEMA_SYNC)->get_int(Preferences::SYNC_AUTOSYNC_TIMEOUT);
     if(timeout > 0 && timeout < 5) {
       timeout = 5;
-      IGnote::obj().preferences().get_schema_settings(
+      m_gnote.preferences().get_schema_settings(
           Preferences::SCHEMA_SYNC)->set_int(Preferences::SYNC_AUTOSYNC_TIMEOUT, 5);
     }
     Gtk::Grid *autosyncBox = manage(new Gtk::Grid);
@@ -599,7 +600,7 @@ namespace gnote {
 
     // TreeView of Add-ins
     m_addin_tree = manage(new Gtk::TreeView ());
-    m_addin_tree_model = sharp::AddinsTreeModel::create(IGnote::obj().icon_manager(), m_addin_tree);
+    m_addin_tree_model = sharp::AddinsTreeModel::create(m_gnote.icon_manager(), m_addin_tree);
 
     m_addin_tree->show ();
 
@@ -938,7 +939,7 @@ namespace gnote {
     Gtk::FontSelectionDialog *font_dialog =
       new Gtk::FontSelectionDialog (_("Choose Note Font"));
 
-    Glib::RefPtr<Gio::Settings> settings = 
IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_GNOTE);
+    Glib::RefPtr<Gio::Settings> settings = 
m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_GNOTE);
     Glib::ustring font_name = settings->get_string(Preferences::CUSTOM_FONT_FACE);
     font_dialog->set_font_name(font_name);
 
@@ -977,7 +978,7 @@ namespace gnote {
     NoteBase::Ptr template_note = m_note_manager.get_or_create_template_note();
 
     // Open the template note
-    IGnote::obj().open_note(std::static_pointer_cast<Note>(template_note));
+    m_gnote.open_note(std::static_pointer_cast<Note>(template_note));
   }
 
 
@@ -985,7 +986,7 @@ namespace gnote {
   void  PreferencesDialog::on_preferences_setting_changed(const Glib::ustring & key)
   {
     if (key == Preferences::NOTE_RENAME_BEHAVIOR) {
-      Glib::RefPtr<Gio::Settings> settings = IGnote::obj().preferences()
+      Glib::RefPtr<Gio::Settings> settings = m_gnote.preferences()
         .get_schema_settings(Preferences::SCHEMA_GNOTE);
       int rename_behavior = settings->get_int(key);
       if (0 > rename_behavior || 2 < rename_behavior) {
@@ -998,7 +999,7 @@ namespace gnote {
       }
     }
     else if(key == Preferences::SYNC_AUTOSYNC_TIMEOUT) {
-      int timeout = IGnote::obj().preferences().get_schema_settings(
+      int timeout = m_gnote.preferences().get_schema_settings(
           Preferences::SCHEMA_SYNC)->get_int(Preferences::SYNC_AUTOSYNC_TIMEOUT);
       if(timeout <= 0 && m_autosync_check->get_active()) {
         m_autosync_check->set_active(false);
@@ -1019,7 +1020,7 @@ namespace gnote {
 
   void  PreferencesDialog::on_rename_behavior_changed()
   {
-    IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_GNOTE)->set_int(
+    m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_GNOTE)->set_int(
         Preferences::NOTE_RENAME_BEHAVIOR, m_rename_behavior_combo->get_active_row_number());
   }
 
@@ -1028,7 +1029,7 @@ namespace gnote {
   {
     // Get saved behavior
     sync::SyncTitleConflictResolution savedBehavior = sync::CANCEL;
-    int dlgBehaviorPref = IGnote::obj().preferences().get_schema_settings(
+    int dlgBehaviorPref = m_gnote.preferences().get_schema_settings(
       Preferences::SCHEMA_SYNC)->get_int(Preferences::SYNC_CONFIGURED_CONFLICT_BEHAVIOR);
     // TODO: Check range of this int
     savedBehavior = static_cast<sync::SyncTitleConflictResolution>(dlgBehaviorPref);
@@ -1095,7 +1096,7 @@ namespace gnote {
       newBehavior = sync::OVERWRITE_EXISTING;
     }
 
-    IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_int(
+    m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_int(
       Preferences::SYNC_CONFIGURED_CONFLICT_BEHAVIOR, static_cast<int>(newBehavior));
   }
 
@@ -1177,13 +1178,13 @@ namespace gnote {
       DBG_OUT("Error calling %s.reset_configuration: %s", m_selected_sync_addin->id().c_str(), e.what());
     }
 
-    Glib::RefPtr<Gio::Settings> settings = 
IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC);
+    Glib::RefPtr<Gio::Settings> settings = 
m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_SYNC);
     settings->set_string(Preferences::SYNC_SELECTED_SERVICE_ADDIN, "");
 
     // Reset conflict handling behavior
     settings->set_int(Preferences::SYNC_CONFIGURED_CONFLICT_BEHAVIOR, 
DEFAULT_SYNC_CONFIGURED_CONFLICT_BEHAVIOR);
 
-    IGnote::obj().sync_manager().reset_client();
+    m_gnote.sync_manager().reset_client();
 
     m_sync_addin_combo->set_sensitive(true);
     m_sync_addin_combo->unset_active();
@@ -1226,7 +1227,7 @@ namespace gnote {
 
     utils::HIGMessageDialog *dialog;
     if(saved) {
-      IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_string(
+      m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_string(
         Preferences::SYNC_SELECTED_SERVICE_ADDIN, m_selected_sync_addin->id());
 
       m_sync_addin_combo->set_sensitive(false);
@@ -1234,7 +1235,7 @@ namespace gnote {
       m_reset_sync_addin_button->set_sensitive(true);
       m_save_sync_addin_button->set_sensitive(false);
 
-      IGnote::obj().sync_manager().reset_client();
+      m_gnote.sync_manager().reset_client();
 
       // Give the user a visual letting them know that connecting
       // was successful.
@@ -1247,14 +1248,14 @@ namespace gnote {
 
       if(dialog_response == Gtk::RESPONSE_YES) {
         // TODO: Put this voodoo in a method somewhere
-        IGnote::obj().action_manager().get_app_action("sync-notes")->activate(Glib::VariantBase());
+        m_gnote.action_manager().get_app_action("sync-notes")->activate(Glib::VariantBase());
       }
     }
     else {
       // TODO: Change the SyncServiceAddin API so the call to
       // SaveConfiguration has a way of passing back an exception
       // or other text so it can be displayed to the user.
-      IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_string(
+      m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_string(
        Preferences::SYNC_SELECTED_SERVICE_ADDIN, "");
 
       m_sync_addin_combo->set_sensitive(true);
@@ -1428,7 +1429,7 @@ namespace gnote {
 
   void PreferencesDialog::update_timeout_pref()
   {
-    IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_int(
+    m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->set_int(
         Preferences::SYNC_AUTOSYNC_TIMEOUT,
         m_autosync_check->get_active() ? static_cast<int>(m_autosync_spinner->get_value()) : -1);
   }
diff --git a/src/preferencesdialog.hpp b/src/preferencesdialog.hpp
index a2494330..2502f457 100644
--- a/src/preferencesdialog.hpp
+++ b/src/preferencesdialog.hpp
@@ -40,12 +40,13 @@ namespace gnote {
 
 namespace sync { class SyncServiceAddin; }
 class AddinManager;
+class IGnote;
 
 class PreferencesDialog
   : public Gtk::Dialog
 {
 public:
-  explicit PreferencesDialog(NoteManager & note_manager);
+  PreferencesDialog(IGnote & ignote, NoteManager & note_manager);
   
 
   Gtk::Widget *make_editing_pane();
@@ -120,6 +121,7 @@ private:
   Gtk::CheckButton *m_autosync_check;
   Gtk::SpinButton *m_autosync_spinner;
   Gtk::ComboBoxText *m_rename_behavior_combo;
+  IGnote & m_gnote;
   AddinManager &m_addin_manager;
   NoteManager & m_note_manager;
     


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]