aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/ChangeLog9
-rw-r--r--e-util/e-plugin.c21
-rw-r--r--e-util/e-plugin.h3
-rw-r--r--plugins/plugin-manager/ChangeLog9
-rw-r--r--plugins/plugin-manager/plugin-manager.c9
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);