diff options
-rw-r--r-- | e-util/ChangeLog | 9 | ||||
-rw-r--r-- | e-util/e-plugin.c | 21 | ||||
-rw-r--r-- | e-util/e-plugin.h | 3 | ||||
-rw-r--r-- | plugins/plugin-manager/ChangeLog | 9 | ||||
-rw-r--r-- | plugins/plugin-manager/plugin-manager.c | 9 |
5 files changed, 47 insertions, 4 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog index ccb45fed49..dbf484b09f 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -1,3 +1,12 @@ +2007-10-26 Sankar P <psankar@novell.com> + + ** Fix for bug #461272 + + * e-plugin.c: (ep_load), (e_plugin_load_plugins), + (e_plugin_is_configurable), (epl_configure): + * e-plugin.h: + Configure button should not be enabled for all. + 2007-10-26 Kjartan Maraas <kmaraas@gnome.org> * e-config.c: diff --git a/e-util/e-plugin.c b/e-util/e-plugin.c index edcdb4d43c..bdfe12c9b1 100644 --- a/e-util/e-plugin.c +++ b/e-util/e-plugin.c @@ -929,8 +929,8 @@ epl_construct(EPlugin *ep, xmlNodePtr root) return 0; } -static void -epl_configure (EPlugin *ep) +gboolean +e_plugin_is_configurable (EPlugin *ep) { EPluginLibConfigureFunc configure; @@ -938,9 +938,24 @@ epl_configure (EPlugin *ep) if (epl_loadmodule(ep) != 0) { pd(printf ("\n epl_loadmodule \n")); - return; + return FALSE; + } + + if (g_module_symbol(epl->module, "e_plugin_lib_configure", (void *)&configure)) { + pd(printf ("\n g_module_symbol is loaded\n")); + return TRUE; } + return FALSE; +} + +static void +epl_configure (EPlugin *ep) +{ + EPluginLibConfigureFunc configure; + + pd(printf ("\n epl_configure \n")); + /* Probably we dont need a load_module */ if (g_module_symbol(epl->module, "e_plugin_lib_configure", (void *)&configure)) { pd(printf ("\n g_module_symbol is loaded\n")); configure (epl); diff --git a/e-util/e-plugin.h b/e-util/e-plugin.h index eeda139878..e1dc1f29fd 100644 --- a/e-util/e-plugin.h +++ b/e-util/e-plugin.h @@ -101,6 +101,8 @@ void *e_plugin_invoke(EPlugin *ep, const char *name, void *data); void e_plugin_enable(EPlugin *eph, int state); void e_plugin_configure (EPlugin *eph); +gboolean e_plugin_is_configurable (EPlugin *ep); + /* static helpers */ /* maps prop or content to 'g memory' */ char *e_plugin_xml_prop(xmlNodePtr node, const char *id); @@ -274,3 +276,4 @@ struct _EPluginTypeHookClass { GType e_plugin_type_hook_get_type(void); #endif /* ! _E_PLUGIN_H */ + diff --git a/plugins/plugin-manager/ChangeLog b/plugins/plugin-manager/ChangeLog index 99c4d32087..3af1b4d780 100644 --- a/plugins/plugin-manager/ChangeLog +++ b/plugins/plugin-manager/ChangeLog @@ -1,3 +1,12 @@ +2007-10-26 Sankar P <psankar@novell.com> + + ** Fix for bug #461272 + + * plugin-manager.c: (eppm_selection_changed), + (org_gnome_plugin_manager_manage): + Configure button should not be enabled for all. + configure button needs a hot-key. + 2007-07-26 Sankar P <psankar@novell.com> * plugin-manager.c: (eppm_response), diff --git a/plugins/plugin-manager/plugin-manager.c b/plugins/plugin-manager/plugin-manager.c index 10ad9072b4..52a3d0c93d 100644 --- a/plugins/plugin-manager/plugin-manager.c +++ b/plugins/plugin-manager/plugin-manager.c @@ -132,9 +132,16 @@ eppm_selection_changed(GtkTreeSelection *selection, Manager *m) if (gtk_tree_selection_get_selected(selection, &model, &iter)) { EPlugin *ep; + EPluginLibConfigureFunc configure; + gboolean enabled = FALSE; gtk_tree_model_get(model, &iter, COL_PLUGIN_DATA, &ep, -1); eppm_show_plugin(m, ep); + + enabled = e_plugin_is_configurable (ep); + + gtk_dialog_set_response_sensitive (m->dialog, RESPONSE_CONFIGURE, enabled); + } else { eppm_show_plugin(m, NULL); } @@ -223,7 +230,7 @@ org_gnome_plugin_manager_manage(void *ep, ESMenuTargetShell *t) m->dialog = (GtkDialog *)gtk_dialog_new_with_buttons(_("Plugin Manager"), (GtkWindow *)gtk_widget_get_toplevel(t->target.widget), GTK_DIALOG_DESTROY_WITH_PARENT, - _("Configure"), RESPONSE_CONFIGURE, + _("Con_figure"), RESPONSE_CONFIGURE, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); |