[gnote] Improve AddinManager for synchronization add-ins
- From: Aurimas Äernius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Improve AddinManager for synchronization add-ins
- Date: Wed, 15 Aug 2012 13:27:01 +0000 (UTC)
commit 155ca88bd227898ed6d796190f7aa9b14e4886ef
Author: Aurimas Äernius <aurisc4 gmail com>
Date: Wed Aug 15 16:20:24 2012 +0300
Improve AddinManager for synchronization add-ins
* Add method get_sync_service_addin
* Add method initialize_sync_service_addins
src/addinmanager.cpp | 30 ++++++++++++++++++++++++++++++
src/addinmanager.hpp | 7 +++----
2 files changed, 33 insertions(+), 4 deletions(-)
---
diff --git a/src/addinmanager.cpp b/src/addinmanager.cpp
index 3b1cbe1..9cbab8a 100644
--- a/src/addinmanager.cpp
+++ b/src/addinmanager.cpp
@@ -312,6 +312,16 @@ namespace gnote {
return 0;
}
+ sync::SyncServiceAddin *AddinManager::get_sync_service_addin(const std::string & id) const
+ {
+ const IdSyncServiceAddinMap::const_iterator iter = m_sync_service_addins.find(id);
+ if(iter != m_sync_service_addins.end()) {
+ return iter->second;
+ }
+
+ return NULL;
+ }
+
void AddinManager::get_preference_tab_addins(std::list<PreferenceTabAddin *> &l) const
{
sharp::map_get_values(m_pref_tab_addins, l);
@@ -342,6 +352,26 @@ namespace gnote {
}
}
+ void AddinManager::initialize_sync_service_addins() const
+ {
+ for(IdSyncServiceAddinMap::const_iterator iter = m_sync_service_addins.begin();
+ iter != m_sync_service_addins.end(); ++iter) {
+ sync::SyncServiceAddin *addin = NULL;
+ try {
+ addin = iter->second;
+ const sharp::DynamicModule *dmod = m_module_manager.get_module(iter->first);
+ if(!dmod || dmod->is_enabled()) {
+ addin->initialize();
+ }
+ }
+ catch(std::exception & e) {
+ DBG_OUT("Error calling %s.initialize (): %s", addin->id().c_str(), e.what());
+
+ // TODO: Call something like AddinManager.Disable (addin)
+ }
+ }
+ }
+
void AddinManager::shutdown_application_addins() const
{
for(AppAddinMap::const_iterator iter = m_app_addins.begin();
diff --git a/src/addinmanager.hpp b/src/addinmanager.hpp
index cb8d059..9be4d65 100644
--- a/src/addinmanager.hpp
+++ b/src/addinmanager.hpp
@@ -61,12 +61,13 @@ public:
}
void load_addins_for_note(const Note::Ptr &);
- ApplicationAddin * get_application_addin(const std::string & id)
- const;
+ ApplicationAddin *get_application_addin(const std::string & id) const;
+ sync::SyncServiceAddin *get_sync_service_addin(const std::string & id) const;
void get_preference_tab_addins(std::list<PreferenceTabAddin *> &) const;
void get_sync_service_addins(std::list<sync::SyncServiceAddin *> &) const;
void get_import_addins(std::list<ImportAddin*> &) const;
void initialize_application_addins() const;
+ void initialize_sync_service_addins() const;
void shutdown_application_addins() const;
void save_addins_prefs() const;
@@ -76,8 +77,6 @@ public:
}
Gtk::Widget * create_addin_preference_widget(const std::string & id);
-
- sigc::signal<void> & signal_application_addin_list_changed();
private:
void initialize_sharp_addins();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]