[Xfce4-commits] <xfce4-panel:devel> Review PanelModule.
Nick Schermer
noreply at xfce.org
Wed Jan 20 21:08:16 CET 2010
Updating branch refs/heads/devel
to 5f4c41066fc99d238732a207bc011f53a5930f53 (commit)
from 823360d0e5cab527224598fbd334c91d5266e4bc (commit)
commit 5f4c41066fc99d238732a207bc011f53a5930f53
Author: Nick Schermer <nick at xfce.org>
Date: Wed Jan 20 19:32:01 2010 +0100
Review PanelModule.
panel/panel-module.c | 37 +++++++++++++++++++++----------------
1 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/panel/panel-module.c b/panel/panel-module.c
index fddaed0..fc38b50 100644
--- a/panel/panel-module.c
+++ b/panel/panel-module.c
@@ -68,7 +68,7 @@ struct _PanelModule
PanelModuleRunMode mode;
/* filename to the library or executable
- * for an old 4.6 executable */
+ * for an old 4.6 plugin */
gchar *filename;
/* plugin information from the desktop file */
@@ -80,13 +80,18 @@ struct _PanelModule
guint use_count;
guint is_unique : 1;
- /* settings for an internal plugin */
+ /* module location (null for 4.6 plugins) */
GModule *library;
- PluginConstructFunc construct_func; /* for non-gobject plugin */
- GType plugin_type; /* for gobject plugin */
+
+ /* for non-gobject plugin */
+ PluginConstructFunc construct_func;
+
+ /* for gobject plugins */
+ GType plugin_type;
};
+
static GQuark module_quark = 0;
@@ -178,8 +183,8 @@ panel_module_load (GTypeModule *type_module)
module->library = g_module_open (module->filename, G_MODULE_BIND_LOCAL);
if (G_UNLIKELY (module->library == NULL))
{
- /* print error and leave */
- g_critical ("Failed to load module \"%s\": %s.", module->filename,
+ g_critical ("Failed to load module \"%s\": %s.",
+ module->filename,
g_module_error ());
return FALSE;
}
@@ -187,13 +192,12 @@ panel_module_load (GTypeModule *type_module)
/* check if there is a preinit function */
if (g_module_symbol (module->library, "xfce_panel_module_preinit", &foo))
{
- /* show warning */
+ /* large message, but technically never shown to normal users */
g_warning ("The plugin \"%s\" is marked as internal in the desktop file, "
"but the developer has defined an pre-init function, which is "
"not supported for internal plugins. " PACKAGE_NAME " will force "
"the plugin to run external.", module->filename);
- /* unload */
panel_module_unload (type_module);
/* from now on, run this plugin in a wrapper */
@@ -215,11 +219,9 @@ panel_module_load (GTypeModule *type_module)
else if (!g_module_symbol (module->library, "xfce_panel_module_construct",
(gpointer) &module->construct_func))
{
- /* print critical warning */
g_critical ("Module \"%s\" lacks a plugin register function.",
module->filename);
- /* unload */
panel_module_unload (type_module);
return FALSE;
@@ -293,13 +295,15 @@ panel_module_new_from_desktop_file (const gchar *filename,
rc = xfce_rc_simple_open (filename, TRUE);
if (G_UNLIKELY (rc == NULL))
{
- g_critical ("Plugin %s: Unable to read from desktop file \"%s\"", name, filename);
+ g_critical ("Plugin %s: Unable to read from desktop file \"%s\"",
+ name, filename);
return NULL;
}
if (!xfce_rc_has_group (rc, "Xfce Panel"))
{
- g_critical ("Plugin %s: Desktop file \"%s\" has no \"Xfce Panel\" group", name, filename);
+ g_critical ("Plugin %s: Desktop file \"%s\" has no "
+ "\"Xfce Panel\" group", name, filename);
xfce_rc_close (rc);
return NULL;
}
@@ -314,9 +318,10 @@ panel_module_new_from_desktop_file (const gchar *filename,
if (xfce_rc_has_entry (rc, "X-XFCE-Module-Path"))
{
/* show a messsage if the old module path key still exists */
- g_message ("Plugin %s: The \"X-XFCE-Module-Path\" key is ignored in \"%s\", "
- "the panel will look for the module in " PANEL_PLUGINS_LIB_DIR
- ", see bug #5455 why this decision was made", name, filename);
+ g_message ("Plugin %s: The \"X-XFCE-Module-Path\" key is "
+ "ignored in \"%s\", the panel will look for the "
+ "module in " PANEL_PLUGINS_LIB_DIR ". See bug "
+ "#5455 why this decision was made", name, filename);
}
#endif
@@ -360,12 +365,12 @@ panel_module_new_from_desktop_file (const gchar *filename,
}
}
- /* read the remaining information */
if (G_LIKELY (module != NULL))
{
g_type_module_set_name (G_TYPE_MODULE (module), name);
panel_assert (module->mode != UNKNOWN);
+ /* read the remaining information */
module->display_name = g_strdup (xfce_rc_read_entry (rc, "Name", name));
module->comment = g_strdup (xfce_rc_read_entry (rc, "Comment", NULL));
module->icon_name = g_strdup (xfce_rc_read_entry_untranslated (rc, "Icon", NULL));
More information about the Xfce4-commits
mailing list