[gnote] Register actions from addins



commit 659d25f4ca3cfdf623a20bff5d39952694c126c5
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sun Dec 27 15:00:09 2015 +0200

    Register actions from addins

 src/addinmanager.cpp |   14 +++++++++++++-
 src/addinmanager.hpp |    3 ++-
 2 files changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/src/addinmanager.cpp b/src/addinmanager.cpp
index d8eed93..129ee99 100644
--- a/src/addinmanager.cpp
+++ b/src/addinmanager.cpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010-2014 Aurimas Cernius
+ * Copyright (C) 2010-2015 Aurimas Cernius
  * Copyright (C) 2009, 2010 Debarshi Ray
  * Copyright (C) 2009 Hubert Figuiere
  *
@@ -36,6 +36,7 @@
 #include "addinmanager.hpp"
 #include "addinpreferencefactory.hpp"
 #include "debug.hpp"
+#include "iactionmanager.hpp"
 #include "ignote.hpp"
 #include "preferences.hpp"
 #include "preferencetabaddin.hpp"
@@ -433,6 +434,7 @@ namespace {
 
   void AddinManager::initialize_application_addins() const
   {
+    register_addin_actions();
     for(AppAddinMap::const_iterator iter = m_app_addins.begin();
         iter != m_app_addins.end(); ++iter) {
       ApplicationAddin * addin = iter->second;
@@ -576,4 +578,14 @@ namespace {
     SETUP_NOTE_ADDIN(key, Preferences::ENABLE_AUTO_LINKS, NoteLinkWatcher);
     SETUP_NOTE_ADDIN(key, Preferences::ENABLE_WIKIWORDS, NoteWikiWatcher);
   }
+
+  void AddinManager::register_addin_actions() const
+  {
+    auto & manager(IActionManager::obj());
+    for(auto & info : m_addin_infos) {
+      for(auto & action : info.second.actions()) {
+        manager.register_main_window_action(action.first, action.second);
+      }
+    }
+  }
 }
diff --git a/src/addinmanager.hpp b/src/addinmanager.hpp
index 3ad9372..f419bf4 100644
--- a/src/addinmanager.hpp
+++ b/src/addinmanager.hpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010,2012-2014 Aurimas Cernius
+ * Copyright (C) 2010,2012-2015 Aurimas Cernius
  * Copyright (C) 2009 Debarshi Ray
  * Copyright (C) 2009 Hubert Figuiere
  *
@@ -95,6 +95,7 @@ private:
   void add_module_addins(const std::string & mod_id, sharp::DynamicModule * dmod);
   AddinInfo get_info_for_module(const std::string & module) const;
   void on_setting_changed(const Glib::ustring & key);
+  void register_addin_actions() const;
     
   NoteManager & m_note_manager;
   const std::string m_gnote_conf_dir;


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