diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-08-01 19:29:41 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-06 04:13:02 +0800 |
commit | de85e3c7862100da10fe860aef2b651245a1fdbf (patch) | |
tree | dd4a3482966c041a80c9798d45b73f5fe986dad6 /calendar/gui/dialogs | |
parent | fac731e7359c978ff730d48f9ab88a5794450206 (diff) | |
download | gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar.gz gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar.zst gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.zip |
Replace more "config" classes with property bindings.
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/cal-prefs-dialog.c | 293 | ||||
-rw-r--r-- | calendar/gui/dialogs/cal-prefs-dialog.h | 4 | ||||
-rw-r--r-- | calendar/gui/dialogs/comp-editor-util.c | 30 | ||||
-rw-r--r-- | calendar/gui/dialogs/comp-editor-util.h | 7 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-page.c | 8 | ||||
-rw-r--r-- | calendar/gui/dialogs/memo-page.c | 7 | ||||
-rw-r--r-- | calendar/gui/dialogs/recurrence-page.c | 51 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-details-page.c | 7 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-page.c | 7 |
9 files changed, 200 insertions, 214 deletions
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c index 09f6d104b6..5c56d69007 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.c +++ b/calendar/gui/dialogs/cal-prefs-dialog.c @@ -37,10 +37,6 @@ #include <glib/gi18n.h> #include <string.h> -static const gint week_start_day_map[] = { - 1, 2, 3, 4, 5, 6, 0, -1 -}; - static const gint time_division_map[] = { 60, 30, 15, 10, 5, -1 }; @@ -99,22 +95,6 @@ eccp_widget_glade (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget } static void -working_days_changed (GtkWidget *widget, CalendarPrefsDialog *prefs) -{ - CalWeekdays working_days = 0; - guint32 mask = 1; - gint day; - - for (day = 0; day < 7; day++) { - if (e_dialog_toggle_get (prefs->working_days[day])) - working_days |= mask; - mask <<= 1; - } - - calendar_config_set_working_days (working_days); -} - -static void timezone_changed (GtkWidget *widget, CalendarPrefsDialog *prefs) { icaltimezone *zone; @@ -268,27 +248,6 @@ end_of_day_changed (GtkWidget *widget, CalendarPrefsDialog *prefs) calendar_config_set_day_end_hour (end_hour); calendar_config_set_day_end_minute (end_minute); } -static void -week_start_day_changed (GtkWidget *widget, CalendarPrefsDialog *prefs) -{ - gint week_start_day; - - week_start_day = e_dialog_combo_box_get (prefs->week_start_day, week_start_day_map); - calendar_config_set_week_start_day (week_start_day); -} - -static void -use_24_hour_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) -{ - gboolean use_24_hour; - - use_24_hour = gtk_toggle_button_get_active (toggle); - - e_date_edit_set_use_24_hour_format (E_DATE_EDIT (prefs->start_of_day), use_24_hour); - e_date_edit_set_use_24_hour_format (E_DATE_EDIT (prefs->end_of_day), use_24_hour); - - calendar_config_set_24_hour_format (use_24_hour); -} static void time_divisions_changed (GtkWidget *widget, CalendarPrefsDialog *prefs) @@ -300,30 +259,6 @@ time_divisions_changed (GtkWidget *widget, CalendarPrefsDialog *prefs) } static void -show_end_times_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) -{ - calendar_config_set_show_event_end (gtk_toggle_button_get_active (toggle)); -} - -static void -compress_weekend_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) -{ - calendar_config_set_compress_weekend (gtk_toggle_button_get_active (toggle)); -} - -static void -dnav_show_week_no_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) -{ - calendar_config_set_dnav_show_week_no (gtk_toggle_button_get_active (toggle)); -} - -static void -dview_show_week_no_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) -{ - calendar_config_set_dview_show_week_no (gtk_toggle_button_get_active (toggle)); -} - -static void month_scroll_by_week_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) { calendar_config_set_month_scroll_by_week (gtk_toggle_button_get_active (toggle)); @@ -356,30 +291,6 @@ hide_completed_tasks_units_changed (GtkWidget *widget, CalendarPrefsDialog *pref } static void -tasks_due_today_set_color (GtkColorButton *color_button, CalendarPrefsDialog *prefs) -{ - GdkColor color; - - gtk_color_button_get_color (color_button, &color); - calendar_config_set_tasks_due_today_color (&color); -} - -static void -tasks_overdue_set_color (GtkColorButton *color_button, CalendarPrefsDialog *prefs) -{ - GdkColor color; - - gtk_color_button_get_color (color_button, &color); - calendar_config_set_tasks_overdue_color (&color); -} - -static void -confirm_delete_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) -{ - calendar_config_set_confirm_delete (gtk_toggle_button_get_active (toggle)); -} - -static void default_reminder_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs) { calendar_config_set_use_default_reminder (gtk_toggle_button_get_active (toggle)); @@ -516,27 +427,14 @@ update_system_tz_widgets (EShellSettings *shell_settings, static void setup_changes (CalendarPrefsDialog *prefs) { - gint i; - - for (i = 0; i < 7; i ++) - g_signal_connect (G_OBJECT (prefs->working_days[i]), "toggled", G_CALLBACK (working_days_changed), prefs); - g_signal_connect (G_OBJECT (prefs->timezone), "changed", G_CALLBACK (timezone_changed), prefs); g_signal_connect (G_OBJECT (prefs->day_second_zone), "clicked", G_CALLBACK (day_second_zone_clicked), prefs); g_signal_connect (G_OBJECT (prefs->start_of_day), "changed", G_CALLBACK (start_of_day_changed), prefs); g_signal_connect (G_OBJECT (prefs->end_of_day), "changed", G_CALLBACK (end_of_day_changed), prefs); - g_signal_connect (G_OBJECT (prefs->week_start_day), "changed", G_CALLBACK (week_start_day_changed), prefs); - - g_signal_connect (G_OBJECT (prefs->use_24_hour), "toggled", G_CALLBACK (use_24_hour_toggled), prefs); - g_signal_connect (G_OBJECT (prefs->time_divisions), "changed", G_CALLBACK (time_divisions_changed), prefs); - g_signal_connect (G_OBJECT (prefs->show_end_times), "toggled", G_CALLBACK (show_end_times_toggled), prefs); - g_signal_connect (G_OBJECT (prefs->compress_weekend), "toggled", G_CALLBACK (compress_weekend_toggled), prefs); - g_signal_connect (G_OBJECT (prefs->dnav_show_week_no), "toggled", G_CALLBACK (dnav_show_week_no_toggled), prefs); - g_signal_connect (G_OBJECT (prefs->dview_show_week_no), "toggled", G_CALLBACK (dview_show_week_no_toggled), prefs); g_signal_connect (G_OBJECT (prefs->month_scroll_by_week), "toggled", G_CALLBACK (month_scroll_by_week_toggled), prefs); g_signal_connect (G_OBJECT (prefs->tasks_hide_completed), "toggled", @@ -544,12 +442,7 @@ setup_changes (CalendarPrefsDialog *prefs) g_signal_connect (G_OBJECT (prefs->tasks_hide_completed_interval), "value-changed", G_CALLBACK (hide_completed_tasks_changed), prefs); g_signal_connect (G_OBJECT (prefs->tasks_hide_completed_units), "changed", G_CALLBACK (hide_completed_tasks_units_changed), prefs); - g_signal_connect (G_OBJECT (prefs->tasks_due_today_color), "color-set", - G_CALLBACK (tasks_due_today_set_color), prefs); - g_signal_connect (G_OBJECT (prefs->tasks_overdue_color), "color-set", - G_CALLBACK (tasks_overdue_set_color), prefs); - g_signal_connect (G_OBJECT (prefs->confirm_delete), "toggled", G_CALLBACK (confirm_delete_toggled), prefs); g_signal_connect (G_OBJECT (prefs->default_reminder), "toggled", G_CALLBACK (default_reminder_toggled), prefs); g_signal_connect (G_OBJECT (prefs->default_reminder_interval), "changed", G_CALLBACK (default_reminder_interval_changed), prefs); @@ -582,19 +475,9 @@ show_fb_config (CalendarPrefsDialog *prefs) static void show_task_list_config (CalendarPrefsDialog *prefs) { - GtkColorButton *color_button; - GdkColor color; CalUnits units; gboolean hide_completed_tasks; - color_button = GTK_COLOR_BUTTON (prefs->tasks_due_today_color); - calendar_config_get_tasks_due_today_color (&color); - gtk_color_button_set_color (color_button, &color); - - color_button = GTK_COLOR_BUTTON (prefs->tasks_overdue_color); - calendar_config_get_tasks_overdue_color (&color); - gtk_color_button_set_color (color_button, &color); - /* Hide Completed Tasks. */ hide_completed_tasks = calendar_config_get_hide_completed_tasks (); e_dialog_toggle_set (prefs->tasks_hide_completed, hide_completed_tasks); @@ -652,8 +535,7 @@ show_alarms_config (CalendarPrefsDialog *prefs) static void show_config (CalendarPrefsDialog *prefs) { - CalWeekdays working_days; - gint mask, day, week_start_day, time_divisions; + gint mask, day, time_divisions; icaltimezone *zone; gboolean sensitive, set = FALSE; gchar *location; @@ -672,50 +554,16 @@ show_config (CalendarPrefsDialog *prefs) /* Day's second zone */ update_day_second_zone_caption (prefs); - /* Working Days. */ - working_days = calendar_config_get_working_days (); - mask = 1 << 0; - for (day = 0; day < 7; day++) { - e_dialog_toggle_set (prefs->working_days[day], (working_days & mask) ? TRUE : FALSE); - mask <<= 1; - } - - /* Week Start Day. */ - week_start_day = calendar_config_get_week_start_day (); - e_dialog_combo_box_set (prefs->week_start_day, week_start_day, week_start_day_map); - /* Start of Day. */ e_date_edit_set_time_of_day (E_DATE_EDIT (prefs->start_of_day), calendar_config_get_day_start_hour (), calendar_config_get_day_start_minute ()); /* End of Day. */ e_date_edit_set_time_of_day (E_DATE_EDIT (prefs->end_of_day), calendar_config_get_day_end_hour (), calendar_config_get_day_end_minute ()); - /* 12/24 Hour Format. */ - if (calendar_config_get_24_hour_format ()) - e_dialog_toggle_set (prefs->use_24_hour, TRUE); - else - e_dialog_toggle_set (prefs->use_12_hour, TRUE); - - sensitive = calendar_config_locale_supports_12_hour_format (); - gtk_widget_set_sensitive (prefs->use_12_hour, sensitive); - gtk_widget_set_sensitive (prefs->use_24_hour, sensitive); - /* Time Divisions. */ time_divisions = calendar_config_get_time_divisions (); e_dialog_combo_box_set (prefs->time_divisions, time_divisions, time_division_map); - /* Show Appointment End Times. */ - e_dialog_toggle_set (prefs->show_end_times, calendar_config_get_show_event_end ()); - - /* Compress Weekend. */ - e_dialog_toggle_set (prefs->compress_weekend, calendar_config_get_compress_weekend ()); - - /* Date Navigator - Show Week Numbers. */ - e_dialog_toggle_set (prefs->dnav_show_week_no, calendar_config_get_dnav_show_week_no ()); - - /* Day/Work Week view - Show Week Number. */ - e_dialog_toggle_set (prefs->dview_show_week_no, calendar_config_get_dview_show_week_no ()); - /* Month View - Scroll by a week */ e_dialog_toggle_set (prefs->month_scroll_by_week, calendar_config_get_month_scroll_by_week ()); @@ -729,7 +577,6 @@ show_config (CalendarPrefsDialog *prefs) show_fb_config (prefs); /* Other page */ - e_dialog_toggle_set (prefs->confirm_delete, calendar_config_get_confirm_delete ()); e_dialog_toggle_set (prefs->default_reminder, calendar_config_get_use_default_reminder ()); e_dialog_spin_set (prefs->default_reminder_interval, calendar_config_get_default_reminder_interval ()); e_dialog_combo_box_set (prefs->default_reminder_units, calendar_config_get_default_reminder_units (), default_reminder_units_map); @@ -771,23 +618,18 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs, ECalConfig *ec; ECalConfigTargetPrefs *target; EShellSettings *shell_settings; + gboolean locale_supports_12_hour_format; gint i; GtkWidget *toplevel; GtkWidget *widget; GSList *l; - const gchar *working_day_names[] = { - "sun_button", - "mon_button", - "tue_button", - "wed_button", - "thu_button", - "fri_button", - "sat_button", - }; gchar *gladefile; shell_settings = e_shell_get_shell_settings (shell); + locale_supports_12_hour_format = + calendar_config_locale_supports_12_hour_format (); + gladefile = g_build_filename (EVOLUTION_GLADEDIR, "cal-prefs-dialog.glade", NULL); @@ -828,14 +670,78 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs, prefs->system_tz_label = glade_xml_get_widget (gui, "system-tz-label"); prefs->timezone = glade_xml_get_widget (gui, "timezone"); prefs->day_second_zone = glade_xml_get_widget (gui, "day_second_zone"); - for (i = 0; i < 7; i++) - prefs->working_days[i] = glade_xml_get_widget (gui, working_day_names[i]); - prefs->week_start_day = glade_xml_get_widget (gui, "week_start_day"); - prefs->start_of_day = glade_xml_get_widget (gui, "start_of_day"); - prefs->end_of_day = glade_xml_get_widget (gui, "end_of_day"); - prefs->use_12_hour = glade_xml_get_widget (gui, "use_12_hour"); - prefs->use_24_hour = glade_xml_get_widget (gui, "use_24_hour"); - prefs->confirm_delete = glade_xml_get_widget (gui, "confirm_delete"); + + widget = glade_xml_get_widget (gui, "sun_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-sunday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "mon_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-monday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "tue_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-tuesday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "wed_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-wednesday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "thu_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-thursday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "fri_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-friday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "sat_button"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-working-days-saturday", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "week_start_day"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-week-start-day", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "start_of_day"); + prefs->start_of_day = widget; /* XXX delete this */ + if (locale_supports_12_hour_format) + e_binding_new ( + G_OBJECT (shell_settings), "cal-use-24-hour-format", + G_OBJECT (widget), "use-24-hour-format"); + + widget = glade_xml_get_widget (gui, "end_of_day"); + prefs->end_of_day = widget; /* XXX delete this */ + if (locale_supports_12_hour_format) + e_binding_new ( + G_OBJECT (shell_settings), "cal-use-24-hour-format", + G_OBJECT (widget), "use-24-hour-format"); + + widget = glade_xml_get_widget (gui, "use_12_hour"); + gtk_widget_set_sensitive (widget, locale_supports_12_hour_format); + e_mutual_binding_new_with_negation ( + G_OBJECT (shell_settings), "cal-use-24-hour-format", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "use_24_hour"); + gtk_widget_set_sensitive (widget, locale_supports_12_hour_format); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-use-24-hour-format", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "confirm_delete"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-confirm-delete", + G_OBJECT (widget), "active"); + prefs->default_reminder = glade_xml_get_widget (gui, "default_reminder"); prefs->default_reminder_interval = glade_xml_get_widget (gui, "default_reminder_interval"); prefs->default_reminder_units = glade_xml_get_widget (gui, "default_reminder_units"); @@ -845,13 +751,45 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs, /* Display tab */ prefs->time_divisions = glade_xml_get_widget (gui, "time_divisions"); - prefs->show_end_times = glade_xml_get_widget (gui, "show_end_times"); - prefs->compress_weekend = glade_xml_get_widget (gui, "compress_weekend"); - prefs->dnav_show_week_no = glade_xml_get_widget (gui, "dnav_show_week_no"); - prefs->dview_show_week_no = glade_xml_get_widget (gui, "dview_show_week_no"); + + widget = glade_xml_get_widget (gui, "show_end_times"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-show-event-end-times", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "compress_weekend"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-compress-weekend", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "dnav_show_week_no"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-date-navigator-show-week-numbers", + G_OBJECT (widget), "active"); + + widget = glade_xml_get_widget (gui, "dview_show_week_no"); + e_mutual_binding_new ( + G_OBJECT (shell_settings), "cal-day-view-show-week-numbers", + G_OBJECT (widget), "active"); + prefs->month_scroll_by_week = glade_xml_get_widget (gui, "month_scroll_by_week"); - prefs->tasks_due_today_color = glade_xml_get_widget (gui, "tasks_due_today_color"); - prefs->tasks_overdue_color = glade_xml_get_widget (gui, "tasks_overdue_color"); + + widget = glade_xml_get_widget (gui, "tasks_due_today_color"); + e_mutual_binding_new_full ( + G_OBJECT (shell_settings), "cal-tasks-color-due-today", + G_OBJECT (widget), "color", + e_binding_transform_string_to_color, + e_binding_transform_color_to_string, + (GDestroyNotify) NULL, NULL); + + widget = glade_xml_get_widget (gui, "tasks_overdue_color"); + e_mutual_binding_new_full ( + G_OBJECT (shell_settings), "cal-tasks-color-overdue", + G_OBJECT (widget), "color", + e_binding_transform_string_to_color, + e_binding_transform_color_to_string, + (GDestroyNotify) NULL, NULL); + prefs->tasks_hide_completed = glade_xml_get_widget (gui, "tasks_hide_completed"); prefs->tasks_hide_completed_interval = glade_xml_get_widget (gui, "tasks_hide_completed_interval"); prefs->tasks_hide_completed_units = glade_xml_get_widget (gui, "tasks_hide_completed_units"); @@ -918,7 +856,6 @@ cal_prefs_dialog_create_time_edit (void) dedit = e_date_edit_new (); gtk_widget_show (GTK_WIDGET (dedit)); - e_date_edit_set_use_24_hour_format (E_DATE_EDIT (dedit), calendar_config_get_24_hour_format ()); e_date_edit_set_time_popup_range (E_DATE_EDIT (dedit), 0, 24); e_date_edit_set_show_date (E_DATE_EDIT (dedit), FALSE); diff --git a/calendar/gui/dialogs/cal-prefs-dialog.h b/calendar/gui/dialogs/cal-prefs-dialog.h index 0889a395bf..5d0a3716a6 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.h +++ b/calendar/gui/dialogs/cal-prefs-dialog.h @@ -69,8 +69,6 @@ struct _CalendarPrefsDialog { GtkWidget *week_start_day; GtkWidget *start_of_day; GtkWidget *end_of_day; - GtkWidget *use_12_hour; - GtkWidget *use_24_hour; GtkWidget *confirm_delete; GtkWidget *default_reminder; GtkWidget *default_reminder_interval; @@ -86,8 +84,6 @@ struct _CalendarPrefsDialog { GtkWidget *dnav_show_week_no; GtkWidget *dview_show_week_no; GtkWidget *month_scroll_by_week; - GtkWidget *tasks_due_today_color; - GtkWidget *tasks_overdue_color; GtkWidget *tasks_hide_completed; GtkWidget *tasks_hide_completed_interval; GtkWidget *tasks_hide_completed_units; diff --git a/calendar/gui/dialogs/comp-editor-util.c b/calendar/gui/dialogs/comp-editor-util.c index e330a7f9d4..cfe4139708 100644 --- a/calendar/gui/dialogs/comp-editor-util.c +++ b/calendar/gui/dialogs/comp-editor-util.c @@ -32,8 +32,9 @@ #include <glib/gi18n.h> #include <libedataserver/e-time-utils.h> #include <libecal/e-cal-time-util.h> +#include "e-util/e-binding.h" +#include "widgets/misc/e-dateedit.h" #include "../calendar-config.h" -#include "../e-date-edit-config.h" #include "comp-editor-util.h" @@ -204,16 +205,9 @@ comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label) gtk_label_set_text (GTK_LABEL (label), buffer); } -static void -date_edit_destroy_cb (EDateEdit *date_edit, gpointer data) -{ - EDateEditConfig *config = data; - - g_object_unref (config); -} - /** * comp_editor_new_date_edit: + * @shell_settings: an #EShellSettings * @show_date: Whether to show a date picker in the widget. * @show_time: Whether to show a time picker in the widget. * @make_time_insensitive: Whether the time field is made insensitive rather @@ -225,11 +219,14 @@ date_edit_destroy_cb (EDateEdit *date_edit, gpointer data) * Return value: A newly-created #EDateEdit widget. **/ GtkWidget * -comp_editor_new_date_edit (gboolean show_date, gboolean show_time, - gboolean make_time_insensitive) +comp_editor_new_date_edit (EShellSettings *shell_settings, + gboolean show_date, + gboolean show_time, + gboolean make_time_insensitive) { EDateEdit *dedit; - EDateEditConfig *config; + + g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL); dedit = E_DATE_EDIT (e_date_edit_new ()); @@ -241,8 +238,13 @@ comp_editor_new_date_edit (gboolean show_date, gboolean show_time, e_date_edit_set_make_time_insensitive (dedit, FALSE); #endif - config = e_date_edit_config_new (dedit); - g_signal_connect (G_OBJECT (dedit), "destroy", G_CALLBACK (date_edit_destroy_cb), config); + e_binding_new ( + G_OBJECT (shell_settings), "cal-date-navigator-show-week-numbers", + G_OBJECT (dedit), "show-week-numbers"); + + e_binding_new ( + G_OBJECT (shell_settings), "cal-week-start-day", + G_OBJECT (dedit), "week-start-day"); return GTK_WIDGET (dedit); } diff --git a/calendar/gui/dialogs/comp-editor-util.h b/calendar/gui/dialogs/comp-editor-util.h index c2b5a052a3..96638aabd0 100644 --- a/calendar/gui/dialogs/comp-editor-util.h +++ b/calendar/gui/dialogs/comp-editor-util.h @@ -26,6 +26,7 @@ #define _COMP_EDITOR_UTIL_H_ #include <gtk/gtk.h> +#include <shell/e-shell-settings.h> #include "comp-editor-page.h" void comp_editor_dates (CompEditorPageDates *date, ECalComponent *comp); @@ -33,8 +34,10 @@ void comp_editor_free_dates (CompEditorPageDates *dates); void comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label); -GtkWidget *comp_editor_new_date_edit (gboolean show_date, gboolean show_time, - gboolean make_time_insensitive); +GtkWidget * comp_editor_new_date_edit (EShellSettings *shell_settings, + gboolean show_date, + gboolean show_time, + gboolean make_time_insensitive); struct tm comp_editor_get_current_time (GtkObject *object, gpointer data); diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index ed31badd11..de62e687a8 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -3173,7 +3173,13 @@ GtkWidget *make_date_edit (void); GtkWidget * make_date_edit (void) { - return comp_editor_new_date_edit (TRUE, TRUE, TRUE); + EShell *shell; + EShellSettings *shell_settings; + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + return comp_editor_new_date_edit (shell_settings, TRUE, TRUE, TRUE); } GtkWidget *make_timezone_entry (void); diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c index 1edee08466..a510328af6 100644 --- a/calendar/gui/dialogs/memo-page.c +++ b/calendar/gui/dialogs/memo-page.c @@ -1201,9 +1201,14 @@ GtkWidget *memo_page_create_date_edit (void); GtkWidget * memo_page_create_date_edit (void) { + EShell *shell; + EShellSettings *shell_settings; GtkWidget *widget; - widget = comp_editor_new_date_edit (TRUE, FALSE, TRUE); + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + widget = comp_editor_new_date_edit (shell_settings, TRUE, FALSE, TRUE); e_date_edit_set_allow_no_date_set (E_DATE_EDIT (widget), TRUE); gtk_widget_show (widget); diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index 092a44db15..66f21522b5 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -34,6 +34,7 @@ #include <glib/gi18n.h> #include <glade/glade.h> #include <libedataserver/e-time-utils.h> +#include <e-util/e-binding.h> #include <e-util/e-dialog-widgets.h> #include <e-util/e-util-private.h> #include <misc/e-dateedit.h> @@ -44,7 +45,6 @@ #include "../weekday-picker.h" #include "comp-editor-util.h" #include "../e-date-time-list.h" -#include "../e-mini-calendar-config.h" #include "recurrence-page.h" #define RECURRENCE_PAGE_GET_PRIVATE(obj) \ @@ -186,7 +186,6 @@ struct _RecurrencePagePrivate { /* For the recurrence preview, the actual widget */ GtkWidget *preview_calendar; - EMiniCalendarConfig *preview_calendar_config; }; @@ -321,11 +320,6 @@ recurrence_page_dispose (GObject *object) priv->exception_list_store = NULL; } - if (priv->preview_calendar_config != NULL) { - g_object_unref (priv->preview_calendar_config); - priv->preview_calendar_config = NULL; - } - /* Chain up to parent's dispose() method. */ G_OBJECT_CLASS (recurrence_page_parent_class)->dispose (object); } @@ -1329,6 +1323,8 @@ static void make_ending_until_special (RecurrencePage *rpage) { RecurrencePagePrivate *priv = rpage->priv; + EShell *shell; + EShellSettings *shell_settings; CompEditor *editor; CompEditorFlags flags; EDateEdit *de; @@ -1340,10 +1336,13 @@ make_ending_until_special (RecurrencePage *rpage) editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (rpage)); flags = comp_editor_get_flags (editor); + shell = comp_editor_get_shell (editor); + shell_settings = e_shell_get_shell_settings (shell); + /* Create the widget */ - priv->ending_date_edit = comp_editor_new_date_edit (TRUE, FALSE, - FALSE); + priv->ending_date_edit = comp_editor_new_date_edit ( + shell_settings, TRUE, FALSE, FALSE); de = E_DATE_EDIT (priv->ending_date_edit); gtk_container_add (GTK_CONTAINER (priv->ending_special), @@ -2068,9 +2067,16 @@ create_exception_dialog (RecurrencePage *rpage, const gchar *title, GtkWidget ** { RecurrencePagePrivate *priv; GtkWidget *dialog, *toplevel; + CompEditor *editor; + EShell *shell; + EShellSettings *shell_settings; priv = rpage->priv; + editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (rpage)); + shell = comp_editor_get_shell (editor); + shell_settings = e_shell_get_shell_settings (shell); + toplevel = gtk_widget_get_toplevel (priv->main); dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW (toplevel), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, @@ -2078,7 +2084,7 @@ create_exception_dialog (RecurrencePage *rpage, const gchar *title, GtkWidget ** GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); - *date_edit = comp_editor_new_date_edit (TRUE, FALSE, TRUE); + *date_edit = comp_editor_new_date_edit (shell_settings, TRUE, FALSE, TRUE); gtk_widget_show (*date_edit); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), *date_edit, FALSE, TRUE, 6); @@ -2234,6 +2240,9 @@ static void init_widgets (RecurrencePage *rpage) { RecurrencePagePrivate *priv; + EShell *shell; + EShellSettings *shell_settings; + CompEditor *editor; ECalendar *ecal; GtkAdjustment *adj; GtkTreeViewColumn *column; @@ -2241,11 +2250,23 @@ init_widgets (RecurrencePage *rpage) priv = rpage->priv; + editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (rpage)); + shell = comp_editor_get_shell (editor); + shell_settings = e_shell_get_shell_settings (shell); + /* Recurrence preview */ priv->preview_calendar = e_calendar_new (); ecal = E_CALENDAR (priv->preview_calendar); - priv->preview_calendar_config = e_mini_calendar_config_new (ecal); + + e_binding_new ( + G_OBJECT (shell_settings), "cal-date-navigator-show-week-numbers", + G_OBJECT (ecal->calitem), "show-week-numbers"); + + e_binding_new ( + G_OBJECT (shell_settings), "cal-week-start-day", + G_OBJECT (ecal->calitem), "week-start-day"); + g_signal_connect((ecal->calitem), "date_range_changed", G_CALLBACK (preview_date_range_changed_cb), rpage); @@ -2392,6 +2413,12 @@ GtkWidget *make_exdate_date_edit (void); GtkWidget * make_exdate_date_edit (void) { - return comp_editor_new_date_edit (TRUE, TRUE, FALSE); + EShell *shell; + EShellSettings *shell_settings; + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + return comp_editor_new_date_edit (shell_settings, TRUE, TRUE, FALSE); } diff --git a/calendar/gui/dialogs/task-details-page.c b/calendar/gui/dialogs/task-details-page.c index e6104ee2d0..38faa99c0b 100644 --- a/calendar/gui/dialogs/task-details-page.c +++ b/calendar/gui/dialogs/task-details-page.c @@ -768,9 +768,14 @@ GtkWidget *task_details_page_create_date_edit (void); GtkWidget * task_details_page_create_date_edit (void) { + EShell *shell; + EShellSettings *shell_settings; GtkWidget *dedit; - dedit = comp_editor_new_date_edit (TRUE, TRUE, FALSE); + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + dedit = comp_editor_new_date_edit (shell_settings, TRUE, TRUE, FALSE); e_date_edit_set_allow_no_date_set (E_DATE_EDIT (dedit), TRUE); return dedit; diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c index 8a273c2944..08bcedc7e7 100644 --- a/calendar/gui/dialogs/task-page.c +++ b/calendar/gui/dialogs/task-page.c @@ -2150,9 +2150,14 @@ GtkWidget *task_page_create_date_edit (void); GtkWidget * task_page_create_date_edit (void) { + EShell *shell; + EShellSettings *shell_settings; GtkWidget *dedit; - dedit = comp_editor_new_date_edit (TRUE, TRUE, TRUE); + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + dedit = comp_editor_new_date_edit (shell_settings, TRUE, TRUE, TRUE); e_date_edit_set_allow_no_date_set (E_DATE_EDIT (dedit), TRUE); return dedit; |