aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-08-01 19:29:41 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-08-06 04:13:02 +0800
commitde85e3c7862100da10fe860aef2b651245a1fdbf (patch)
treedd4a3482966c041a80c9798d45b73f5fe986dad6 /calendar/gui/dialogs
parentfac731e7359c978ff730d48f9ab88a5794450206 (diff)
downloadgsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar
gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar.gz
gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar.bz2
gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar.lz
gsoc2013-evolution-de85e3c7862100da10fe860aef2b651245a1fdbf.tar.xz
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.c293
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.h4
-rw-r--r--calendar/gui/dialogs/comp-editor-util.c30
-rw-r--r--calendar/gui/dialogs/comp-editor-util.h7
-rw-r--r--calendar/gui/dialogs/event-page.c8
-rw-r--r--calendar/gui/dialogs/memo-page.c7
-rw-r--r--calendar/gui/dialogs/recurrence-page.c51
-rw-r--r--calendar/gui/dialogs/task-details-page.c7
-rw-r--r--calendar/gui/dialogs/task-page.c7
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;