From 9164257afeb2045d41139962c2c0251f3c472b6d Mon Sep 17 00:00:00 2001 From: Nick Schermer Date: Fri, 26 Feb 2010 14:08:04 +0100 Subject: [PATCH] Remove per-plugin internal/external code. This makes the code overly complicated without much gain. It is also something not much user will case about. --- libxfce4panel/xfce-panel-plugin-provider.c | 22 ++++++---------------- libxfce4panel/xfce-panel-plugin-provider.h | 3 --- libxfce4panel/xfce-panel-plugin.c | 10 ---------- panel/panel-application.c | 17 ++++++----------- panel/panel-module-factory.c | 5 ++--- panel/panel-module-factory.h | 3 +-- panel/panel-module.c | 16 +++++----------- panel/panel-module.h | 11 ++--------- 8 files changed, 22 insertions(+), 65 deletions(-) diff --git a/libxfce4panel/xfce-panel-plugin-provider.c b/libxfce4panel/xfce-panel-plugin-provider.c index f0884812..7819be8b 100644 --- a/libxfce4panel/xfce-panel-plugin-provider.c +++ b/libxfce4panel/xfce-panel-plugin-provider.c @@ -90,7 +90,7 @@ xfce_panel_plugin_provider_base_init (gpointer klass) 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); - + provider_signals[MOVE] = g_signal_new (I_("move-item"), G_TYPE_FROM_CLASS (klass), @@ -98,7 +98,7 @@ xfce_panel_plugin_provider_base_init (gpointer klass) 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - + provider_signals[ADD_NEW_ITEMS] = g_signal_new (I_("add-new-items"), G_TYPE_FROM_CLASS (klass), @@ -106,7 +106,7 @@ xfce_panel_plugin_provider_base_init (gpointer klass) 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - + provider_signals[CUSTOMIZE_PANEL] = g_signal_new (I_("customize-panel"), G_TYPE_FROM_CLASS (klass), @@ -122,21 +122,11 @@ xfce_panel_plugin_provider_base_init (gpointer klass) -gboolean -xfce_panel_plugin_provider_is_external (XfcePanelPluginProvider *provider) -{ - g_return_val_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (provider), TRUE); - - return (XFCE_PANEL_PLUGIN_PROVIDER_GET_IFACE (provider)->is_external) (); -} - - - const gchar * xfce_panel_plugin_provider_get_name (XfcePanelPluginProvider *provider) { g_return_val_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (provider), NULL); - + return (*XFCE_PANEL_PLUGIN_PROVIDER_GET_IFACE (provider)->get_name) (provider); } @@ -146,7 +136,7 @@ const gchar * xfce_panel_plugin_provider_get_id (XfcePanelPluginProvider *provider) { g_return_val_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (provider), NULL); - + return (*XFCE_PANEL_PLUGIN_PROVIDER_GET_IFACE (provider)->get_id) (provider); } @@ -174,7 +164,7 @@ xfce_panel_plugin_provider_set_orientation (XfcePanelPluginProvider *provider, -void +void xfce_panel_plugin_provider_set_screen_position (XfcePanelPluginProvider *provider, XfceScreenPosition screen_position) { diff --git a/libxfce4panel/xfce-panel-plugin-provider.h b/libxfce4panel/xfce-panel-plugin-provider.h index 9d430db3..8d68eeda 100644 --- a/libxfce4panel/xfce-panel-plugin-provider.h +++ b/libxfce4panel/xfce-panel-plugin-provider.h @@ -61,7 +61,6 @@ struct _XfcePanelPluginProviderIface GTypeInterface __parent__; /*< public >*/ - gboolean (*is_external) (void); const gchar *(*get_name) (XfcePanelPluginProvider *provider); const gchar *(*get_id) (XfcePanelPluginProvider *provider); void (*set_size) (XfcePanelPluginProvider *provider, @@ -76,8 +75,6 @@ struct _XfcePanelPluginProviderIface GType xfce_panel_plugin_provider_get_type (void) G_GNUC_CONST; -gboolean xfce_panel_plugin_provider_is_external (XfcePanelPluginProvider *provider); - const gchar *xfce_panel_plugin_provider_get_name (XfcePanelPluginProvider *provider); const gchar *xfce_panel_plugin_provider_get_id (XfcePanelPluginProvider *provider); diff --git a/libxfce4panel/xfce-panel-plugin.c b/libxfce4panel/xfce-panel-plugin.c index 0ef83a97..19b974c4 100644 --- a/libxfce4panel/xfce-panel-plugin.c +++ b/libxfce4panel/xfce-panel-plugin.c @@ -56,7 +56,6 @@ static void xfce_panel_plugin_menu_remove (XfcePanelPlugin static void xfce_panel_plugin_menu_add_items (XfcePanelPlugin *plugin); static void xfce_panel_plugin_menu_customize_panel (XfcePanelPlugin *plugin); static GtkWidget *xfce_panel_plugin_menu_new (XfcePanelPlugin *plugin); -static gboolean xfce_panel_plugin_is_external (void); static gchar *xfce_panel_plugin_relative_filename (XfcePanelPlugin *plugin); static void xfce_panel_plugin_set_size (XfcePanelPluginProvider *provider, gint size); @@ -366,7 +365,6 @@ xfce_panel_plugin_init (XfcePanelPlugin *plugin) static void xfce_panel_plugin_provider_init (XfcePanelPluginProviderIface *iface) { - iface->is_external = xfce_panel_plugin_is_external; iface->get_name = (ProviderToPlugin) xfce_panel_plugin_get_name; iface->get_id = (ProviderToPlugin) xfce_panel_plugin_get_id; iface->set_size = xfce_panel_plugin_set_size; @@ -740,14 +738,6 @@ xfce_panel_plugin_relative_filename (XfcePanelPlugin *plugin) -static gboolean -xfce_panel_plugin_is_external (void) -{ - return FALSE; -} - - - const gchar * xfce_panel_plugin_get_name (XfcePanelPlugin *plugin) { diff --git a/panel/panel-application.c b/panel/panel-application.c index 5ea5914b..a099bc87 100644 --- a/panel/panel-application.c +++ b/panel/panel-application.c @@ -393,7 +393,6 @@ panel_application_insert_plugin (PanelApplication *application, const gchar *name, const gchar *id, gchar **arguments, - UseWrapper use_wrapper, gint position) { GtkWidget *itembar; @@ -410,7 +409,7 @@ panel_application_insert_plugin (PanelApplication *application, id = panel_application_get_unique_id (); /* create a new panel plugin */ - provider = panel_module_factory_create_plugin (application->factory, screen, name, id, arguments, use_wrapper); + provider = panel_module_factory_create_plugin (application->factory, screen, name, id, arguments); if (G_LIKELY (provider != NULL)) { @@ -454,7 +453,6 @@ panel_application_load_start_element (GMarkupParseContext *context, const gchar *name = NULL; const gchar *value = NULL; const gchar *id = NULL; - UseWrapper use_wrapper = FROM_DESKTOP_FILE; switch (parser->state) { @@ -514,15 +512,13 @@ panel_application_load_start_element (GMarkupParseContext *context, name = attribute_values[n]; else if (exo_str_is_equal (attribute_names[n], "id")) id = attribute_values[n]; - else if (exo_str_is_equal (attribute_names[n], "external")) - use_wrapper = exo_str_is_equal (attribute_values[n], "1") ? FORCE_EXTERNAL : FORCE_INTERNAL; } /* append the new plugin */ if (G_LIKELY (name != NULL)) panel_application_insert_plugin (parser->application, parser->window, gtk_window_get_screen (GTK_WINDOW (parser->window)), - name, id, NULL, use_wrapper, -1); + name, id, NULL, -1); } break; @@ -664,10 +660,9 @@ panel_application_save_xml_contents (PanelApplication *application) provider = XFCE_PANEL_PLUGIN_PROVIDER (lp->data); /* store plugin name and id */ - g_string_append_printf (contents, "\t\t\t\n", + g_string_append_printf (contents, "\t\t\t\n", xfce_panel_plugin_provider_get_name (provider), - xfce_panel_plugin_provider_get_id (provider), - xfce_panel_plugin_provider_is_external (provider)); + xfce_panel_plugin_provider_get_id (provider)); } /* cleanup */ @@ -842,7 +837,7 @@ panel_application_add_new_item (PanelApplication *application, /* add the panel to the end of the choosen window */ panel_application_insert_plugin (application, window, gtk_widget_get_screen (GTK_WIDGET (window)), - plugin_name, NULL, arguments, /* FROM_DESKTOP_FILE */ FORCE_EXTERNAL, -1); + plugin_name, NULL, arguments, -1); } else { @@ -899,7 +894,7 @@ panel_application_drag_data_received (GtkWidget *itembar, /* create a new item with a unique id */ succeed = panel_application_insert_plugin (application, window, screen, name, - NULL, NULL, FROM_DESKTOP_FILE, position); + NULL, NULL, position); } break; diff --git a/panel/panel-module-factory.c b/panel/panel-module-factory.c index 5c256979..f8fb1c05 100644 --- a/panel/panel-module-factory.c +++ b/panel/panel-module-factory.c @@ -359,8 +359,7 @@ panel_module_factory_create_plugin (PanelModuleFactory *factory, GdkScreen *screen, const gchar *name, const gchar *id, - gchar **arguments, - UseWrapper use_wrapper) + gchar **arguments) { PanelModule *module; @@ -380,5 +379,5 @@ panel_module_factory_create_plugin (PanelModuleFactory *factory, } /* create the new module */ - return panel_module_create_plugin (module, screen, name, id, arguments, use_wrapper); + return panel_module_create_plugin (module, screen, name, id, arguments); } diff --git a/panel/panel-module-factory.h b/panel/panel-module-factory.h index 14f537a6..835c8280 100644 --- a/panel/panel-module-factory.h +++ b/panel/panel-module-factory.h @@ -54,8 +54,7 @@ XfcePanelPluginProvider *panel_module_factory_create_plugin (PanelModuleFa GdkScreen *screen, const gchar *name, const gchar *id, - gchar **arguments, - UseWrapper use_wrapper); + gchar **arguments); G_END_DECLS diff --git a/panel/panel-module.c b/panel/panel-module.c index 892280ca..0bdfd794 100644 --- a/panel/panel-module.c +++ b/panel/panel-module.c @@ -219,9 +219,8 @@ panel_module_item_finalized (gpointer user_data, module->use_count--; /* unuse the library if the plugin runs internal */ - /* TODO this needs to be fixed */ - //if (!xfce_panel_plugin_provider_is_external (XFCE_PANEL_PLUGIN_PROVIDER (item))) - // g_type_module_unuse (G_TYPE_MODULE (module)); + if (module->run_in_wrapper == FALSE) + g_type_module_unuse (G_TYPE_MODULE (module)); /* emit signal unique signal in the factory */ if (module->is_unique) @@ -324,11 +323,9 @@ panel_module_create_plugin (PanelModule *module, GdkScreen *screen, const gchar *name, const gchar *id, - gchar **arguments, - UseWrapper use_wrapper) + gchar **arguments) { XfcePanelPluginProvider *plugin = NULL; - gboolean external; panel_return_val_if_fail (PANEL_IS_MODULE (module), NULL); panel_return_val_if_fail (G_IS_TYPE_MODULE (module), NULL); @@ -341,10 +338,7 @@ panel_module_create_plugin (PanelModule *module, if (G_UNLIKELY (panel_module_is_usable (module) == FALSE)) return NULL; - /* whether we're going to start the module external */ - external = !!(use_wrapper == FORCE_EXTERNAL || (use_wrapper == FROM_DESKTOP_FILE && module->run_in_wrapper)); - - if (external) + if (module->run_in_wrapper) { /* create external plugin */ plugin = panel_plugin_external_new (module, name, id, arguments); @@ -381,7 +375,7 @@ panel_module_create_plugin (PanelModule *module, if (module->is_unique) panel_module_factory_emit_unique_changed (module); } - else if (external == FALSE) + else if (module->run_in_wrapper == FALSE) { /* decrease the use count since loading failed somehow */ g_type_module_unuse (G_TYPE_MODULE (module)); diff --git a/panel/panel-module.h b/panel/panel-module.h index 3d79db80..6ee283d8 100644 --- a/panel/panel-module.h +++ b/panel/panel-module.h @@ -26,7 +26,6 @@ G_BEGIN_DECLS typedef struct _PanelModuleClass PanelModuleClass; typedef struct _PanelModule PanelModule; -typedef enum _UseWrapper UseWrapper; #define PANEL_TYPE_MODULE (panel_module_get_type ()) #define PANEL_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PANEL_TYPE_MODULE, PanelModule)) @@ -35,12 +34,7 @@ typedef enum _UseWrapper UseWrapper; #define PANEL_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANEL_TYPE_MODULE)) #define PANEL_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANEL_TYPE_MODULE, PanelModuleClass)) -enum _UseWrapper -{ - FROM_DESKTOP_FILE, - FORCE_INTERNAL, - FORCE_EXTERNAL -}; + GType panel_module_get_type (void) G_GNUC_CONST; @@ -51,8 +45,7 @@ XfcePanelPluginProvider *panel_module_create_plugin (PanelModule *modul GdkScreen *screen, const gchar *name, const gchar *id, - gchar **arguments, - UseWrapper use_wrapper); + gchar **arguments); const gchar *panel_module_get_internal_name (PanelModule *module);