[gnote] Do not use singleton Gnote in SyncManager
- From: Aurimas ÄŒernius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Do not use singleton Gnote in SyncManager
- Date: Wed, 13 Nov 2019 15:50:34 +0000 (UTC)
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]