[gnote] Add app menu items to actions menu
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Add app menu items to actions menu
- Date: Sun, 4 Nov 2018 21:35:11 +0000 (UTC)
commit 6a0afa259693c01860f7f051e6de174144384025
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sun Nov 4 23:13:21 2018 +0200
Add app menu items to actions menu
src/actionmanager.cpp | 41 ++++++++++++++++++++++++++++++++++++++++-
src/actionmanager.hpp | 5 ++++-
2 files changed, 44 insertions(+), 2 deletions(-)
---
diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp
index eac2fd92..ff6e9b23 100644
--- a/src/actionmanager.cpp
+++ b/src/actionmanager.cpp
@@ -1,7 +1,7 @@
/*
* gnote
*
- * Copyright (C) 2011-2017 Aurimas Cernius
+ * Copyright (C) 2011-2018 Aurimas Cernius
* Copyright (C) 2009 Hubert Figuiere
*
* This program is free software: you can redistribute it and/or modify
@@ -63,6 +63,7 @@
#include "debug.hpp"
#include "actionmanager.hpp"
#include "iconmanager.hpp"
+#include "utils.hpp"
namespace gnote {
@@ -88,6 +89,9 @@ namespace gnote {
register_main_window_action("enable-bullets", &Glib::Variant<bool>::variant_type(), true);
register_main_window_action("increase-indent", NULL, true);
register_main_window_action("decrease-indent", NULL, true);
+
+ signal_build_main_window_search_popover.connect(sigc::mem_fun(*this,
&ActionManager::add_app_menu_new_section));
+ signal_build_main_window_search_popover.connect(sigc::mem_fun(*this,
&ActionManager::add_app_menu_trailing_sections));
}
@@ -232,4 +236,39 @@ namespace gnote {
return cbacks;
}
+ bool ActionManager::add_app_menu_section(std::map<int, Gtk::Widget*> & widgets, int & order, int section)
+ {
+ std::pair<AppMenuItemMultiMap::const_iterator, AppMenuItemMultiMap::const_iterator>
+ range = m_app_menu_items.equal_range(section);
+
+ if(range.first != m_app_menu_items.end()) {
+ for(AppMenuItemMultiMap::const_iterator iter = range.first; iter != range.second; ++iter) {
+ widgets.insert(std::make_pair(order++, utils::create_popover_button(iter->second.action_def,
iter->second.label)));
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ void ActionManager::add_app_menu_new_section(std::map<int, Gtk::Widget*> & widgets)
+ {
+ int order = 0;
+ if(add_app_menu_section(widgets, order, APP_ACTION_NEW)) {
+ // end section
+ widgets[order] = NULL;
+ }
+ }
+
+ void ActionManager::add_app_menu_trailing_sections(std::map<int, Gtk::Widget*> & widgets)
+ {
+ int order = 100000;
+ if(add_app_menu_section(widgets, order, APP_ACTION_MANAGE)) {
+ // end section
+ widgets[order] = NULL;
+ }
+ add_app_menu_section(widgets, order, APP_ACTION_LAST);
+ }
+
}
diff --git a/src/actionmanager.hpp b/src/actionmanager.hpp
index 4a54ec6f..4421e143 100644
--- a/src/actionmanager.hpp
+++ b/src/actionmanager.hpp
@@ -1,7 +1,7 @@
/*
* gnote
*
- * Copyright (C) 2012-2013,2015-2017 Aurimas Cernius
+ * Copyright (C) 2012-2013,2015-2018 Aurimas Cernius
* Copyright (C) 2009 Hubert Figuiere
*
* This program is free software: you can redistribute it and/or modify
@@ -61,6 +61,9 @@ private:
void make_app_actions();
void make_app_menu_items();
Glib::RefPtr<Gio::Menu> make_app_menu_section(int section) const;
+ bool add_app_menu_section(std::map<int, Gtk::Widget*> & widgets, int & order, int section);
+ void add_app_menu_new_section(std::map<int, Gtk::Widget*>&);
+ void add_app_menu_trailing_sections(std::map<int, Gtk::Widget*>&);
std::vector<Glib::RefPtr<Gio::SimpleAction> > m_app_actions;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]