[gnote] Revert "Fix blank first item in application menu (some envs)"
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Revert "Fix blank first item in application menu (some envs)"
- Date: Mon, 17 Jun 2013 13:23:12 +0000 (UTC)
commit 0c432e7dad0692719a9bef5400ca09c1615c464f
Author: Aurimas Černius <aurisc4 gmail com>
Date: Mon Jun 17 15:46:58 2013 +0300
Revert "Fix blank first item in application menu (some envs)"
This reverts commit 8d2ae0b191190b3e318f10e56b04e70701adf589.
Doesn't look much better.
src/actionmanager.cpp | 42 +++++++++++++++++-------------------------
src/actionmanager.hpp | 30 +++++++++++++-----------------
2 files changed, 30 insertions(+), 42 deletions(-)
---
diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp
index 1b1caf9..5db2690 100644
--- a/src/actionmanager.cpp
+++ b/src/actionmanager.cpp
@@ -266,26 +266,25 @@ namespace gnote {
{
Glib::RefPtr<Gio::Menu> menu = Gio::Menu::create();
- // append first section directly to menu, to avoid blank first item in some environments
- std::pair<AppMenuItemMultiMap::const_iterator, AppMenuItemMultiMap::const_iterator>
- range = m_app_menu_items.equal_range(APP_ACTION_NEW);
- if(range.first != m_app_menu_items.end()) {
- menu_append(menu, range.first, range.second);
+ int pos = 0;
+ Glib::RefPtr<Gio::Menu> section = make_app_menu_section(APP_ACTION_NEW);
+ if(section != 0) {
+ menu->insert_section(pos++, "", section);
}
- Glib::RefPtr<Gio::Menu> section = make_app_menu_section(APP_ACTION_MANAGE);
+ section = make_app_menu_section(APP_ACTION_MANAGE);
if(section != 0) {
- menu->append_section("", section);
+ menu->insert_section(pos++, "", section);
}
section = make_app_menu_section(APP_ACTION_HELP);
if(section != 0) {
- menu->append_section("", section);
+ menu->insert_section(pos++, "", section);
}
section = make_app_menu_section(APP_ACTION_LAST);
if(section != 0) {
- menu->append_section("", section);
+ menu->insert_section(pos++, "", section);
}
return menu;
@@ -298,28 +297,21 @@ namespace gnote {
Glib::RefPtr<Gio::Menu> section;
if(range.first != m_app_menu_items.end()) {
+ std::vector<const AppMenuItem*> menu_items;
+ for(AppMenuItemMultiMap::const_iterator iter = range.first; iter != range.second; ++iter) {
+ menu_items.push_back(&iter->second);
+ }
+ std::sort(menu_items.begin(), menu_items.end(), AppMenuItem::ptr_comparator());
+
section = Gio::Menu::create();
- menu_append(section, range.first, range.second);
+ for(std::vector<const AppMenuItem*>::iterator iter = menu_items.begin(); iter != menu_items.end();
++iter) {
+ section->append((*iter)->label, (*iter)->action_def);
+ }
}
return section;
}
- void ActionManager::menu_append(const Glib::RefPtr<Gio::Menu> & menu,
- const AppMenuItemMultiMap::const_iterator & begin,
- const AppMenuItemMultiMap::const_iterator & end) const
- {
- std::vector<const AppMenuItem*> menu_items;
- for(AppMenuItemMultiMap::const_iterator iter = begin; iter != end; ++iter) {
- menu_items.push_back(&iter->second);
- }
- std::sort(menu_items.begin(), menu_items.end(), AppMenuItem::ptr_comparator());
-
- for(std::vector<const AppMenuItem*>::iterator iter = menu_items.begin(); iter != menu_items.end();
++iter) {
- menu->append((*iter)->label, (*iter)->action_def);
- }
- }
-
void ActionManager::add_main_window_search_action(const Glib::RefPtr<Gtk::Action> & action, int order)
{
add_main_window_action(m_main_window_search_actions, action, order);
diff --git a/src/actionmanager.hpp b/src/actionmanager.hpp
index 0b9fa5c..f4b0b2f 100644
--- a/src/actionmanager.hpp
+++ b/src/actionmanager.hpp
@@ -71,6 +71,19 @@ public:
virtual void remove_main_window_search_action(const std::string & name);
virtual std::vector<Glib::RefPtr<Gtk::Action> > get_main_window_search_actions();
private:
+ void make_app_actions();
+ void make_app_menu_items();
+ Glib::RefPtr<Gio::Menu> make_app_menu_section(int section) const;
+ void add_main_window_action(std::map<int, Glib::RefPtr<Gtk::Action> > & actions,
+ const Glib::RefPtr<Gtk::Action> & action, int order);
+ void remove_main_window_action(std::map<int, Glib::RefPtr<Gtk::Action> > & actions, const std::string &
name);
+ std::vector<Glib::RefPtr<Gtk::Action> > get_main_window_actions(std::map<int, Glib::RefPtr<Gtk::Action> >
& actions);
+
+ Glib::RefPtr<Gtk::UIManager> m_ui;
+ Glib::RefPtr<Gtk::ActionGroup> m_main_window_actions;
+
+ std::vector<Glib::RefPtr<Gio::SimpleAction> > m_app_actions;
+
struct AppMenuItem
{
int order;
@@ -92,23 +105,6 @@ private:
};
};
typedef std::multimap<int, AppMenuItem> AppMenuItemMultiMap;
-
- void make_app_actions();
- void make_app_menu_items();
- Glib::RefPtr<Gio::Menu> make_app_menu_section(int section) const;
- void menu_append(const Glib::RefPtr<Gio::Menu> & menu,
- const AppMenuItemMultiMap::const_iterator & begin,
- const AppMenuItemMultiMap::const_iterator & end) const;
- void add_main_window_action(std::map<int, Glib::RefPtr<Gtk::Action> > & actions,
- const Glib::RefPtr<Gtk::Action> & action, int order);
- void remove_main_window_action(std::map<int, Glib::RefPtr<Gtk::Action> > & actions, const std::string &
name);
- std::vector<Glib::RefPtr<Gtk::Action> > get_main_window_actions(std::map<int, Glib::RefPtr<Gtk::Action> >
& actions);
-
- Glib::RefPtr<Gtk::UIManager> m_ui;
- Glib::RefPtr<Gtk::ActionGroup> m_main_window_actions;
-
- std::vector<Glib::RefPtr<Gio::SimpleAction> > m_app_actions;
-
AppMenuItemMultiMap m_app_menu_items;
std::map<int, Glib::RefPtr<Gtk::Action> > m_main_window_search_actions;
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]