[gnote] Move replace title menu item to gears menu



commit b0c7cd41f0ee61a737dc0297a71da2bd1451ea90
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sat Jun 1 17:52:44 2013 +0300

    Move replace title menu item to gears menu
    
    Part of Bug 700655.

 src/addins/replacetitle/replacetitlenoteaddin.cpp |   58 +++++++++++----------
 src/addins/replacetitle/replacetitlenoteaddin.hpp |    6 --
 2 files changed, 31 insertions(+), 33 deletions(-)
---
diff --git a/src/addins/replacetitle/replacetitlenoteaddin.cpp 
b/src/addins/replacetitle/replacetitlenoteaddin.cpp
index 35dc374..9908987 100644
--- a/src/addins/replacetitle/replacetitlenoteaddin.cpp
+++ b/src/addins/replacetitle/replacetitlenoteaddin.cpp
@@ -27,6 +27,34 @@
 
 namespace replacetitle {
 
+  namespace {
+    class ReplaceTitleAction
+      : public Gtk::Action
+    {
+    public:
+      static Glib::RefPtr<Gtk::Action> create(gnote::NoteWindow *note_window)
+        {
+          return Glib::RefPtr<Gtk::Action>(new ReplaceTitleAction(note_window));
+        }
+    protected:
+      virtual Gtk::Widget *create_menu_item_vfunc()
+        {
+          Gtk::ImageMenuItem *menu_item = new Gtk::ImageMenuItem;
+          menu_item->add_accelerator("activate", m_note_window->get_accel_group(),
+                                     GDK_KEY_R, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
+          return menu_item;
+        }
+    private:
+      ReplaceTitleAction(gnote::NoteWindow *note_window)
+        : Gtk::Action("ReplaceTitleAction", Gtk::Stock::FIND_AND_REPLACE,
+                      _("Replace title"), _("Replace title"))
+        , m_note_window(note_window)
+        {}
+
+      gnote::NoteWindow *m_note_window;
+    };
+  }
+
 
 ReplaceTitleModule::ReplaceTitleModule()
 {
@@ -44,34 +72,10 @@ void ReplaceTitleNoteAddin::shutdown()
 
 void ReplaceTitleNoteAddin::on_note_opened()
 {
-  m_menu_item = manage(new Gtk::ImageMenuItem(_("Replace title")));
-  m_menu_item->set_image(*manage(new Gtk::Image(Gtk::Stock::FIND_AND_REPLACE, Gtk::ICON_SIZE_MENU)));
-  m_menu_item->signal_activate().connect(
+  Glib::RefPtr<Gtk::Action> action = ReplaceTitleAction::create(get_window());
+  action->signal_activate().connect(
     sigc::mem_fun(*this, &ReplaceTitleNoteAddin::replacetitle_button_clicked));
-
-  gnote::NoteWindow *note_window = get_window();
-  note_window->signal_foregrounded.connect(
-    sigc::mem_fun(*this, &ReplaceTitleNoteAddin::on_note_foregrounded));
-  note_window->signal_backgrounded.connect(
-    sigc::mem_fun(*this, &ReplaceTitleNoteAddin::on_note_backgrounded));
-
-  m_menu_item->show() ;
-  add_plugin_menu_item(m_menu_item);
-}
-
-void ReplaceTitleNoteAddin::on_note_foregrounded()
-{
-  m_menu_item->add_accelerator("activate",
-                               get_window()->get_accel_group(),
-                               GDK_KEY_R,
-                               Gdk::CONTROL_MASK,
-                                Gtk::ACCEL_VISIBLE);
-}
-
-void ReplaceTitleNoteAddin::on_note_backgrounded()
-{
-  m_menu_item->remove_accelerator(get_window()->get_accel_group(),
-                                  GDK_KEY_R, Gdk::CONTROL_MASK);
+  add_note_action(action, 500);
 }
 
 void ReplaceTitleNoteAddin::replacetitle_button_clicked()
diff --git a/src/addins/replacetitle/replacetitlenoteaddin.hpp 
b/src/addins/replacetitle/replacetitlenoteaddin.hpp
index 38b5c5d..f7f47fb 100644
--- a/src/addins/replacetitle/replacetitlenoteaddin.hpp
+++ b/src/addins/replacetitle/replacetitlenoteaddin.hpp
@@ -21,8 +21,6 @@
 #ifndef _REPLACETITLE_ADDIN_HPP_
 #define _REPLACETITLE_ADDIN_HPP_
 
-#include <gtkmm/imagemenuitem.h>
-
 #include "sharp/dynamicmodule.hpp"
 #include "note.hpp"
 #include "noteaddin.hpp"
@@ -51,10 +49,6 @@ public:
   virtual void on_note_opened();
 private:
   void replacetitle_button_clicked();
-  void on_note_foregrounded();
-  void on_note_backgrounded();
-
-  Gtk::ImageMenuItem *m_menu_item;
 };
 
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]