[gnote] Update insert timestamp addin for popover



commit 51d806ac424a01d18295385661a5ce6a26960b90
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sun Jan 3 21:46:35 2016 +0200

    Update insert timestamp addin for popover

 .../inserttimestamp/inserttimestamp.desktop.in.in  |    4 +-
 .../inserttimestamp/inserttimestampnoteaddin.cpp   |   45 +++++--------------
 .../inserttimestamp/inserttimestampnoteaddin.hpp   |    8 +--
 3 files changed, 18 insertions(+), 39 deletions(-)
---
diff --git a/src/addins/inserttimestamp/inserttimestamp.desktop.in.in 
b/src/addins/inserttimestamp/inserttimestamp.desktop.in.in
index 71bf1cf..57884c5 100644
--- a/src/addins/inserttimestamp/inserttimestamp.desktop.in.in
+++ b/src/addins/inserttimestamp/inserttimestamp.desktop.in.in
@@ -4,8 +4,10 @@ _Name=Insert Timestamp
 _Description=Inserts current date and time at the cursor position.
 _Authors=Hubert Figuiere and Tomboy Project
 Category=Tools
-Version=0.2
+Version=0.3
 DefaultEnabled=false
 Module=inserttimestamp
 LibgnoteRelease= LIBGNOTE_RELEASE@
 LibgnoteVersionInfo= LIBGNOTE_VERSION_INFO@
+[Actions]
+actions_void=inserttimestamp-insert
diff --git a/src/addins/inserttimestamp/inserttimestampnoteaddin.cpp 
b/src/addins/inserttimestamp/inserttimestampnoteaddin.cpp
index ce7f1bd..bb200e3 100644
--- a/src/addins/inserttimestamp/inserttimestampnoteaddin.cpp
+++ b/src/addins/inserttimestamp/inserttimestampnoteaddin.cpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010-2013 Aurimas Cernius
+ * Copyright (C) 2010-2013,2016 Aurimas Cernius
  * Copyright (C) 2009 Hubert Figuiere
  *
  * This program is free software: you can redistribute it and/or modify
@@ -31,34 +31,6 @@
 
 namespace inserttimestamp {
 
-  namespace {
-    class InsertTimestampAction
-      : public Gtk::Action
-    {
-    public:
-      static Glib::RefPtr<Gtk::Action> create(gnote::NoteWindow *note_window)
-        {
-          return Glib::RefPtr<Gtk::Action>(new InsertTimestampAction(note_window));
-        }
-    private:
-      InsertTimestampAction(gnote::NoteWindow *note_window)
-        : Gtk::Action("InsertTimestampAction", "", _("Insert Timestamp"),
-                      _("Insert Timestamp into note"))
-        , m_note_window(note_window)
-      {}
-
-      virtual Gtk::Widget *create_menu_item_vfunc()
-        {
-          Gtk::MenuItem *item = new Gtk::MenuItem;
-          item->add_accelerator("activate", m_note_window->get_accel_group(),
-                                GDK_KEY_d, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
-          return item;
-        }
-
-      gnote::NoteWindow *m_note_window;
-    };
-  }
-
   InsertTimeStampModule::InsertTimeStampModule()
   {
     ADD_INTERFACE_IMPL(InsertTimestampNoteAddin);
@@ -79,10 +51,8 @@ namespace inserttimestamp {
 
   void InsertTimestampNoteAddin::on_note_opened()
   {
-    Glib::RefPtr<Gtk::Action> action = InsertTimestampAction::create(get_window());
-    action->signal_activate().connect(
+    register_main_window_action_callback("inserttimestamp-insert",
       sigc::mem_fun(*this, &InsertTimestampNoteAddin::on_menu_item_activated));
-    add_note_action(action, gnote::INSERT_TIMESTAMP_ORDER);
 
     Glib::RefPtr<Gio::Settings> settings = 
gnote::Preferences::obj().get_schema_settings(SCHEMA_INSERT_TIMESTAMP);
     m_date_format = settings->get_string(INSERT_TIMESTAMP_FORMAT);
@@ -91,7 +61,16 @@ namespace inserttimestamp {
   }
 
 
-  void InsertTimestampNoteAddin::on_menu_item_activated()
+  std::map<int, Gtk::Widget*> InsertTimestampNoteAddin::get_actions_popover_widgets() const
+  {
+    auto widgets = NoteAddin::get_actions_popover_widgets();
+    auto button = gnote::utils::create_popover_button("win.inserttimestamp-insert", _("Insert Timestamp"));
+    gnote::utils::add_item_to_ordered_map(widgets, gnote::INSERT_TIMESTAMP_ORDER, button);
+    return widgets;
+  }
+
+
+  void InsertTimestampNoteAddin::on_menu_item_activated(const Glib::VariantBase&)
   {
     std::string text = sharp::DateTime::now().to_string(m_date_format);
     Gtk::TextIter cursor = get_buffer()->get_iter_at_mark (get_buffer()->get_insert());
diff --git a/src/addins/inserttimestamp/inserttimestampnoteaddin.hpp 
b/src/addins/inserttimestamp/inserttimestampnoteaddin.hpp
index 92d9259..0889c34 100644
--- a/src/addins/inserttimestamp/inserttimestampnoteaddin.hpp
+++ b/src/addins/inserttimestamp/inserttimestampnoteaddin.hpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010,2013 Aurimas Cernius
+ * Copyright (C) 2010,2013,2016 Aurimas Cernius
  * Copyright (C) 2009 Hubert Figuiere
  *
  * This program is free software: you can redistribute it and/or modify
@@ -25,9 +25,6 @@
 #ifndef __INSERTIMESTAMP_NOTEADDIN_HPP_
 #define __INSERTIMESTAMP_NOTEADDIN_HPP_
 
-#include <gtkmm/menuitem.h>
-
-#include "base/macros.hpp"
 #include "sharp/dynamicmodule.hpp"
 #include "noteaddin.hpp"
 
@@ -55,8 +52,9 @@ public:
   virtual void initialize() override;
   virtual void shutdown() override;
   virtual void on_note_opened() override;
+  virtual std::map<int, Gtk::Widget*> get_actions_popover_widgets() const override;
 private:
-  void on_menu_item_activated();
+  void on_menu_item_activated(const Glib::VariantBase&);
   void on_format_setting_changed(const Glib::ustring & key);
 
   std::string    m_date_format;


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