[evolution] make the 'New' drop-down menu much cleaner for express mode
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] make the 'New' drop-down menu much cleaner for express mode
- Date: Sun, 14 Mar 2010 02:11:43 +0000 (UTC)
commit c0f1cd53092a42fd0b96a132bda6ab8119f344ae
Author: Michael Meeks <michael meeks novell com>
Date: Wed Mar 3 16:56:13 2010 +0000
make the 'New' drop-down menu much cleaner for express mode
shell/e-shell-window-actions.c | 34 +++++++++++++++++++++++++++++++---
shell/e-shell-window.c | 12 ++++++++++++
shell/e-shell-window.h | 1 +
3 files changed, 44 insertions(+), 3 deletions(-)
---
diff --git a/shell/e-shell-window-actions.c b/shell/e-shell-window-actions.c
index 9f9b043..7a091a1 100644
--- a/shell/e-shell-window-actions.c
+++ b/shell/e-shell-window-actions.c
@@ -2001,6 +2001,26 @@ e_shell_window_actions_init (EShellWindow *shell_window)
g_free (path);
}
+static GList *
+express_filter_new_actions (GList *list)
+{
+ GList *l, *filtered = NULL;
+
+ for (l = list; l; l = l->next) {
+ const gchar *backend_name;
+
+ backend_name = g_object_get_data (
+ G_OBJECT (l->data), "backend-name");
+
+ /* only the addressbook pieces in express mode */
+ if (!strcmp (backend_name, "addressbook"))
+ filtered = g_list_prepend (filtered, l->data);
+ }
+ g_list_free (list);
+
+ return g_list_reverse (filtered);
+}
+
GtkWidget *
e_shell_window_create_new_menu (EShellWindow *shell_window)
{
@@ -2038,6 +2058,12 @@ e_shell_window_create_new_menu (EShellWindow *shell_window)
for (iter = list; iter != NULL; iter = iter->next)
iter->data = gtk_action_create_menu_item (iter->data);
+ if (e_shell_window_get_express_mode (shell_window)) {
+ new_item_actions = express_filter_new_actions (new_item_actions);
+ g_list_free (new_source_actions);
+ new_source_actions = NULL;
+ }
+
for (iter = new_item_actions; iter != NULL; iter = iter->next)
iter->data = gtk_action_create_menu_item (iter->data);
@@ -2050,9 +2076,11 @@ e_shell_window_create_new_menu (EShellWindow *shell_window)
new_item_actions = g_list_prepend (new_item_actions, separator);
gtk_widget_show (GTK_WIDGET (separator));
- separator = gtk_separator_menu_item_new ();
- new_source_actions = g_list_prepend (new_source_actions, separator);
- gtk_widget_show (GTK_WIDGET (separator));
+ if (new_source_actions != NULL) {
+ separator = gtk_separator_menu_item_new ();
+ new_source_actions = g_list_prepend (new_source_actions, separator);
+ gtk_widget_show (GTK_WIDGET (separator));
+ }
/* Merge everything into one list, reflecting the menu layout. */
diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c
index 5513efb..8cb1ed8 100644
--- a/shell/e-shell-window.c
+++ b/shell/e-shell-window.c
@@ -1149,6 +1149,18 @@ e_shell_window_get_safe_mode (EShellWindow *shell_window)
}
/**
+ * e_shell_window_get_safe_mode:
+ * @shell_window: an #EShellWindow
+ *
+ * Returns %TRUE if @shell_window is in "express mode".
+ **/
+gboolean
+e_shell_window_get_express_mode (EShellWindow *shell_window)
+{
+ return e_shell_get_express_mode (e_shell_window_get_shell (shell_window));
+}
+
+/**
* e_shell_window_set_safe_mode:
* @shell_window: an #EShellWindow
* @safe_mode: whether to put @shell_window into "safe mode"
diff --git a/shell/e-shell-window.h b/shell/e-shell-window.h
index 0bd7107..3d8696a 100644
--- a/shell/e-shell-window.h
+++ b/shell/e-shell-window.h
@@ -117,6 +117,7 @@ void e_shell_window_set_active_view (EShellWindow *shell_window,
gboolean e_shell_window_get_safe_mode (EShellWindow *shell_window);
void e_shell_window_set_safe_mode (EShellWindow *shell_window,
gboolean safe_mode);
+gboolean e_shell_window_get_express_mode (EShellWindow *shell_window);
void e_shell_window_add_action_group (EShellWindow *shell_window,
const gchar *group_name);
gboolean e_shell_window_get_sidebar_visible
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]