diff options
author | Michael Meeks <michael.meeks@novell.com> | 2010-03-03 18:36:43 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2010-03-14 09:53:16 +0800 |
commit | 19eea41c74154855cb68ee3a1fb41e2ec136b764 (patch) | |
tree | 4c638c63b1bdca7a2352795c1da0e30fc5b14e7e /shell | |
parent | 3d95369f38b22dea1fc22bb3f2cf306ae82aed9d (diff) | |
download | gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.tar gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.tar.gz gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.tar.bz2 gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.tar.lz gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.tar.xz gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.tar.zst gsoc2013-evolution-19eea41c74154855cb68ee3a1fb41e2ec136b764.zip |
clean up the 'express' mode hooks for UI Managers and start to
extend them to plugins - use a simple one-off boolean on the UI Manager
instead of exhaustively trying to propagate this information everywhere.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-view.c | 6 | ||||
-rw-r--r-- | shell/e-shell-window-actions.c | 6 | ||||
-rw-r--r-- | shell/e-shell-window-private.c | 32 |
3 files changed, 21 insertions, 23 deletions
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index d029627153..b23966b627 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -594,11 +594,7 @@ shell_view_toggled (EShellView *shell_view) id = shell_view_class->ui_manager_id; if (view_is_active && priv->merge_id == 0) { - gboolean express = e_shell_get_express_mode ( - e_shell_backend_get_shell ( - e_shell_view_get_shell_backend (shell_view))); - priv->merge_id = e_load_ui_manager_definition ( - ui_manager, basename, express); + priv->merge_id = e_load_ui_manager_definition (ui_manager, basename); e_plugin_ui_enable_manager (ui_manager, id); } else if (!view_is_active && priv->merge_id != 0) { diff --git a/shell/e-shell-window-actions.c b/shell/e-shell-window-actions.c index b29a96e49b..a07fb1d5f2 100644 --- a/shell/e-shell-window-actions.c +++ b/shell/e-shell-window-actions.c @@ -1867,16 +1867,12 @@ e_shell_window_actions_init (EShellWindow *shell_window) GtkActionGroup *action_group; EFocusTracker *focus_tracker; GtkUIManager *ui_manager; - gboolean express; gchar *path; g_return_if_fail (E_IS_SHELL_WINDOW (shell_window)); - express = e_shell_get_express_mode ( - e_shell_window_get_shell (shell_window)); ui_manager = e_shell_window_get_ui_manager (shell_window); - - e_load_ui_manager_definition (ui_manager, "evolution-shell.ui", express); + e_load_ui_manager_definition (ui_manager, "evolution-shell.ui"); /* Shell Actions */ action_group = ACTION_GROUP (SHELL); diff --git a/shell/e-shell-window-private.c b/shell/e-shell-window-private.c index d380d25021..32d870563a 100644 --- a/shell/e-shell-window-private.c +++ b/shell/e-shell-window-private.c @@ -220,8 +220,6 @@ e_shell_window_private_init (EShellWindow *shell_window) EShellWindowPrivate *priv = shell_window->priv; GHashTable *loaded_views; GArray *signal_handler_ids; - GtkAccelGroup *accel_group; - guint merge_id; loaded_views = g_hash_table_new_full ( g_str_hash, g_str_equal, @@ -249,19 +247,8 @@ e_shell_window_private_init (EShellWindow *shell_window) e_shell_window_add_action_group (shell_window, "lockdown-print-setup"); e_shell_window_add_action_group (shell_window, "lockdown-save-to-disk"); - merge_id = gtk_ui_manager_new_merge_id (priv->ui_manager); - priv->custom_rule_merge_id = merge_id; - - merge_id = gtk_ui_manager_new_merge_id (priv->ui_manager); - priv->gal_view_merge_id = merge_id; - gtk_window_set_title (GTK_WINDOW (shell_window), _("Evolution")); - e_shell_window_actions_init (shell_window); - - accel_group = gtk_ui_manager_get_accel_group (priv->ui_manager); - gtk_window_add_accel_group (GTK_WINDOW (shell_window), accel_group); - g_signal_connect_swapped ( priv->ui_manager, "connect-proxy", G_CALLBACK (shell_window_connect_proxy_cb), shell_window); @@ -275,6 +262,7 @@ e_shell_window_private_constructed (EShellWindow *shell_window) EShell *shell; GConfBridge *bridge; GtkAction *action; + GtkAccelGroup *accel_group; GtkActionGroup *action_group; GtkUIManager *ui_manager; GtkBox *box; @@ -282,6 +270,7 @@ e_shell_window_private_constructed (EShellWindow *shell_window) GtkWidget *widget; GtkWindow *window; GObject *object; + guint merge_id; const gchar *key; const gchar *id; @@ -292,6 +281,23 @@ e_shell_window_private_constructed (EShellWindow *shell_window) e_shell_watch_window (shell, window); + e_load_ui_manager_set_express (priv->ui_manager, + e_shell_get_express_mode (shell)); + + /* Defer actions and menu merging until we have set express mode */ + + e_shell_window_actions_init (shell_window); + + accel_group = gtk_ui_manager_get_accel_group (priv->ui_manager); + gtk_window_add_accel_group (GTK_WINDOW (shell_window), accel_group); + + merge_id = gtk_ui_manager_new_merge_id (priv->ui_manager); + priv->custom_rule_merge_id = merge_id; + + merge_id = gtk_ui_manager_new_merge_id (priv->ui_manager); + priv->gal_view_merge_id = merge_id; + + /* Construct window widgets. */ widget = gtk_vbox_new (FALSE, 0); |