[gnome-software] Allow plugins to disable themselves
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Allow plugins to disable themselves
- Date: Fri, 11 Oct 2013 10:56:29 +0000 (UTC)
commit b043e9f6f351ed9cd295455bc6200ce16bf38f76
Author: Richard Hughes <richard hughsie com>
Date: Fri Oct 11 09:54:40 2013 +0100
Allow plugins to disable themselves
We'll need this for future functionality.
src/gs-application.c | 21 ++-------------------
src/gs-plugin-loader.c | 2 +-
src/gs-plugin.c | 9 +++++++++
src/gs-plugin.h | 2 ++
src/gs-self-test.c | 1 +
src/plugins/gs-plugin-dummy.c | 5 +++++
src/plugins/gs-plugin-self-test.c | 12 ++++++++++++
7 files changed, 32 insertions(+), 20 deletions(-)
---
diff --git a/src/gs-application.c b/src/gs-application.c
index 323e321..1d20273 100644
--- a/src/gs-application.c
+++ b/src/gs-application.c
@@ -159,25 +159,8 @@ gs_application_startup (GApplication *application)
g_warning ("Failed to setup plugins: %s", error->message);
exit (1);
}
- gs_plugin_loader_set_enabled (app->plugin_loader, "hardcoded-featured", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "hardcoded-kind", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "hardcoded-popular", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "hardcoded-ratings", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "hardcoded-screenshots", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "menu-spec-categories", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "menu-spec-refine", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "local-ratings", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "packagekit", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "systemd-updates", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "packagekit-refine", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "packagekit-history", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "packagekit-offline", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "appdata", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "appstream", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "desktopdb", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "datadir-apps", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "datadir-filename", TRUE);
- gs_plugin_loader_set_enabled (app->plugin_loader, "datadir-filename-local", TRUE);
+ gs_plugin_loader_set_enabled (app->plugin_loader,
+ "packagekit-updates", FALSE);
/* show the priority of each plugin */
gs_plugin_loader_dump_state (app->plugin_loader);
diff --git a/src/gs-plugin-loader.c b/src/gs-plugin-loader.c
index fc90d03..8166e3e 100644
--- a/src/gs-plugin-loader.c
+++ b/src/gs-plugin-loader.c
@@ -2056,7 +2056,7 @@ gs_plugin_loader_open_plugin (GsPluginLoader *plugin_loader,
/* print what we know */
plugin = g_slice_new0 (GsPlugin);
- plugin->enabled = FALSE;
+ plugin->enabled = TRUE;
plugin->module = module;
plugin->pixbuf_size = 64;
plugin->priority = plugin_prio (plugin);
diff --git a/src/gs-plugin.c b/src/gs-plugin.c
index 0157078..e6cbb29 100644
--- a/src/gs-plugin.c
+++ b/src/gs-plugin.c
@@ -45,6 +45,15 @@ gs_plugin_status_to_string (GsPluginStatus status)
}
/**
+ * gs_plugin_set_enabled:
+ **/
+void
+gs_plugin_set_enabled (GsPlugin *plugin, gboolean enabled)
+{
+ plugin->enabled = enabled;
+}
+
+/**
* gs_plugin_add_app:
**/
void
diff --git a/src/gs-plugin.h b/src/gs-plugin.h
index 9e302d1..95449b6 100644
--- a/src/gs-plugin.h
+++ b/src/gs-plugin.h
@@ -117,6 +117,8 @@ typedef gboolean (*GsPluginRefineFunc) (GsPlugin *plugin,
const gchar *gs_plugin_get_name (void);
void gs_plugin_initialize (GsPlugin *plugin);
void gs_plugin_destroy (GsPlugin *plugin);
+void gs_plugin_set_enabled (GsPlugin *plugin,
+ gboolean enabled);
void gs_plugin_add_app (GList **list,
GsApp *app);
void gs_plugin_list_free (GList *list);
diff --git a/src/gs-self-test.c b/src/gs-self-test.c
index 00bfbdf..43cdbe5 100644
--- a/src/gs-self-test.c
+++ b/src/gs-self-test.c
@@ -425,6 +425,7 @@ main (int argc, char **argv)
gtk_init (&argc, &argv);
g_test_init (&argc, &argv, NULL);
g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
+ g_setenv ("GNOME_SOFTWARE_SELF_TEST", "1", TRUE);
/* only critical and error are fatal */
g_log_set_fatal_mask (NULL, G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL);
diff --git a/src/plugins/gs-plugin-dummy.c b/src/plugins/gs-plugin-dummy.c
index f202527..f198e68 100644
--- a/src/plugins/gs-plugin-dummy.c
+++ b/src/plugins/gs-plugin-dummy.c
@@ -42,6 +42,11 @@ gs_plugin_get_name (void)
void
gs_plugin_initialize (GsPlugin *plugin)
{
+ if (g_getenv ("GNOME_SOFTWARE_SELF_TEST") == NULL) {
+ g_debug ("disabling '%s' as not in self test", plugin->name);
+ gs_plugin_set_enabled (plugin, FALSE);
+ }
+
/* create private area */
plugin->priv = GS_PLUGIN_GET_PRIVATE (GsPluginPrivate);
plugin->priv->dummy = 999;
diff --git a/src/plugins/gs-plugin-self-test.c b/src/plugins/gs-plugin-self-test.c
index dae6e06..85e6942 100644
--- a/src/plugins/gs-plugin-self-test.c
+++ b/src/plugins/gs-plugin-self-test.c
@@ -42,6 +42,18 @@ gs_plugin_get_priority (GsPlugin *plugin)
}
/**
+ * gs_plugin_initialize:
+ */
+void
+gs_plugin_initialize (GsPlugin *plugin)
+{
+ if (g_getenv ("GNOME_SOFTWARE_SELF_TEST") == NULL) {
+ g_debug ("disabling '%s' as not in self test", plugin->name);
+ gs_plugin_set_enabled (plugin, FALSE);
+ }
+}
+
+/**
* gs_plugin_refine:
*/
gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]