[gnote] Make ActionManager non-singleton
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Make ActionManager non-singleton
- Date: Sun, 13 Oct 2019 14:43:21 +0000 (UTC)
commit 5de69cdb32fc162a9bd828fd73b2e5da51db7323
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sun Oct 13 17:41:59 2019 +0300
Make ActionManager non-singleton
src/addinmanager.cpp | 2 +-
src/gnote.cpp | 17 ++++++++---------
src/gnote.hpp | 4 ++++
src/iactionmanager.hpp | 3 ---
src/ignote.hpp | 2 ++
src/notebooks/notebookapplicationaddin.cpp | 4 ++--
src/preferencesdialog.cpp | 2 +-
src/recentchanges.cpp | 4 ++--
src/searchnoteswidget.cpp | 6 +++---
src/synchronization/syncmanager.cpp | 4 ++--
10 files changed, 25 insertions(+), 23 deletions(-)
---
diff --git a/src/addinmanager.cpp b/src/addinmanager.cpp
index cccf92d3..95453e33 100644
--- a/src/addinmanager.cpp
+++ b/src/addinmanager.cpp
@@ -579,7 +579,7 @@ namespace {
void AddinManager::register_addin_actions() const
{
- auto & manager(IActionManager::obj());
+ auto & manager(IGnote::obj().action_manager());
for(auto & info : m_addin_infos) {
auto & non_modifying = info.second.non_modifying_actions();
for(auto & action : info.second.actions()) {
diff --git a/src/gnote.cpp b/src/gnote.cpp
index 0cb54c56..656df6c9 100644
--- a/src/gnote.cpp
+++ b/src/gnote.cpp
@@ -429,17 +429,16 @@ namespace gnote {
void Gnote::make_app_actions()
{
- IActionManager & am(IActionManager::obj());
- am.get_app_action("new-note")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_new_note_app_action));
- am.get_app_action("new-window")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_new_window_action));
- am.get_app_action("show-preferences")->signal_activate().connect(
+ m_action_manager.get_app_action("new-note")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_new_note_app_action));
+ m_action_manager.get_app_action("new-window")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_new_window_action));
+ m_action_manager.get_app_action("show-preferences")->signal_activate().connect(
sigc::mem_fun(*this, &Gnote::on_show_preferences_action));
- am.get_app_action("sync-notes")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::open_note_sync_window));
- am.get_app_action("help-contents")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_show_help_action));
- am.get_app_action("help-shortcuts")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_show_help_shortcust_action));
- am.get_app_action("about")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_show_about_action));
+ m_action_manager.get_app_action("sync-notes")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::open_note_sync_window));
+ m_action_manager.get_app_action("help-contents")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_show_help_action));
+ m_action_manager.get_app_action("help-shortcuts")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_show_help_shortcust_action));
+ m_action_manager.get_app_action("about")->signal_activate().connect(sigc::mem_fun(*this,
&Gnote::on_show_about_action));
- add_app_actions(static_cast<ActionManager &>(am).get_app_actions());
+ add_app_actions(m_action_manager.get_app_actions());
}
diff --git a/src/gnote.hpp b/src/gnote.hpp
index b769f41d..37b321a3 100644
--- a/src/gnote.hpp
+++ b/src/gnote.hpp
@@ -121,6 +121,10 @@ public:
{
return *m_manager;
}
+ virtual IActionManager & action_manager() override
+ {
+ return m_action_manager;
+ }
virtual IconManager & icon_manager() override
{
return m_icon_manager;
diff --git a/src/iactionmanager.hpp b/src/iactionmanager.hpp
index 349c1ba1..fa312b50 100644
--- a/src/iactionmanager.hpp
+++ b/src/iactionmanager.hpp
@@ -23,15 +23,12 @@
#include <giomm/simpleaction.h>
#include <gtkmm/action.h>
-#include <gtkmm/uimanager.h>
-#include "base/singleton.hpp"
#include "popoverwidgets.hpp"
namespace gnote {
class IActionManager
- : public base::Singleton<IActionManager>
{
public:
virtual ~IActionManager();
diff --git a/src/ignote.hpp b/src/ignote.hpp
index 54e67243..911d00df 100644
--- a/src/ignote.hpp
+++ b/src/ignote.hpp
@@ -25,6 +25,7 @@
namespace gnote {
+class IActionManager;
class IconManager;
class Preferences;
@@ -40,6 +41,7 @@ public:
virtual ~IGnote();
+ virtual IActionManager & action_manager() = 0;
virtual IconManager & icon_manager() = 0;
virtual Preferences & preferences() = 0;
diff --git a/src/notebooks/notebookapplicationaddin.cpp b/src/notebooks/notebookapplicationaddin.cpp
index e26b753f..23974682 100644
--- a/src/notebooks/notebookapplicationaddin.cpp
+++ b/src/notebooks/notebookapplicationaddin.cpp
@@ -35,8 +35,8 @@
#include "notebooks/notebooknewnotemenuitem.hpp"
#include "notebooks/notebook.hpp"
#include "iactionmanager.hpp"
+#include "ignote.hpp"
#include "debug.hpp"
-#include "iconmanager.hpp"
#include "notemanager.hpp"
namespace gnote {
@@ -57,7 +57,7 @@ namespace gnote {
void NotebookApplicationAddin::initialize ()
{
- IActionManager & am(IActionManager::obj());
+ IActionManager & am(IGnote::obj().action_manager());
NoteManager & nm(note_manager());
diff --git a/src/preferencesdialog.cpp b/src/preferencesdialog.cpp
index 167d3400..696618aa 100644
--- a/src/preferencesdialog.cpp
+++ b/src/preferencesdialog.cpp
@@ -1237,7 +1237,7 @@ namespace gnote {
if(dialog_response == Gtk::RESPONSE_YES) {
// TODO: Put this voodoo in a method somewhere
- IActionManager::obj().get_app_action("sync-notes")->activate(Glib::VariantBase());
+ IGnote::obj().action_manager().get_app_action("sync-notes")->activate(Glib::VariantBase());
}
}
else {
diff --git a/src/recentchanges.cpp b/src/recentchanges.cpp
index a1a7cfb3..7fff1f48 100644
--- a/src/recentchanges.cpp
+++ b/src/recentchanges.cpp
@@ -107,7 +107,7 @@ namespace gnote {
m_keybinder.add_accelerator(sigc::mem_fun(*this, &NoteRecentChanges::close_window),
GDK_KEY_Q, Gdk::CONTROL_MASK, (Gtk::AccelFlags)0);
- std::map<Glib::ustring, const Glib::VariantType*> actions =
IActionManager::obj().get_main_window_actions();
+ std::map<Glib::ustring, const Glib::VariantType*> actions =
IGnote::obj().action_manager().get_main_window_actions();
for(std::map<Glib::ustring, const Glib::VariantType*>::iterator iter = actions.begin();
iter != actions.end(); ++iter) {
MainWindowAction::Ptr action;
@@ -124,7 +124,7 @@ namespace gnote {
add_action(action = MainWindowAction::create(iter->first, Glib::ustring("")));
}
if(action) {
- action->is_modifying(IActionManager::obj().is_modifying_main_window_action(iter->first));
+ action->is_modifying(IGnote::obj().action_manager().is_modifying_main_window_action(iter->first));
}
}
find_action("close-window")->signal_activate()
diff --git a/src/searchnoteswidget.cpp b/src/searchnoteswidget.cpp
index 0c58ba4a..02860c9a 100644
--- a/src/searchnoteswidget.cpp
+++ b/src/searchnoteswidget.cpp
@@ -1393,7 +1393,7 @@ void SearchNotesWidget::foreground()
win->add_accel_group(m_accel_group);
win->set_focus(*m_tree);
- auto & manager(IActionManager::obj());
+ auto & manager(IGnote::obj().action_manager());
register_callbacks();
m_callback_changed_cid = manager.signal_main_window_search_actions_changed
.connect(sigc::mem_fun(*this, &SearchNotesWidget::callbacks_changed));
@@ -1435,7 +1435,7 @@ std::vector<PopoverWidget> SearchNotesWidget::get_popover_widgets()
{
std::vector<PopoverWidget> popover_widgets;
popover_widgets.reserve(20);
- IActionManager::obj().signal_build_main_window_search_popover(popover_widgets);
+ IGnote::obj().action_manager().signal_build_main_window_search_popover(popover_widgets);
for(unsigned i = 0; i < popover_widgets.size(); ++i) {
popover_widgets[i].secondary_order = i;
}
@@ -1555,7 +1555,7 @@ void SearchNotesWidget::register_callbacks()
if(!win) {
return;
}
- auto & manager(IActionManager::obj());
+ auto & manager(IGnote::obj().action_manager());
auto cbacks = manager.get_main_window_search_callbacks();
for(auto & cback : cbacks) {
auto action = win->find_action(cback.first);
diff --git a/src/synchronization/syncmanager.cpp b/src/synchronization/syncmanager.cpp
index 6593f9a2..d1ed77b2 100644
--- a/src/synchronization/syncmanager.cpp
+++ b/src/synchronization/syncmanager.cpp
@@ -60,7 +60,7 @@ namespace sync {
{
m_client = GnoteSyncClient::create(manager);
// Add a "Synchronize Notes" to Gnote's Application Menu
- IActionManager & am(IActionManager::obj());
+ IActionManager & am(IGnote::obj().action_manager());
am.add_app_action("sync-notes");
am.add_app_menu_item(APP_SECTION_MANAGE, 200, _("Synchronize Notes"), "app.sync-notes");
@@ -420,7 +420,7 @@ namespace sync {
{
Glib::RefPtr<Gio::Settings> settings =
IGnote::obj().preferences().get_schema_settings(Preferences::SCHEMA_SYNC);
Glib::ustring sync_addin_id = settings->get_string(Preferences::SYNC_SELECTED_SERVICE_ADDIN);
- IActionManager::obj().get_app_action("sync-notes")->set_enabled(sync_addin_id != "");
+ IGnote::obj().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) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]