aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-03-16 00:11:26 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-03-16 00:14:36 +0800
commit04305b8fa35d87d97e48b11f93d24604cef5155d (patch)
tree5bb4922a88238522039431aa4d3583777d1f3466
parent2971ce413ce9f91ac768d53487c47056b2f5710f (diff)
downloadgsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.tar
gsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.tar.gz
gsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.tar.bz2
gsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.tar.lz
gsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.tar.xz
gsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.tar.zst
gsoc2013-evolution-04305b8fa35d87d97e48b11f93d24604cef5155d.zip
Revert some bad assumptions I made in EPluginUI.
We can't require the use of EUIManager everywhere because we don't control all the UI manager instances -- the most compelling example being the composer, whose UI manager comes from GtkhtmlEditor. Instead, EPluginUI will check the instance type and pick an appropriate "load_from_string" function.
-rw-r--r--calendar/gui/dialogs/event-editor.c4
-rw-r--r--calendar/gui/dialogs/memo-editor.c4
-rw-r--r--calendar/gui/dialogs/task-editor.c4
-rw-r--r--composer/e-msg-composer.c4
-rw-r--r--e-util/e-alert.h2
-rw-r--r--e-util/e-plugin-ui.c37
-rw-r--r--e-util/e-plugin-ui.h9
-rw-r--r--mail/e-mail-browser.c4
-rw-r--r--shell/e-shell-view.c5
-rw-r--r--shell/e-shell-window-private.c5
-rw-r--r--widgets/misc/e-web-view.c6
11 files changed, 43 insertions, 41 deletions
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c
index 6e8b049bee..23256adff0 100644
--- a/calendar/gui/dialogs/event-editor.c
+++ b/calendar/gui/dialogs/event-editor.c
@@ -507,8 +507,8 @@ event_editor_init (EventEditor *ee)
gtk_ui_manager_add_ui_from_string (ui_manager, ui, -1, &error);
id = "org.gnome.evolution.event-editor";
- e_plugin_ui_register_manager (E_UI_MANAGER (ui_manager), id, ee);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, ee);
+ e_plugin_ui_enable_manager (ui_manager, id);
if (error != NULL) {
g_critical ("%s: %s", G_STRFUNC, error->message);
diff --git a/calendar/gui/dialogs/memo-editor.c b/calendar/gui/dialogs/memo-editor.c
index 8e2a5619dd..8e988c00a5 100644
--- a/calendar/gui/dialogs/memo-editor.c
+++ b/calendar/gui/dialogs/memo-editor.c
@@ -143,8 +143,8 @@ memo_editor_init (MemoEditor *me)
gtk_ui_manager_add_ui_from_string (ui_manager, ui, -1, &error);
id = "org.gnome.evolution.memo-editor";
- e_plugin_ui_register_manager (E_UI_MANAGER (ui_manager), id, me);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, me);
+ e_plugin_ui_enable_manager (ui_manager, id);
if (error != NULL) {
g_critical ("%s: %s", G_STRFUNC, error->message);
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c
index c7e0440eda..a3d4baec46 100644
--- a/calendar/gui/dialogs/task-editor.c
+++ b/calendar/gui/dialogs/task-editor.c
@@ -365,8 +365,8 @@ task_editor_init (TaskEditor *te)
gtk_ui_manager_add_ui_from_string (ui_manager, ui, -1, &error);
id = "org.gnome.evolution.task-editor";
- e_plugin_ui_register_manager (E_UI_MANAGER (ui_manager), id, te);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, te);
+ e_plugin_ui_enable_manager (ui_manager, id);
if (error != NULL) {
g_critical ("%s: %s", G_STRFUNC, error->message);
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index aa926b0aeb..c212ea088a 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -1745,8 +1745,8 @@ msg_composer_constructed (GObject *object)
gtkhtml_editor_set_changed (editor, FALSE);
id = "org.gnome.evolution.composer";
- e_plugin_ui_register_manager (E_UI_MANAGER (ui_manager), id, composer);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, composer);
+ e_plugin_ui_enable_manager (ui_manager, id);
}
static void
diff --git a/e-util/e-alert.h b/e-util/e-alert.h
index d0a4a0b502..66a0cb9c23 100644
--- a/e-util/e-alert.h
+++ b/e-util/e-alert.h
@@ -97,7 +97,7 @@ struct _EAlertClass
GType e_alert_get_type (void);
-EAlert *e_alert_new(const gchar *tag, ...);
+EAlert *e_alert_new(const gchar *tag, ...) G_GNUC_NULL_TERMINATED;
EAlert *e_alert_new_valist(const gchar *tag, va_list ap);
EAlert *e_alert_new_array(const gchar *tag, GPtrArray *args);
diff --git a/e-util/e-plugin-ui.c b/e-util/e-plugin-ui.c
index 9a9a4f23ed..999b1e82d2 100644
--- a/e-util/e-plugin-ui.c
+++ b/e-util/e-plugin-ui.c
@@ -167,7 +167,7 @@ static gpointer parent_class;
static void
plugin_ui_hook_unregister_manager (EPluginUIHook *hook,
- EUIManager *ui_manager)
+ GtkUIManager *ui_manager)
{
GHashTable *registry;
@@ -178,7 +178,7 @@ plugin_ui_hook_unregister_manager (EPluginUIHook *hook,
static void
plugin_ui_hook_register_manager (EPluginUIHook *hook,
- EUIManager *ui_manager,
+ GtkUIManager *ui_manager,
const gchar *id,
gpointer user_data)
{
@@ -229,7 +229,7 @@ plugin_ui_hook_register_manager (EPluginUIHook *hook,
static guint
plugin_ui_hook_merge_ui (EPluginUIHook *hook,
- EUIManager *ui_manager,
+ GtkUIManager *ui_manager,
const gchar *id)
{
GHashTable *hash_table;
@@ -241,8 +241,12 @@ plugin_ui_hook_merge_ui (EPluginUIHook *hook,
ui_definition = g_hash_table_lookup (hash_table, id);
g_return_val_if_fail (ui_definition != NULL, 0);
- merge_id = e_ui_manager_add_ui_from_string (
- ui_manager, ui_definition, &error);
+ if (E_IS_UI_MANAGER (ui_manager))
+ merge_id = e_ui_manager_add_ui_from_string (
+ E_UI_MANAGER (ui_manager), ui_definition, &error);
+ else
+ merge_id = gtk_ui_manager_add_ui_from_string (
+ ui_manager, ui_definition, -1, &error);
if (error != NULL) {
g_warning ("%s", error->message);
@@ -254,7 +258,7 @@ plugin_ui_hook_merge_ui (EPluginUIHook *hook,
static void
plugin_ui_enable_manager (EPluginUIHook *hook,
- EUIManager *ui_manager,
+ GtkUIManager *ui_manager,
const gchar *id)
{
GHashTable *hash_table;
@@ -302,7 +306,7 @@ plugin_ui_enable_manager (EPluginUIHook *hook,
static void
plugin_ui_disable_manager (EPluginUIHook *hook,
- EUIManager *ui_manager,
+ GtkUIManager *ui_manager,
const gchar *id,
gboolean remove)
{
@@ -338,8 +342,7 @@ plugin_ui_disable_manager (EPluginUIHook *hook,
/* Merge ID could be 0 if the plugin is disabled. */
if (merge_id > 0)
- gtk_ui_manager_remove_ui (
- GTK_UI_MANAGER (ui_manager), merge_id);
+ gtk_ui_manager_remove_ui (ui_manager, merge_id);
if (remove)
g_hash_table_remove (hash_table, id);
@@ -361,7 +364,7 @@ plugin_ui_enable_hook (EPluginUIHook *hook)
g_hash_table_iter_init (&iter, hash_table);
while (g_hash_table_iter_next (&iter, &key, NULL)) {
- EUIManager *ui_manager = key;
+ GtkUIManager *ui_manager = key;
plugin_ui_enable_manager (hook, ui_manager, NULL);
}
}
@@ -379,7 +382,7 @@ plugin_ui_disable_hook (EPluginUIHook *hook)
g_hash_table_iter_init (&iter, hash_table);
while (g_hash_table_iter_next (&iter, &key, NULL)) {
- EUIManager *ui_manager = key;
+ GtkUIManager *ui_manager = key;
plugin_ui_disable_manager (hook, ui_manager, NULL, FALSE);
}
}
@@ -549,13 +552,13 @@ e_plugin_ui_hook_get_type (void)
}
void
-e_plugin_ui_register_manager (EUIManager *ui_manager,
+e_plugin_ui_register_manager (GtkUIManager *ui_manager,
const gchar *id,
gpointer user_data)
{
GSList *plugin_list;
- g_return_if_fail (E_IS_UI_MANAGER (ui_manager));
+ g_return_if_fail (GTK_IS_UI_MANAGER (ui_manager));
g_return_if_fail (id != NULL);
/* Loop over all installed plugins. */
@@ -589,12 +592,12 @@ e_plugin_ui_register_manager (EUIManager *ui_manager,
}
void
-e_plugin_ui_enable_manager (EUIManager *ui_manager,
+e_plugin_ui_enable_manager (GtkUIManager *ui_manager,
const gchar *id)
{
GSList *plugin_list;
- g_return_if_fail (E_IS_UI_MANAGER (ui_manager));
+ g_return_if_fail (GTK_IS_UI_MANAGER (ui_manager));
g_return_if_fail (id != NULL);
/* Loop over all installed plugins. */
@@ -618,12 +621,12 @@ e_plugin_ui_enable_manager (EUIManager *ui_manager,
}
void
-e_plugin_ui_disable_manager (EUIManager *ui_manager,
+e_plugin_ui_disable_manager (GtkUIManager *ui_manager,
const gchar *id)
{
GSList *plugin_list;
- g_return_if_fail (E_IS_UI_MANAGER (ui_manager));
+ g_return_if_fail (GTK_IS_UI_MANAGER (ui_manager));
g_return_if_fail (id != NULL);
/* Loop over all installed plugins. */
diff --git a/e-util/e-plugin-ui.h b/e-util/e-plugin-ui.h
index e0cbb32f2d..e59b5f5222 100644
--- a/e-util/e-plugin-ui.h
+++ b/e-util/e-plugin-ui.h
@@ -20,7 +20,6 @@
#include <gtk/gtk.h>
-#include <e-util/e-ui-manager.h>
#include <e-util/e-plugin.h>
/* Standard GObject macros */
@@ -59,17 +58,17 @@ struct _EPluginUIHookClass {
/* Plugins with "org.gnome.evolution.ui" hooks should define a
* function named e_plugin_ui_init() having this signature. */
-typedef gboolean (*EPluginUIInitFunc) (EUIManager *ui_manager,
+typedef gboolean (*EPluginUIInitFunc) (GtkUIManager *ui_manager,
gpointer user_data);
GType e_plugin_ui_hook_get_type (void);
-void e_plugin_ui_register_manager (EUIManager *ui_manager,
+void e_plugin_ui_register_manager (GtkUIManager *ui_manager,
const gchar *id,
gpointer user_data);
-void e_plugin_ui_enable_manager (EUIManager *ui_manager,
+void e_plugin_ui_enable_manager (GtkUIManager *ui_manager,
const gchar *id);
-void e_plugin_ui_disable_manager (EUIManager *ui_manager,
+void e_plugin_ui_disable_manager (GtkUIManager *ui_manager,
const gchar *id);
G_END_DECLS
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index 5c36049cce..96f168fec9 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -580,8 +580,8 @@ mail_browser_constructed (GObject *object)
gconf_bridge_bind_property (bridge, key, object, "show-deleted");
id = "org.gnome.evolution.mail.browser";
- e_plugin_ui_register_manager (E_UI_MANAGER (ui_manager), id, object);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, object);
+ e_plugin_ui_enable_manager (ui_manager, id);
}
static gboolean
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c
index 33f7fe8d7c..537024a548 100644
--- a/shell/e-shell-view.c
+++ b/shell/e-shell-view.c
@@ -28,6 +28,7 @@
#include "e-util/e-util.h"
#include "e-util/e-file-utils.h"
#include "e-util/e-plugin-ui.h"
+#include "e-util/e-ui-manager.h"
#include "filter/e-rule-context.h"
#include "e-shell-window-actions.h"
@@ -596,10 +597,10 @@ shell_view_toggled (EShellView *shell_view)
if (view_is_active && priv->merge_id == 0) {
priv->merge_id = e_ui_manager_add_ui_from_file (
E_UI_MANAGER (ui_manager), basename);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_enable_manager (ui_manager, id);
} else if (!view_is_active && priv->merge_id != 0) {
- e_plugin_ui_disable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_disable_manager (ui_manager, id);
gtk_ui_manager_remove_ui (ui_manager, priv->merge_id);
priv->merge_id = 0;
}
diff --git a/shell/e-shell-window-private.c b/shell/e-shell-window-private.c
index e70e76673c..159a6b17d3 100644
--- a/shell/e-shell-window-private.c
+++ b/shell/e-shell-window-private.c
@@ -456,9 +456,8 @@ e_shell_window_private_constructed (EShellWindow *shell_window)
shell_window_init_switcher_style (shell_window);
id = "org.gnome.evolution.shell";
- e_plugin_ui_register_manager (
- E_UI_MANAGER (ui_manager), id, shell_window);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, shell_window);
+ e_plugin_ui_enable_manager (ui_manager, id);
}
void
diff --git a/widgets/misc/e-web-view.c b/widgets/misc/e-web-view.c
index 8744bef74b..ce41c32d4c 100644
--- a/widgets/misc/e-web-view.c
+++ b/widgets/misc/e-web-view.c
@@ -1229,7 +1229,7 @@ web_view_init (EWebView *web_view)
web_view->priv = E_WEB_VIEW_GET_PRIVATE (web_view);
- ui_manager = e_ui_manager_new ();
+ ui_manager = gtk_ui_manager_new ();
web_view->priv->ui_manager = ui_manager;
g_signal_connect_swapped (
@@ -1331,8 +1331,8 @@ web_view_init (EWebView *web_view)
g_error ("%s", error->message);
id = "org.gnome.evolution.webview";
- e_plugin_ui_register_manager (E_UI_MANAGER (ui_manager), id, web_view);
- e_plugin_ui_enable_manager (E_UI_MANAGER (ui_manager), id);
+ e_plugin_ui_register_manager (ui_manager, id, web_view);
+ e_plugin_ui_enable_manager (ui_manager, id);
}
GType