[grilo] test-ui: reload plugins functionality
- From: Victor Manuel Jaquez Leal <vjaquez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo] test-ui: reload plugins functionality
- Date: Wed, 25 Aug 2010 15:31:21 +0000 (UTC)
commit def549318aa94a881e1d3f8b7a6790c3060673ba
Author: VÃctor Manuel Jáquez Leal <vjaquez igalia com>
Date: Fri Aug 20 11:34:59 2010 +0200
test-ui: reload plugins functionality
Add a menu option for reloading all the available plugins. Now, in theory,
should be possible to reload a plugin in development process without
restarting the test-ui app.
Signed-off-by: VÃctor Manuel Jáquez Leal <vjaquez igalia com>
tools/grilo-test-ui/main.c | 46 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 43 insertions(+), 3 deletions(-)
---
diff --git a/tools/grilo-test-ui/main.c b/tools/grilo-test-ui/main.c
index e9f63cd..58e3265 100644
--- a/tools/grilo-test-ui/main.c
+++ b/tools/grilo-test-ui/main.c
@@ -171,6 +171,7 @@ static const gchar *ui_definition =
" <menubar name='MainMenu'>"
" <menu name='FileMenu' action='FileMenuAction' >"
" <menuitem name='Authorize Flickr' action='AuthorizeFlickrAction' />"
+" <menuitem name='Reload plugins' action='ReloadPluginsAction' />"
" <menuitem name='Quit' action='QuitAction' />"
" </menu>"
" </menubar>"
@@ -182,10 +183,17 @@ static void quit_cb (GtkAction *action);
static gchar *authorize_flickr (void);
static void authorize_flickr_cb (GtkAction *action);
+static void reload_plugins_cb (GtkAction *action);
+static void reload_plugins (void);
+
static GtkActionEntry entries[] = {
{ "FileMenuAction", NULL, "_File" },
- { "AuthorizeFlickrAction", GTK_STOCK_CONNECT, "_Authorize Flickr", NULL, "AuthorizeFlickr", G_CALLBACK (authorize_flickr_cb)},
- { "QuitAction", GTK_STOCK_QUIT, "_Quit", "<control>Q", "Quit", G_CALLBACK (quit_cb) }
+ { "AuthorizeFlickrAction", GTK_STOCK_CONNECT, "_Authorize Flickr", NULL,
+ "AuthorizeFlickr", G_CALLBACK (authorize_flickr_cb) },
+ { "ReloadPluginsAction", GTK_STOCK_REFRESH, "_Reload Plugins", "<control>R",
+ "ReloadPlugins", G_CALLBACK (reload_plugins_cb) },
+ { "QuitAction", GTK_STOCK_QUIT, "_Quit", "<control>Q",
+ "Quit", G_CALLBACK (quit_cb) }
};
static void
@@ -200,6 +208,12 @@ authorize_flickr_cb (GtkAction *action)
authorize_flickr ();
}
+static void
+reload_plugins_cb (GtkAction *action)
+{
+ reload_plugins ();
+}
+
static GtkTreeModel *
create_browser_model (void)
{
@@ -1718,6 +1732,32 @@ load_plugins (void)
}
static void
+reload_plugins (void)
+{
+ GrlMediaPlugin **sources;
+ GrlPluginRegistry *registry;
+ int i;
+
+ /* Cancel previous operation, if any */
+ cancel_current_operation ();
+
+ registry = grl_plugin_registry_get_default ();
+ sources = grl_plugin_registry_get_sources (registry, FALSE);
+
+ for (i = 0; sources[i]; i++) {
+ grl_plugin_registry_unload (registry,
+ grl_media_plugin_get_name (sources[i]));
+ grl_plugin_registry_unregister_source (registry, sources[i]);
+ }
+
+ g_free (sources);
+
+ load_plugins ();
+
+ reset_ui ();
+}
+
+static void
configure_plugins ()
{
set_flickr_config ();
@@ -1730,7 +1770,7 @@ main (int argc, gchar *argv[])
{
gtk_init (&argc, &argv);
grl_init (&argc, &argv);
- grl_log_init ("*:*");
+ grl_log_init ("grl-jamendo:*");
launchers_setup ();
ui_setup ();
configure_plugins ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]