[gnote] Add main window search action support to action manager
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Add main window search action support to action manager
- Date: Sun, 27 Dec 2015 13:03:37 +0000 (UTC)
commit 2e32a4e99c734cdfc83bcb4abbe9e0b47ff0a3e5
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sun Dec 27 14:53:44 2015 +0200
Add main window search action support to action manager
src/actionmanager.cpp | 24 ++++++++++++++++++++++++
src/actionmanager.hpp | 6 ++++++
src/iactionmanager.hpp | 7 +++++++
3 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp
index 05230c5..316a110 100644
--- a/src/actionmanager.cpp
+++ b/src/actionmanager.cpp
@@ -235,4 +235,28 @@ namespace gnote {
return m_main_window_actions2;
}
+ void ActionManager::register_main_window_search_callback(const std::string & id, const Glib::ustring &
action,
+ sigc::slot<void, const Glib::VariantBase&> callback)
+ {
+ DBG_ASSERT(m_main_window_search_actions.find(id) == m_main_window_search_actions.end(), "Duplicate
callback for main window search");
+
+ m_main_window_search_actions[id] = std::make_pair(action, callback);
+ signal_main_window_search_actions_changed();
+ }
+
+ void ActionManager::unregister_main_window_search_callback(const std::string & id)
+ {
+ m_main_window_search_actions.erase(id);
+ signal_main_window_search_actions_changed();
+ }
+
+ std::map<Glib::ustring, sigc::slot<void, const Glib::VariantBase&>>
ActionManager::get_main_window_search_callbacks()
+ {
+ std::map<Glib::ustring, sigc::slot<void, const Glib::VariantBase&>> cbacks;
+ for(auto & iter : m_main_window_search_actions) {
+ cbacks.insert(iter.second);
+ }
+ return cbacks;
+ }
+
}
diff --git a/src/actionmanager.hpp b/src/actionmanager.hpp
index 0caab13..cfcffdf 100644
--- a/src/actionmanager.hpp
+++ b/src/actionmanager.hpp
@@ -59,6 +59,11 @@ public:
Glib::RefPtr<Gio::Menu> get_app_menu() const;
virtual void register_main_window_action(const Glib::ustring & action, const Glib::VariantType
*state_type) override;
virtual std::map<Glib::ustring, const Glib::VariantType*> get_main_window_actions() const override;
+
+ virtual void register_main_window_search_callback(const std::string & id, const Glib::ustring & action,
+ sigc::slot<void, const Glib::VariantBase&> callback)
override;
+ virtual void unregister_main_window_search_callback(const std::string & id) override;
+ virtual std::map<Glib::ustring, sigc::slot<void, const Glib::VariantBase&>>
get_main_window_search_callbacks() override;
private:
void make_app_actions();
void make_app_menu_items();
@@ -91,6 +96,7 @@ private:
typedef std::multimap<int, AppMenuItem> AppMenuItemMultiMap;
AppMenuItemMultiMap m_app_menu_items;
std::map<Glib::ustring, const Glib::VariantType*> m_main_window_actions2;
+ std::map<std::string, std::pair<Glib::ustring, sigc::slot<void, const Glib::VariantBase&>>>
m_main_window_search_actions;
};
diff --git a/src/iactionmanager.hpp b/src/iactionmanager.hpp
index 50de3c5..dff9f5a 100644
--- a/src/iactionmanager.hpp
+++ b/src/iactionmanager.hpp
@@ -60,6 +60,13 @@ public:
const std::string & action_def) = 0;
virtual void register_main_window_action(const Glib::ustring & action, const Glib::VariantType
*state_type) = 0;
virtual std::map<Glib::ustring, const Glib::VariantType*> get_main_window_actions() const = 0;
+
+ virtual void register_main_window_search_callback(const std::string & id, const Glib::ustring & action,
+ sigc::slot<void, const Glib::VariantBase&> callback) = 0;
+ virtual void unregister_main_window_search_callback(const std::string & id) = 0;
+ virtual std::map<Glib::ustring, sigc::slot<void, const Glib::VariantBase&>>
get_main_window_search_callbacks() = 0;
+ sigc::signal<void> signal_main_window_search_actions_changed;
+ sigc::signal<void, std::map<int, Gtk::Widget*>&> signal_build_main_window_search_popover;
};
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]