[gnote] Update statistics addin for new design



commit c5a60343651d5c42ab1b7a1f73c0c3ffcb3b7dae
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sun Dec 27 15:01:28 2015 +0200

    Update statistics addin for new design

 src/addins/statistics/statistics.desktop.in.in     |    4 ++-
 .../statistics/statisticsapplicationaddin.cpp      |   28 +++++++++++--------
 .../statistics/statisticsapplicationaddin.hpp      |    7 +++--
 3 files changed, 23 insertions(+), 16 deletions(-)
---
diff --git a/src/addins/statistics/statistics.desktop.in.in b/src/addins/statistics/statistics.desktop.in.in
index 915e68c..2bc98cf 100644
--- a/src/addins/statistics/statistics.desktop.in.in
+++ b/src/addins/statistics/statistics.desktop.in.in
@@ -4,8 +4,10 @@ _Name=Statistics
 _Description=Show various statistics about notes.
 _Authors=Aurimas Černius
 Category=Tools
-Version=0.2
+Version=0.3
 DefaultEnabled=false
 Module=statistics
 LibgnoteRelease= LIBGNOTE_RELEASE@
 LibgnoteVersionInfo= LIBGNOTE_VERSION_INFO@
+[Actions]
+actions_void=statistics-show
diff --git a/src/addins/statistics/statisticsapplicationaddin.cpp 
b/src/addins/statistics/statisticsapplicationaddin.cpp
index 8206930..1b087e5 100644
--- a/src/addins/statistics/statisticsapplicationaddin.cpp
+++ b/src/addins/statistics/statisticsapplicationaddin.cpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2013 Aurimas Cernius
+ * Copyright (C) 2013,2015 Aurimas Cernius
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@
 #include "iactionmanager.hpp"
 #include "ignote.hpp"
 #include "statisticsapplicationaddin.hpp"
+#include "utils.hpp"
 
 
 namespace statistics {
@@ -44,21 +45,18 @@ void StatisticsApplicationAddin::initialize()
 {
   if(!m_initialized) {
     m_initialized = true;
-    if(m_action == 0) {
-      m_action = Gtk::Action::create();
-      m_action->set_name("ShowStatistics");
-      m_action->set_label(_("Show Statistics"));
-      m_action->signal_activate()
-        .connect(sigc::mem_fun(*this, &StatisticsApplicationAddin::on_show_statistics));
-      gnote::IActionManager::obj().add_main_window_search_action(m_action, 100);
-    }
+    auto & manager(gnote::IActionManager::obj());
+    manager.register_main_window_search_callback("statistics-show-cback",
+      "statistics-show", sigc::mem_fun(*this, &StatisticsApplicationAddin::on_show_statistics));
+    m_add_menu_item_cid = manager.signal_build_main_window_search_popover
+      .connect(sigc::mem_fun(*this, &StatisticsApplicationAddin::add_menu_item));
   }
 }
 
 void StatisticsApplicationAddin::shutdown()
 {
-  gnote::IActionManager::obj().remove_main_window_search_action("ShowStatistics");
-  m_action.reset();
+  gnote::IActionManager::obj().unregister_main_window_search_callback("statistics-show-cback");
+  m_add_menu_item_cid.disconnect();
   m_initialized = false;
 }
 
@@ -67,7 +65,13 @@ bool StatisticsApplicationAddin::initialized()
   return m_initialized;
 }
 
-void StatisticsApplicationAddin::on_show_statistics()
+void StatisticsApplicationAddin::add_menu_item(std::map<int, Gtk::Widget*> & widgets)
+{
+  auto item = gnote::utils::create_popover_button("win.statistics-show", _("Show Statistics"));
+  gnote::utils::add_item_to_ordered_map(widgets, 100, item);
+}
+
+void StatisticsApplicationAddin::on_show_statistics(const Glib::VariantBase&)
 {
   if(!m_widget) {
     m_widget = new StatisticsWidget(note_manager());
diff --git a/src/addins/statistics/statisticsapplicationaddin.hpp 
b/src/addins/statistics/statisticsapplicationaddin.hpp
index d1a55db..9ce0f46 100644
--- a/src/addins/statistics/statisticsapplicationaddin.hpp
+++ b/src/addins/statistics/statisticsapplicationaddin.hpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2013 Aurimas Cernius
+ * Copyright (C) 2013,2015 Aurimas Cernius
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,10 +51,11 @@ public:
   virtual bool initialized() override;
 private:
   StatisticsApplicationAddin();
-  void on_show_statistics();
+  void on_show_statistics(const Glib::VariantBase&);
+  void add_menu_item(std::map<int, Gtk::Widget*> & widgets);
 
   bool m_initialized;
-  Glib::RefPtr<Gtk::Action> m_action;
+  sigc::connection m_add_menu_item_cid;
   StatisticsWidget *m_widget;
 };
 


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