aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2008-10-28 06:47:50 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2008-10-28 06:47:50 +0800
commit17e030e2022b2343c795b7fd524ba9451ca71e9f (patch)
treed283ec323eb83e99c12299003c16c0a7c12fd1e9
parent14f54991f36d5d3556af1dde53ddb7a8aceafa3a (diff)
downloadgsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.tar
gsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.tar.gz
gsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.tar.bz2
gsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.tar.lz
gsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.tar.xz
gsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.tar.zst
gsoc2013-evolution-17e030e2022b2343c795b7fd524ba9451ca71e9f.zip
Fix a couple minor UI bugs.
Populate the calendar's filter combo. svn path=/branches/kill-bonobo/; revision=36691
-rw-r--r--calendar/modules/e-cal-shell-sidebar.c17
-rw-r--r--calendar/modules/e-cal-shell-view-private.c5
-rw-r--r--shell/e-shell-window-actions.c6
-rw-r--r--shell/e-shell-window.c10
4 files changed, 34 insertions, 4 deletions
diff --git a/calendar/modules/e-cal-shell-sidebar.c b/calendar/modules/e-cal-shell-sidebar.c
index 06d09b07ed..7f962574f4 100644
--- a/calendar/modules/e-cal-shell-sidebar.c
+++ b/calendar/modules/e-cal-shell-sidebar.c
@@ -25,6 +25,7 @@
#include <glib/gi18n.h>
#include "e-util/e-error.h"
+#include "e-util/gconf-bridge.h"
#include "calendar/common/authentication.h"
#include "calendar/gui/calendar-config.h"
#include "calendar/gui/e-calendar-selector.h"
@@ -357,11 +358,13 @@ cal_shell_sidebar_constructed (GObject *object)
ESourceList *source_list;
ESource *source;
ECalendarItem *calitem;
+ GConfBridge *bridge;
GtkTreeModel *model;
GtkWidget *container;
GtkWidget *widget;
AtkObject *a11y;
GSList *list, *iter;
+ const gchar *key;
gchar *uid;
priv = E_CAL_SHELL_SIDEBAR_GET_PRIVATE (object);
@@ -435,7 +438,7 @@ cal_shell_sidebar_constructed (GObject *object)
e_source_selector_set_primary_selection (selector, source);
g_free (uid);
- list = calendar_config_get_tasks_selected ();
+ list = calendar_config_get_calendars_selected ();
for (iter = list; iter != NULL; iter = iter->next) {
uid = iter->data;
source = e_source_list_peek_source_by_uid (source_list, uid);
@@ -451,14 +454,22 @@ cal_shell_sidebar_constructed (GObject *object)
/* Listen for subsequent changes to the selector. */
g_signal_connect_swapped (
- widget, "selection-changed",
+ selector, "selection-changed",
G_CALLBACK (cal_shell_sidebar_selection_changed_cb),
object);
g_signal_connect_swapped (
- widget, "primary-selection-changed",
+ selector, "primary-selection-changed",
G_CALLBACK (cal_shell_sidebar_primary_selection_changed_cb),
object);
+
+ /* Bind GObject properties to GConf keys. */
+
+ bridge = gconf_bridge_get ();
+
+ object = G_OBJECT (priv->paned);
+ key = "/apps/evolution/calendar/display/date_navigator_vpane_position";
+ gconf_bridge_bind_property_delayed (bridge, key, object, "position");
}
static void
diff --git a/calendar/modules/e-cal-shell-view-private.c b/calendar/modules/e-cal-shell-view-private.c
index d5b15a370f..72b25f0e8d 100644
--- a/calendar/modules/e-cal-shell-view-private.c
+++ b/calendar/modules/e-cal-shell-view-private.c
@@ -275,8 +275,13 @@ e_cal_shell_view_private_constructed (ECalShellView *cal_shell_view)
cal_shell_view_update_timezone (cal_shell_view);
#endif
+ e_categories_register_change_listener (
+ G_CALLBACK (e_cal_shell_view_update_search_filter),
+ cal_shell_view);
+
e_cal_shell_view_actions_init (shell_view);
e_cal_shell_view_update_sidebar (cal_shell_view);
+ e_cal_shell_view_update_search_filter (cal_shell_view);
}
void
diff --git a/shell/e-shell-window-actions.c b/shell/e-shell-window-actions.c
index 2dcdd4c4d4..348daae89e 100644
--- a/shell/e-shell-window-actions.c
+++ b/shell/e-shell-window-actions.c
@@ -1781,6 +1781,7 @@ shell_window_extract_actions (EShellWindow *shell_window,
{
const gchar *current_view;
GList *match_list = NULL;
+ GList *primary = NULL;
GList *iter;
/* Pick out the actions from the source list that are tagged
@@ -1809,7 +1810,10 @@ shell_window_extract_actions (EShellWindow *shell_window,
if (strcmp (module_name, current_view) != 0)
continue;
- match_list = g_list_append (match_list, iter);
+ if (g_object_get_data (G_OBJECT (action), "primary"))
+ match_list = g_list_prepend (match_list, iter);
+ else
+ match_list = g_list_append (match_list, iter);
}
/* source_list = [B] match_list = [A] -> [C] */
diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c
index f278af0bf8..467e59d6cd 100644
--- a/shell/e-shell-window.c
+++ b/shell/e-shell-window.c
@@ -742,6 +742,16 @@ e_shell_window_register_new_item_actions (EShellWindow *shell_window,
g_object_set_data (
G_OBJECT (action),
"module-name", (gpointer) module_name);
+
+ /* The first action becomes the first item in the "New"
+ * menu, and consequently its icon is shown in the "New"
+ * button when the shell module's view is active. This
+ * is all sorted out in shell_window_extract_actions().
+ * Note, the data value just needs to be non-zero. */
+ if (ii == 0)
+ g_object_set_data (
+ G_OBJECT (action),
+ "primary", GINT_TO_POINTER (TRUE));
}
e_shell_window_update_new_menu (shell_window);