[gnote] Do not use singleton Gnote in SyncManager



commit da89ccfa22e441e401ae1eb30c3f2a55bbb6ea1b
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Wed Nov 13 17:38:07 2019 +0200

    Do not use singleton Gnote in SyncManager

 src/gnote.cpp                       |  2 +-
 src/synchronization/syncmanager.cpp | 15 ++++++++-------
 src/synchronization/syncmanager.hpp |  6 +++++-
 3 files changed, 14 insertions(+), 9 deletions(-)
---
diff --git a/src/gnote.cpp b/src/gnote.cpp
index 74fc7c8b..a1779bf4 100644
--- a/src/gnote.cpp
+++ b/src/gnote.cpp
@@ -148,7 +148,7 @@ namespace gnote {
     m_manager = new NoteManager(m_preferences);
     m_manager->init(note_path);
     m_action_manager.init();
-    m_sync_manager = new sync::SyncManager(default_note_manager());
+    m_sync_manager = new sync::SyncManager(*this, default_note_manager());
     m_sync_manager->init();
 
     m_manager->get_addin_manager().initialize_application_addins();
diff --git a/src/synchronization/syncmanager.cpp b/src/synchronization/syncmanager.cpp
index 82ed1605..dcab62bb 100644
--- a/src/synchronization/syncmanager.cpp
+++ b/src/synchronization/syncmanager.cpp
@@ -41,8 +41,9 @@
 namespace gnote {
 namespace sync {
 
-  SyncManager::SyncManager(NoteManagerBase & m)
-    : m_note_manager(m)
+  SyncManager::SyncManager(IGnote & g, NoteManagerBase & m)
+    : m_gnote(g)
+    , m_note_manager(m)
     , m_state(IDLE)
     , m_sync_thread(NULL)
   {
@@ -53,7 +54,7 @@ namespace sync {
   {
     m_client = GnoteSyncClient::create(m_note_manager);
     // Add a "Synchronize Notes" to Gnote's Application Menu
-    IActionManager & am(IGnote::obj().action_manager());
+    IActionManager & am(m_gnote.action_manager());
     am.add_app_action("sync-notes");
     am.add_app_menu_item(APP_SECTION_MANAGE, 200, _("Synchronize Notes"), "app.sync-notes");
 
@@ -83,7 +84,7 @@ namespace sync {
   {
     try {
       NoteManager & manager(dynamic_cast<NoteManager&>(note_mgr()));
-      IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->signal_changed()
+      m_gnote.preferences().get_schema_settings(Preferences::SCHEMA_SYNC)->signal_changed()
         .connect(sigc::mem_fun(*this, &SyncManager::preferences_setting_changed));
       manager.signal_note_saved.connect(sigc::mem_fun(*this, &SyncManager::handle_note_saved_or_deleted));
       manager.signal_note_deleted.connect(sigc::mem_fun(*this, &SyncManager::handle_note_saved_or_deleted));
@@ -412,9 +413,9 @@ namespace sync {
 
   void SyncManager::update_sync_action()
   {
-    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);
     Glib::ustring sync_addin_id = settings->get_string(Preferences::SYNC_SELECTED_SERVICE_ADDIN);
-    IGnote::obj().action_manager().get_app_action("sync-notes")->set_enabled(sync_addin_id != "");
+    m_gnote.action_manager().get_app_action("sync-notes")->set_enabled(sync_addin_id != "");
 
     int timeoutPref = settings->get_int(Preferences::SYNC_AUTOSYNC_TIMEOUT);
     if(timeoutPref != m_autosync_timeout_pref_minutes) {
@@ -533,7 +534,7 @@ namespace sync {
   {
     SyncServiceAddin *addin = NULL;
 
-    Glib::ustring sync_service_id = IGnote::obj().preferences()
+    Glib::ustring sync_service_id = m_gnote.preferences()
       .get_schema_settings(Preferences::SCHEMA_SYNC)->get_string(Preferences::SYNC_SELECTED_SERVICE_ADDIN);
     if(sync_service_id != "") {
       addin = get_sync_service_addin(sync_service_id);
diff --git a/src/synchronization/syncmanager.hpp b/src/synchronization/syncmanager.hpp
index 1368bd6e..c196d5e4 100644
--- a/src/synchronization/syncmanager.hpp
+++ b/src/synchronization/syncmanager.hpp
@@ -31,6 +31,9 @@
 
 
 namespace gnote {
+
+  class IGnote;
+
 namespace sync {
 
   class SyncServiceAddin;
@@ -39,7 +42,7 @@ namespace sync {
     : public ISyncManager
   {
   public:
-    SyncManager(NoteManagerBase &);
+    SyncManager(IGnote &, NoteManagerBase &);
     void init();
     virtual void reset_client() override;
     virtual void perform_synchronization(const SyncUI::Ptr & sync_ui) override;
@@ -79,6 +82,7 @@ namespace sync {
     NoteManagerBase & note_mgr();
     void get_synchronized_xml_bits(const Glib::ustring & noteXml, Glib::ustring & title, Glib::ustring & 
tags, Glib::ustring & content);
 
+    IGnote & m_gnote;
     NoteManagerBase & m_note_manager;
     SyncState m_state;
     Glib::Thread *m_sync_thread;


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