[gnote] Use new preferences utilities in addin manager
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Use new preferences utilities in addin manager
- Date: Fri, 18 Dec 2020 20:49:59 +0000 (UTC)
commit 5418457da9ab3d8a2854615c7811b07da4218364
Author: Aurimas Černius <aurisc4 gmail com>
Date: Fri Dec 18 22:46:44 2020 +0200
Use new preferences utilities in addin manager
src/addinmanager.cpp | 60 +++++++++++++++++++---------------------------------
src/addinmanager.hpp | 3 +--
2 files changed, 23 insertions(+), 40 deletions(-)
---
diff --git a/src/addinmanager.cpp b/src/addinmanager.cpp
index 537dc2e5..a6a1a58e 100644
--- a/src/addinmanager.cpp
+++ b/src/addinmanager.cpp
@@ -56,28 +56,21 @@ namespace gnote {
m_app_addins.insert(std::make_pair(typeid(klass).name(), \
klass::create()))
-#define SETUP_NOTE_ADDIN(key, KEY, klass) \
- do { \
- if(key == KEY) { \
- Glib::RefPtr<Gio::Settings> settings = m_preferences \
- .get_schema_settings(Preferences::SCHEMA_GNOTE); \
- if(settings->get_boolean(key)) { \
- sharp::IfaceFactoryBase *iface = new sharp::IfaceFactory<klass>; \
- m_builtin_ifaces.push_back(iface); \
- load_note_addin(typeid(klass).name(), iface); \
- } \
- else { \
- erase_note_addin_info(typeid(klass).name()); \
- } \
+#define SETUP_NOTE_ADDIN(key, klass) \
+ m_preferences.signal_##key##_changed.connect([this]() { \
+ if(m_preferences.key()) { \
+ sharp::IfaceFactoryBase *iface = new sharp::IfaceFactory<klass>; \
+ m_builtin_ifaces.push_back(iface); \
+ load_note_addin(typeid(klass).name(), iface); \
} \
- } while(0)
-
-#define SETUP_APP_ADDIN(key, KEY, klass) \
- do { \
- if(key == KEY) { \
- Glib::RefPtr<Gio::Settings> settings = m_preferences \
- .get_schema_settings(Preferences::SCHEMA_GNOTE); \
- if(settings->get_boolean(key)) { \
+ else { \
+ erase_note_addin_info(typeid(klass).name()); \
+ } \
+ })
+
+#define SETUP_APP_ADDIN(key, klass) \
+ m_preferences.signal_##key##_changed.connect([this]() { \
+ if(m_preferences.key()) { \
auto iter = m_app_addins.find(typeid(klass).name()); \
if(iter != m_app_addins.end()) { \
iter->second->initialize(); \
@@ -94,8 +87,7 @@ namespace gnote {
addin->second->shutdown(); \
} \
} \
- } \
- } while(0)
+ })
namespace {
template <typename AddinType>
@@ -284,21 +276,21 @@ namespace {
if (!sharp::directory_exists (m_addins_prefs_dir))
g_mkdir_with_parents(m_addins_prefs_dir.c_str(), S_IRWXU);
- Glib::RefPtr<Gio::Settings> settings = m_preferences
- .get_schema_settings(Preferences::SCHEMA_GNOTE);
- settings->signal_changed()
- .connect(sigc::mem_fun(*this, &AddinManager::on_setting_changed));
+ SETUP_NOTE_ADDIN(enable_url_links, NoteUrlWatcher);
+ SETUP_NOTE_ADDIN(enable_auto_links, NoteLinkWatcher);
+ SETUP_APP_ADDIN(enable_auto_links, AppLinkWatcher);
+ SETUP_NOTE_ADDIN(enable_wikiwords, NoteWikiWatcher);
REGISTER_BUILTIN_NOTE_ADDIN(NoteRenameWatcher);
REGISTER_BUILTIN_NOTE_ADDIN(NoteSpellChecker);
- if(settings->get_boolean(Preferences::ENABLE_URL_LINKS)) {
+ if(m_preferences.enable_url_links()) {
REGISTER_BUILTIN_NOTE_ADDIN(NoteUrlWatcher);
}
- if(settings->get_boolean(Preferences::ENABLE_AUTO_LINKS)) {
+ if(m_preferences.enable_auto_links()) {
REGISTER_APP_ADDIN(AppLinkWatcher);
REGISTER_BUILTIN_NOTE_ADDIN(NoteLinkWatcher);
}
- if(settings->get_boolean(Preferences::ENABLE_WIKIWORDS)) {
+ if(m_preferences.enable_wikiwords()) {
REGISTER_BUILTIN_NOTE_ADDIN(NoteWikiWatcher);
}
REGISTER_BUILTIN_NOTE_ADDIN(MouseHandWatcher);
@@ -595,14 +587,6 @@ namespace {
return NULL;
}
- void AddinManager::on_setting_changed(const Glib::ustring & key)
- {
- SETUP_NOTE_ADDIN(key, Preferences::ENABLE_URL_LINKS, NoteUrlWatcher);
- SETUP_NOTE_ADDIN(key, Preferences::ENABLE_AUTO_LINKS, NoteLinkWatcher);
- SETUP_APP_ADDIN(key, Preferences::ENABLE_AUTO_LINKS, AppLinkWatcher);
- SETUP_NOTE_ADDIN(key, Preferences::ENABLE_WIKIWORDS, NoteWikiWatcher);
- }
-
void AddinManager::register_addin_actions() const
{
auto & manager(m_gnote.action_manager());
diff --git a/src/addinmanager.hpp b/src/addinmanager.hpp
index 3a9d7a6d..b18ff45f 100644
--- a/src/addinmanager.hpp
+++ b/src/addinmanager.hpp
@@ -1,7 +1,7 @@
/*
* gnote
*
- * Copyright (C) 2010,2012-2015,2017,2019 Aurimas Cernius
+ * Copyright (C) 2010,2012-2015,2017,2019-2020 Aurimas Cernius
* Copyright (C) 2009 Debarshi Ray
* Copyright (C) 2009 Hubert Figuiere
*
@@ -92,7 +92,6 @@ private:
void initialize_sharp_addins();
void add_module_addins(const Glib::ustring & mod_id, sharp::DynamicModule * dmod);
AddinInfo get_info_for_module(const Glib::ustring & module) const;
- void on_setting_changed(const Glib::ustring & key);
void register_addin_actions() const;
IGnote & m_gnote;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]