[gnote] Update print notes addin for popover



commit 1b1d01b3109d38885891cb5674b1d43abfeca16c
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sun Jan 3 22:14:11 2016 +0200

    Update print notes addin for popover

 src/addins/printnotes/printnotes.desktop.in.in |    4 ++-
 src/addins/printnotes/printnotesnoteaddin.cpp  |   47 ++++++------------------
 src/addins/printnotes/printnotesnoteaddin.hpp  |    6 ++--
 3 files changed, 18 insertions(+), 39 deletions(-)
---
diff --git a/src/addins/printnotes/printnotes.desktop.in.in b/src/addins/printnotes/printnotes.desktop.in.in
index 89d7ffb..ce604ee 100644
--- a/src/addins/printnotes/printnotes.desktop.in.in
+++ b/src/addins/printnotes/printnotes.desktop.in.in
@@ -4,8 +4,10 @@ _Name=Printing Support
 _Description=Allows you to print a note.
 _Authors=Hubert Figuiere and the Tomboy Project
 Category=DesktopIntegration
-Version=0.7
+Version=0.8
 DefaultEnabled=true
 Module=printnotes
 LibgnoteRelease= LIBGNOTE_RELEASE@
 LibgnoteVersionInfo= LIBGNOTE_VERSION_INFO@
+[Actions]
+actions_void=printnotes-print
diff --git a/src/addins/printnotes/printnotesnoteaddin.cpp b/src/addins/printnotes/printnotesnoteaddin.cpp
index 937ae22..36d07df 100644
--- a/src/addins/printnotes/printnotesnoteaddin.cpp
+++ b/src/addins/printnotes/printnotesnoteaddin.cpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010-2013,2015 Aurimas Cernius
+ * Copyright (C) 2010-2013,2015-2016 Aurimas Cernius
  * Copyright (C) 2009 Hubert Figuiere
  *
  * This program is free software: you can redistribute it and/or modify
@@ -26,7 +26,6 @@
 #include <glibmm/miscutils.h>
 #include <gtkmm/image.h>
 #include <gtkmm/printoperation.h>
-#include <gtkmm/stock.h>
 
 #include "sharp/datetime.hpp"
 #include "debug.hpp"
@@ -38,35 +37,6 @@
 
 namespace printnotes {
 
-  namespace {
-    class PrintNotesAction
-      : public gnote::NoteWindow::NonModifyingAction
-    {
-    public:
-      static Glib::RefPtr<Gtk::Action> create(gnote::NoteWindow *note_window)
-        {
-          return Glib::RefPtr<Gtk::Action>(new PrintNotesAction(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_P, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
-          return menu_item;
-        }
-    private:
-      PrintNotesAction(gnote::NoteWindow *note_window)
-        : gnote::NoteWindow::NonModifyingAction("PrintAction", Gtk::Stock::PRINT,
-                                                _("Print"), _("Print note"))
-        , m_note_window(note_window)
-      {}
-
-      gnote::NoteWindow *m_note_window;
-    };
-  }
-
-
   PrintNotesModule::PrintNotesModule()
   {
     ADD_INTERFACE_IMPL(PrintNotesNoteAddin);
@@ -84,14 +54,21 @@ namespace printnotes {
 
   void PrintNotesNoteAddin::on_note_opened()
   {
-    Glib::RefPtr<Gtk::Action> action = PrintNotesAction::create(get_window());
-    action->signal_activate().connect(
+    register_main_window_action_callback("printnotes-print",
       sigc::mem_fun(*this, &PrintNotesNoteAddin::print_button_clicked));
-    add_note_action(action, gnote::PRINT_ORDER);
   }
 
 
-  void PrintNotesNoteAddin::print_button_clicked()
+  std::map<int, Gtk::Widget*> PrintNotesNoteAddin::get_actions_popover_widgets() const
+  {
+    auto widgets = NoteAddin::get_actions_popover_widgets();
+    auto button = gnote::utils::create_popover_button("win.printnotes-print", _("Print"));
+    gnote::utils::add_item_to_ordered_map(widgets, gnote::PRINT_ORDER, button);
+    return widgets;
+  }
+
+
+  void PrintNotesNoteAddin::print_button_clicked(const Glib::VariantBase&)
   {
     try {
       m_print_op = Gtk::PrintOperation::create();
diff --git a/src/addins/printnotes/printnotesnoteaddin.hpp b/src/addins/printnotes/printnotesnoteaddin.hpp
index da72f5a..c9b67ce 100644
--- a/src/addins/printnotes/printnotesnoteaddin.hpp
+++ b/src/addins/printnotes/printnotesnoteaddin.hpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010,2012-2013 Aurimas Cernius
+ * Copyright (C) 2010,2012-2013,2016 Aurimas Cernius
  * Copyright (C) 2009 Hubert Figuiere
  *
  * This program is free software: you can redistribute it and/or modify
@@ -30,7 +30,6 @@
 
 #include <pangomm/layout.h>
 
-#include "base/macros.hpp"
 #include "sharp/dynamicmodule.hpp"
 #include "noteaddin.hpp"
 
@@ -85,6 +84,7 @@ 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;
 
   static int cm_to_pixel(double cm, double dpi)
                {
@@ -114,7 +114,7 @@ private:
   void on_draw_page(const Glib::RefPtr<Gtk::PrintContext>&, guint);
   void on_end_print(const Glib::RefPtr<Gtk::PrintContext>&);
 /////
-  void print_button_clicked();
+  void print_button_clicked(const Glib::VariantBase&);
 
   int                  m_margin_top;
   int                  m_margin_left;


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