[gnome-todo/wip/gbsneto/plugins: 57/62] plugin-manager: move to plugin/
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo/wip/gbsneto/plugins: 57/62] plugin-manager: move to plugin/
- Date: Fri, 15 Jan 2016 01:07:58 +0000 (UTC)
commit ad4d56f518fc87f69cac8a9a236a394ad2349aaa
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Jan 14 20:57:38 2016 -0200
plugin-manager: move to plugin/
We'll have a whole set of plugin-related stuff,
makes sense to move it to a dedicated directory.
src/Makefile.am | 4 +-
src/gtd-manager.c | 2 +-
src/{ => plugin}/gtd-plugin-manager.c | 40 +++++++++++++++++++++++++++++++++
src/{ => plugin}/gtd-plugin-manager.h | 2 +
4 files changed, 45 insertions(+), 3 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index afbc54b..9513487 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -38,6 +38,8 @@ gnome_todo_SOURCES = \
provider/gtd-provider-row.h \
provider/gtd-provider-selector.c \
provider/gtd-provider-selector.h \
+ plugin/gtd-plugin-manager.c \
+ plugin/gtd-plugin-manager.h \
views/gtd-list-selector.c \
views/gtd-list-selector.h \
views/gtd-list-selector-grid.c \
@@ -58,8 +60,6 @@ gnome_todo_SOURCES = \
gtd-manager-protected.h \
gtd-object.c \
gtd-object.h \
- gtd-plugin-manager.c \
- gtd-plugin-manager.h \
gtd-task.c \
gtd-task.h \
gtd-task-list.c \
diff --git a/src/gtd-manager.c b/src/gtd-manager.c
index 3bee5bd..32c3135 100644
--- a/src/gtd-manager.c
+++ b/src/gtd-manager.c
@@ -18,9 +18,9 @@
#include "interfaces/gtd-provider.h"
#include "interfaces/gtd-panel.h"
+#include "plugin/gtd-plugin-manager.h"
#include "gtd-manager.h"
#include "gtd-manager-protected.h"
-#include "gtd-plugin-manager.h"
#include "gtd-task.h"
#include "gtd-task-list.h"
diff --git a/src/gtd-plugin-manager.c b/src/plugin/gtd-plugin-manager.c
similarity index 85%
rename from src/gtd-plugin-manager.c
rename to src/plugin/gtd-plugin-manager.c
index 8f075b9..ac62d63 100644
--- a/src/gtd-plugin-manager.c
+++ b/src/plugin/gtd-plugin-manager.c
@@ -42,6 +42,8 @@ enum
{
PANEL_REGISTERED,
PANEL_UNREGISTERED,
+ PLUGIN_LOADED,
+ PLUGIN_UNLOADED,
PROVIDER_REGISTERED,
PROVIDER_UNREGISTERED,
NUM_SIGNALS
@@ -88,6 +90,30 @@ gtd_plugin_manager_class_init (GtdPluginManagerClass *klass)
1,
GTD_TYPE_PANEL);
+ signals[PLUGIN_LOADED] = g_signal_new ("plugin-loaded",
+ GTD_TYPE_PLUGIN_MANAGER,
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ G_TYPE_NONE,
+ 2,
+ PEAS_TYPE_PLUGIN_INFO,
+ GTD_TYPE_ACTIVATABLE);
+
+ signals[PLUGIN_UNLOADED] = g_signal_new ("plugin-unloaded",
+ GTD_TYPE_PLUGIN_MANAGER,
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ G_TYPE_NONE,
+ 2,
+ PEAS_TYPE_PLUGIN_INFO,
+ GTD_TYPE_ACTIVATABLE);
+
signals[PROVIDER_REGISTERED] = g_signal_new ("provider-registered",
GTD_TYPE_PLUGIN_MANAGER,
G_SIGNAL_RUN_FIRST,
@@ -173,6 +199,9 @@ on_plugin_unloaded (PeasEngine *engine,
/* Deactivate extension */
peas_activatable_deactivate (PEAS_ACTIVATABLE (activatable));
+ /* Emit the signal */
+ g_signal_emit (self, signals[PLUGIN_UNLOADED], 0, info, activatable);
+
g_hash_table_remove (self->info_to_extension, info);
}
@@ -232,6 +261,9 @@ on_plugin_loaded (PeasEngine *engine,
"panel-removed",
G_CALLBACK (on_panel_removed),
self);
+
+ /* Emit the signal */
+ g_signal_emit (self, signals[PLUGIN_LOADED], 0, info, extension);
}
}
@@ -324,3 +356,11 @@ gtd_plugin_manager_load_plugins (GtdPluginManager *self)
{
setup_plugins (self);
}
+
+GList*
+gtd_plugin_manager_get_loaded_plugins (GtdPluginManager *self)
+{
+ g_return_val_if_fail (GTD_IS_PLUGIN_MANAGER (self), NULL);
+
+ return g_hash_table_get_values (self->info_to_extension);
+}
diff --git a/src/gtd-plugin-manager.h b/src/plugin/gtd-plugin-manager.h
similarity index 93%
rename from src/gtd-plugin-manager.h
rename to src/plugin/gtd-plugin-manager.h
index 772006e..9aac218 100644
--- a/src/gtd-plugin-manager.h
+++ b/src/plugin/gtd-plugin-manager.h
@@ -34,6 +34,8 @@ GtdPluginManager* gtd_plugin_manager_new (void);
void gtd_plugin_manager_load_plugins (GtdPluginManager *self);
+GList* gtd_plugin_manager_get_loaded_plugins (GtdPluginManager *self);
+
G_END_DECLS
#endif /* GTD_PLUGIN_MANAGER_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]