[evolution] Redo Calendar for express mode. Just design/layout changes.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Redo Calendar for express mode. Just design/layout changes.
- Date: Fri, 19 Mar 2010 17:14:46 +0000 (UTC)
commit 799cc8483c1c4bf7dbead3ed70f9706def38baba
Author: Srinivasa Ragavan <sragavan gnome org>
Date: Fri Mar 19 22:41:25 2010 +0530
Redo Calendar for express mode. Just design/layout changes.
modules/calendar/e-cal-shell-content.c | 94 +++++++++++++++-----------
modules/calendar/e-cal-shell-view-actions.c | 49 +++++++++++----
modules/calendar/e-cal-shell-view-private.c | 56 +++++++++-------
modules/calendar/e-cal-shell-view.c | 30 +++++++++
ui/evolution-calendars.ui | 14 ++++
5 files changed, 166 insertions(+), 77 deletions(-)
---
diff --git a/modules/calendar/e-cal-shell-content.c b/modules/calendar/e-cal-shell-content.c
index da1a7ce..5506a36 100644
--- a/modules/calendar/e-cal-shell-content.c
+++ b/modules/calendar/e-cal-shell-content.c
@@ -247,8 +247,8 @@ cal_shell_content_constructed (GObject *object)
{
ECalShellContentPrivate *priv;
ECalendarView *calendar_view;
- ECalModel *memo_model;
- ECalModel *task_model;
+ ECalModel *memo_model=NULL;
+ ECalModel *task_model=NULL;
EShell *shell;
EShellContent *shell_content;
EShellBackend *shell_backend;
@@ -285,40 +285,47 @@ cal_shell_content_constructed (GObject *object)
/* We borrow the memopad and taskpad models from the memo
* and task views, loading the views if necessary. */
-
- foreign_view = e_shell_window_get_shell_view (shell_window, "memos");
- foreign_content = e_shell_view_get_shell_content (foreign_view);
- g_object_get (foreign_content, "model", &memo_model, NULL);
-
- foreign_view = e_shell_window_get_shell_view (shell_window, "tasks");
- foreign_content = e_shell_view_get_shell_content (foreign_view);
- g_object_get (foreign_content, "model", &task_model, NULL);
-
+ if(!e_shell_get_express_mode(e_shell_get_default())) {
+ foreign_view = e_shell_window_get_shell_view (shell_window, "memos");
+ foreign_content = e_shell_view_get_shell_content (foreign_view);
+ g_object_get (foreign_content, "model", &memo_model, NULL);
+
+ foreign_view = e_shell_window_get_shell_view (shell_window, "tasks");
+ foreign_content = e_shell_view_get_shell_content (foreign_view);
+ g_object_get (foreign_content, "model", &task_model, NULL);
+ }
/* Build content widgets. */
container = GTK_WIDGET (object);
-
- widget = e_paned_new (GTK_ORIENTATION_HORIZONTAL);
- gtk_container_add (GTK_CONTAINER (container), widget);
- priv->hpaned = g_object_ref (widget);
- gtk_widget_show (widget);
-
- container = priv->hpaned;
+
+ if (!e_shell_get_express_mode(e_shell_get_default())) {
+ widget = e_paned_new (GTK_ORIENTATION_HORIZONTAL);
+ gtk_container_add (GTK_CONTAINER (container), widget);
+ priv->hpaned = g_object_ref (widget);
+ gtk_widget_show (widget);
+
+ container = priv->hpaned;
+ }
widget = gtk_notebook_new ();
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (widget), FALSE);
gtk_notebook_set_show_border (GTK_NOTEBOOK (widget), FALSE);
- gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, FALSE);
+ if (!e_shell_get_express_mode(e_shell_get_default()))
+ gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, FALSE);
+ else
+ gtk_container_add (GTK_CONTAINER (container), widget);
priv->notebook = g_object_ref (widget);
gtk_widget_show (widget);
- /* FIXME Need to deal with saving and restoring the position.
- * Month view has its own position. */
- widget = e_paned_new (GTK_ORIENTATION_VERTICAL);
- e_paned_set_fixed_resize (E_PANED (widget), FALSE);
- gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, TRUE);
- priv->vpaned = g_object_ref (widget);
- gtk_widget_show (widget);
+ if (!e_shell_get_express_mode(e_shell_get_default())) {
+ /* FIXME Need to deal with saving and restoring the position.
+ * Month view has its own position. */
+ widget = e_paned_new (GTK_ORIENTATION_VERTICAL);
+ e_paned_set_fixed_resize (E_PANED (widget), FALSE);
+ gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, TRUE);
+ priv->vpaned = g_object_ref (widget);
+ gtk_widget_show (widget);
+ }
container = priv->notebook;
@@ -342,7 +349,7 @@ cal_shell_content_constructed (GObject *object)
priv->notebook, "page");
container = priv->vpaned;
-
+if(!e_shell_get_express_mode(e_shell_get_default())) {
widget = gtk_vbox_new (FALSE, 0);
gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, TRUE);
gtk_widget_show (widget);
@@ -427,7 +434,7 @@ cal_shell_content_constructed (GObject *object)
widget, "open-component",
G_CALLBACK (e_cal_shell_view_memopad_open_memo),
shell_view);
-
+}
/* Load the view instance. */
view_instance = e_shell_view_new_view_instance (shell_view, NULL);
@@ -439,21 +446,23 @@ cal_shell_content_constructed (GObject *object)
* The GtkWidget::map() callback below explains why. */
priv->view_instance = view_instance;
- g_signal_connect_swapped (
- shell_view, "notify::view-id",
- G_CALLBACK (cal_shell_content_notify_view_id_cb),
- object);
+ if (!e_shell_get_express_mode(e_shell_get_default())) {
+ g_signal_connect_swapped (
+ shell_view, "notify::view-id",
+ G_CALLBACK (cal_shell_content_notify_view_id_cb),
+ object);
- /* Bind GObject properties to GConf keys. */
+ bridge = gconf_bridge_get ();
- bridge = gconf_bridge_get ();
-
- object = G_OBJECT (priv->vpaned);
- key = "/apps/evolution/calendar/display/tag_vpane_position";
- gconf_bridge_bind_property_delayed (bridge, key, object, "proportion");
+ object = G_OBJECT (priv->vpaned);
+ key = "/apps/evolution/calendar/display/tag_vpane_position";
+ gconf_bridge_bind_property_delayed (bridge, key, object, "proportion");
+ }
- g_object_unref (memo_model);
- g_object_unref (task_model);
+ if (memo_model)
+ g_object_unref (memo_model);
+ if (task_model)
+ g_object_unref (task_model);
}
static void
@@ -479,6 +488,7 @@ cal_shell_content_class_init (ECalShellContentClass *class)
{
GObjectClass *object_class;
GtkWidgetClass *widget_class;
+ EShellContentClass *shell_content_class;
parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (ECalShellContentPrivate));
@@ -488,6 +498,10 @@ cal_shell_content_class_init (ECalShellContentClass *class)
object_class->get_property = cal_shell_content_get_property;
object_class->dispose = cal_shell_content_dispose;
object_class->constructed = cal_shell_content_constructed;
+
+ shell_content_class = E_SHELL_CONTENT_CLASS (class);
+ if(e_shell_get_express_mode(e_shell_get_default()))
+ shell_content_class->construct_searchbar = NULL;
widget_class = GTK_WIDGET_CLASS (class);
widget_class->map = cal_shell_content_map;
diff --git a/modules/calendar/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c
index 5eaa9a4..b5609aa 100644
--- a/modules/calendar/e-cal-shell-view-actions.c
+++ b/modules/calendar/e-cal-shell-view-actions.c
@@ -1197,6 +1197,21 @@ action_event_schedule_cb (GtkAction *action,
}
static void
+quit_calendar_cb (GtkAction *action,
+ ECalShellView *cal_shell_view)
+{
+ EShellView *shell_view;
+ EShellWindow *shell_window;
+ EShell *shell;
+
+ shell_view = E_SHELL_VIEW (cal_shell_view);
+ shell_window = e_shell_view_get_shell_window (shell_view);
+
+ shell = e_shell_window_get_shell (shell_window);
+ e_shell_quit (shell);
+}
+
+static void
action_event_schedule_appointment_cb (GtkAction *action,
ECalShellView *cal_shell_view)
{
@@ -1428,6 +1443,13 @@ static GtkActionEntry calendar_entries[] = {
N_("Converts a meeting to an appointment"),
G_CALLBACK (action_event_schedule_appointment_cb) },
+ { "quit-calendar",
+ GTK_STOCK_CLOSE,
+ N_("Quit"),
+ NULL,
+ NULL, /* XXX Add a tooltip! */
+ G_CALLBACK (quit_calendar_cb) },
+
/*** Menus ***/
{ "calendar-actions-menu",
@@ -1689,7 +1711,7 @@ e_cal_shell_view_actions_init (ECalShellView *cal_shell_view)
cal_shell_content = cal_shell_view->priv->cal_shell_content;
searchbar = e_cal_shell_content_get_searchbar (cal_shell_content);
-
+
/* Calendar Actions */
action_group = ACTION_GROUP (CALENDAR);
gtk_action_group_add_actions (
@@ -1710,8 +1732,9 @@ e_cal_shell_view_actions_init (ECalShellView *cal_shell_view)
/* Advanced Search Action */
action = ACTION (CALENDAR_SEARCH_ADVANCED_HIDDEN);
gtk_action_set_visible (action, FALSE);
- e_shell_searchbar_set_search_option (
- searchbar, GTK_RADIO_ACTION (action));
+ if (searchbar)
+ e_shell_searchbar_set_search_option (
+ searchbar, GTK_RADIO_ACTION (action));
/* Lockdown Printing Actions */
action_group = ACTION_GROUP (LOCKDOWN_PRINTING);
@@ -1833,18 +1856,20 @@ e_cal_shell_view_update_search_filter (ECalShellView *cal_shell_view)
cal_shell_content = cal_shell_view->priv->cal_shell_content;
searchbar = e_cal_shell_content_get_searchbar (cal_shell_content);
- combo_box = e_shell_searchbar_get_filter_combo_box (searchbar);
+ if (searchbar) {
+ combo_box = e_shell_searchbar_get_filter_combo_box (searchbar);
- e_shell_view_block_execute_search (shell_view);
+ e_shell_view_block_execute_search (shell_view);
- /* Use any action in the group; doesn't matter which. */
- e_action_combo_box_set_action (combo_box, radio_action);
+ /* Use any action in the group; doesn't matter which. */
+ e_action_combo_box_set_action (combo_box, radio_action);
- ii = CALENDAR_FILTER_UNMATCHED;
- e_action_combo_box_add_separator_after (combo_box, ii);
+ ii = CALENDAR_FILTER_UNMATCHED;
+ e_action_combo_box_add_separator_after (combo_box, ii);
- ii = CALENDAR_FILTER_NEXT_7_DAYS_APPOINTMENTS;
- e_action_combo_box_add_separator_after (combo_box, ii);
+ ii = CALENDAR_FILTER_NEXT_7_DAYS_APPOINTMENTS;
+ e_action_combo_box_add_separator_after (combo_box, ii);
- e_shell_view_unblock_execute_search (shell_view);
+ e_shell_view_unblock_execute_search (shell_view);
+ }
}
diff --git a/modules/calendar/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c
index 5fc42fe..e43eb26 100644
--- a/modules/calendar/e-cal-shell-view-private.c
+++ b/modules/calendar/e-cal-shell-view-private.c
@@ -533,35 +533,41 @@ e_cal_shell_view_private_constructed (ECalShellView *cal_shell_view)
G_CALLBACK (cal_shell_view_selector_client_removed_cb),
cal_shell_view);
- g_signal_connect_swapped (
- memo_table, "popup-event",
- G_CALLBACK (cal_shell_view_memopad_popup_event_cb),
- cal_shell_view);
-
- g_signal_connect_swapped (
- memo_table, "selection-change",
- G_CALLBACK (e_cal_shell_view_memopad_actions_update),
- cal_shell_view);
+ if (memo_table)
+ g_signal_connect_swapped (
+ memo_table, "popup-event",
+ G_CALLBACK (cal_shell_view_memopad_popup_event_cb),
+ cal_shell_view);
- g_signal_connect_swapped (
- memo_table, "status-message",
- G_CALLBACK (e_cal_shell_view_memopad_set_status_message),
- cal_shell_view);
+ if (memo_table)
+ g_signal_connect_swapped (
+ memo_table, "selection-change",
+ G_CALLBACK (e_cal_shell_view_memopad_actions_update),
+ cal_shell_view);
- g_signal_connect_swapped (
- task_table, "popup-event",
- G_CALLBACK (cal_shell_view_taskpad_popup_event_cb),
- cal_shell_view);
+ if (memo_table)
+ g_signal_connect_swapped (
+ memo_table, "status-message",
+ G_CALLBACK (e_cal_shell_view_memopad_set_status_message),
+ cal_shell_view);
- g_signal_connect_swapped (
- task_table, "status-message",
- G_CALLBACK (e_cal_shell_view_taskpad_set_status_message),
- cal_shell_view);
+ if (task_table)
+ g_signal_connect_swapped (
+ task_table, "popup-event",
+ G_CALLBACK (cal_shell_view_taskpad_popup_event_cb),
+ cal_shell_view);
- g_signal_connect_swapped (
- task_table, "selection-change",
- G_CALLBACK (e_cal_shell_view_taskpad_actions_update),
- cal_shell_view);
+ if (task_table)
+ g_signal_connect_swapped (
+ task_table, "status-message",
+ G_CALLBACK (e_cal_shell_view_taskpad_set_status_message),
+ cal_shell_view);
+
+ if (task_table)
+ g_signal_connect_swapped (
+ task_table, "selection-change",
+ G_CALLBACK (e_cal_shell_view_taskpad_actions_update),
+ cal_shell_view);
e_categories_add_change_hook (
(GHookFunc) e_cal_shell_view_update_search_filter,
diff --git a/modules/calendar/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c
index cd44f37..5df2806 100644
--- a/modules/calendar/e-cal-shell-view.c
+++ b/modules/calendar/e-cal-shell-view.c
@@ -303,6 +303,36 @@ cal_shell_view_update_actions (EShellView *shell_view)
shell_window = e_shell_view_get_shell_window (shell_view);
+ if(e_shell_get_express_mode(e_shell_get_default())) {
+ GtkWidget *widget, *item;
+ GdkScreen *scr;
+ gint monitor;
+ GdkRectangle rect;
+
+ /* Hack: Get rid of New and Send/Receive in toolbar
+ * while in express mode */
+ widget = e_shell_window_get_managed_widget (
+ shell_window, "/main-toolbar");
+
+ item = (GtkWidget *)gtk_toolbar_get_nth_item ((GtkToolbar *)widget, 0);
+ gtk_widget_hide(item);
+
+ widget = e_shell_window_get_managed_widget (
+ shell_window, "/main-menu");
+ gtk_widget_hide(widget);
+
+ item = e_shell_window_get_managed_widget (
+ shell_window, "/main-toolbar/send-receive");
+ gtk_widget_hide(item);
+
+ scr = gdk_screen_get_default ();
+ monitor = gdk_screen_get_monitor_at_window (scr, GTK_WIDGET (shell_window)->window);
+ gdk_screen_get_monitor_geometry (scr, monitor, &rect);
+
+ gtk_window_set_default_size ((GtkWindow *)shell_window, rect.width, rect.height);
+ gtk_window_set_decorated ((GtkWindow *)shell_window, FALSE);
+
+ }
cal_shell_content = priv->cal_shell_content;
calendar = e_cal_shell_content_get_calendar (cal_shell_content);
view_type = gnome_calendar_get_view (calendar);
diff --git a/ui/evolution-calendars.ui b/ui/evolution-calendars.ui
index feef83d..d3ef98a 100644
--- a/ui/evolution-calendars.ui
+++ b/ui/evolution-calendars.ui
@@ -28,20 +28,34 @@
</placeholder>
</menubar>
<toolbar name='main-toolbar'>
+<!-- if !EXPRESS -->
<toolitem action='calendar-print'/>
<toolitem action='delete-selection'/>
<separator/>
+<!-- endif -->
<toolitem action='calendar-go-back'/>
<toolitem action='calendar-go-today'/>
<toolitem action='calendar-go-forward'/>
+<!-- if !EXPRESS -->
<separator/>
<toolitem action='calendar-jump-to'/>
+<!-- endif -->
<separator/>
<toolitem action='calendar-view-day'/>
<toolitem action='calendar-view-workweek'/>
+<!-- if !EXPRESS -->
<toolitem action='calendar-view-week'/>
+<!-- endif -->
+
<toolitem action='calendar-view-month'/>
+<!-- if !EXPRESS -->
<toolitem action='calendar-view-list'/>
+<!-- endif -->
+<!-- if EXPRESS -->
+ <separator expand="true"/>
+ <toolitem action='quit-calendar'/>
+<!-- endif -->
+
</toolbar>
<popup name='calendar-popup'>
<menuitem action='calendar-new'/>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]