aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-03-20 08:32:47 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-03-20 23:49:46 +0800
commit8ffcfb4e106bb0081714455239cfe13a524c365f (patch)
tree4b024139c27a0c44ec915ad531058b834ca6adcb /calendar/gui/dialogs
parent7c51d1c1a631a4a8daf26dd44a0aed41eb4726e0 (diff)
downloadgsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.tar
gsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.tar.gz
gsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.tar.bz2
gsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.tar.lz
gsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.tar.xz
gsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.tar.zst
gsoc2013-evolution-8ffcfb4e106bb0081714455239cfe13a524c365f.zip
Add extensions to configure calender widgets.
Make ECalendarItem, ECalendarView, ECalModel, EDateEdit, EMeetingStore, and EMeetingTimeSelector extensible and register extensions to automatically bind every instance to the appropriate EShellSettings.
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/comp-editor-util.c26
-rw-r--r--calendar/gui/dialogs/comp-editor-util.h6
-rw-r--r--calendar/gui/dialogs/event-editor.c13
-rw-r--r--calendar/gui/dialogs/event-page.c2
-rw-r--r--calendar/gui/dialogs/memo-page.c1
-rw-r--r--calendar/gui/dialogs/recurrence-page.c34
-rw-r--r--calendar/gui/dialogs/schedule-page.c16
-rw-r--r--calendar/gui/dialogs/task-details-page.c1
-rw-r--r--calendar/gui/dialogs/task-editor.c13
-rw-r--r--calendar/gui/dialogs/task-page.c2
10 files changed, 5 insertions, 109 deletions
diff --git a/calendar/gui/dialogs/comp-editor-util.c b/calendar/gui/dialogs/comp-editor-util.c
index 271ac5a8cc..cd16b46974 100644
--- a/calendar/gui/dialogs/comp-editor-util.c
+++ b/calendar/gui/dialogs/comp-editor-util.c
@@ -209,7 +209,6 @@ comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label)
/**
* 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
@@ -221,15 +220,12 @@ comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label)
* Return value: A newly-created #EDateEdit widget.
**/
GtkWidget *
-comp_editor_new_date_edit (EShellSettings *shell_settings,
- gboolean show_date,
+comp_editor_new_date_edit (gboolean show_date,
gboolean show_time,
gboolean make_time_insensitive)
{
EDateEdit *dedit;
- g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL);
-
dedit = E_DATE_EDIT (e_date_edit_new ());
e_date_edit_set_show_date (dedit, show_date);
@@ -240,29 +236,9 @@ comp_editor_new_date_edit (EShellSettings *shell_settings,
e_date_edit_set_make_time_insensitive (dedit, FALSE);
#endif
- comp_editor_bind_date_edit_settings (GTK_WIDGET (dedit), shell_settings);
-
return GTK_WIDGET (dedit);
}
-void
-comp_editor_bind_date_edit_settings (GtkWidget *dateedit, EShellSettings *shell_settings)
-{
- g_return_if_fail (dateedit != NULL);
- g_return_if_fail (E_IS_DATE_EDIT (dateedit));
-
- if (!shell_settings)
- shell_settings = e_shell_get_shell_settings (e_shell_get_default ());
-
- e_binding_new (
- shell_settings, "cal-show-week-numbers",
- dateedit, "show-week-numbers");
-
- e_binding_new (
- shell_settings, "cal-week-start-day",
- dateedit, "week-start-day");
-}
-
/* Returns the current time, for EDateEdit widgets and ECalendar items in the
dialogs.
FIXME: Should probably use the timezone from somewhere in the component
diff --git a/calendar/gui/dialogs/comp-editor-util.h b/calendar/gui/dialogs/comp-editor-util.h
index 78a8bab33f..6eeb8c5410 100644
--- a/calendar/gui/dialogs/comp-editor-util.h
+++ b/calendar/gui/dialogs/comp-editor-util.h
@@ -26,7 +26,6 @@
#define _COMP_EDITOR_UTIL_H_
#include <gtk/gtk.h>
-#include <shell/e-shell-settings.h>
#include "comp-editor-page.h"
#include "../e-meeting-attendee.h"
@@ -35,13 +34,10 @@ void comp_editor_free_dates (CompEditorPageDates *dates);
void comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label);
-GtkWidget * comp_editor_new_date_edit (EShellSettings *shell_settings,
- gboolean show_date,
+GtkWidget * comp_editor_new_date_edit (gboolean show_date,
gboolean show_time,
gboolean make_time_insensitive);
-void comp_editor_bind_date_edit_settings (GtkWidget *dateedit, EShellSettings *shell_settings);
-
struct tm comp_editor_get_current_time (GtkObject *object, gpointer data);
gchar *comp_editor_strip_categories (const gchar *categories);
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c
index 23256adff0..1a5f6d67fd 100644
--- a/calendar/gui/dialogs/event-editor.c
+++ b/calendar/gui/dialogs/event-editor.c
@@ -363,25 +363,12 @@ static void
event_editor_constructed (GObject *object)
{
EventEditorPrivate *priv;
- EShellSettings *shell_settings;
- EShell *shell;
priv = EVENT_EDITOR_GET_PRIVATE (object);
- shell = comp_editor_get_shell (COMP_EDITOR (object));
- shell_settings = e_shell_get_shell_settings (shell);
-
e_binding_new (
object, "client",
priv->model, "client");
-
- e_binding_new (
- shell_settings, "cal-free-busy-template",
- priv->model, "free-busy-template");
-
- e_binding_new (
- shell_settings, "cal-timezone",
- priv->model, "timezone");
}
static void
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 7d79a2bfb7..a74cb64991 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -2219,7 +2219,6 @@ get_widgets (EventPage *epage)
/* Glade's visibility flag doesn't seem to work for custom widgets */
priv->start_time = GW ("start-time");
- comp_editor_bind_date_edit_settings (priv->start_time, NULL);
gtk_widget_show (priv->start_time);
priv->time_hour = GW ("time-hour");
@@ -2228,7 +2227,6 @@ get_widgets (EventPage *epage)
priv->end_time_combo = GW ("end-time-combobox");
priv->end_time = GW ("end-time");
- comp_editor_bind_date_edit_settings (priv->end_time, NULL);
gtk_widget_show_all (priv->time_hour);
gtk_widget_hide (priv->end_time);
diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c
index f5c6a26400..269caba5d6 100644
--- a/calendar/gui/dialogs/memo-page.c
+++ b/calendar/gui/dialogs/memo-page.c
@@ -813,7 +813,6 @@ get_widgets (MemoPage *mpage)
#undef GW
e_util_set_source_combo_box_list (priv->source_selector, "/apps/evolution/memos/sources");
- comp_editor_bind_date_edit_settings (priv->start_date, NULL);
completion = e_category_completion_new ();
gtk_entry_set_completion (GTK_ENTRY (priv->categories), completion);
diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c
index 6bb9f18e28..833ad104e3 100644
--- a/calendar/gui/dialogs/recurrence-page.c
+++ b/calendar/gui/dialogs/recurrence-page.c
@@ -1339,8 +1339,6 @@ static void
make_ending_until_special (RecurrencePage *rpage)
{
RecurrencePagePrivate *priv = rpage->priv;
- EShell *shell;
- EShellSettings *shell_settings;
CompEditor *editor;
CompEditorFlags flags;
EDateEdit *de;
@@ -1352,13 +1350,9 @@ 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 (
- shell_settings, TRUE, FALSE, FALSE);
+ priv->ending_date_edit = comp_editor_new_date_edit (TRUE, FALSE, FALSE);
de = E_DATE_EDIT (priv->ending_date_edit);
gtk_container_add (GTK_CONTAINER (priv->ending_special),
@@ -2087,14 +2081,10 @@ 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),
@@ -2103,7 +2093,7 @@ create_exception_dialog (RecurrencePage *rpage, const gchar *title, GtkWidget **
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
NULL);
- *date_edit = comp_editor_new_date_edit (shell_settings, TRUE, FALSE, TRUE);
+ *date_edit = comp_editor_new_date_edit (TRUE, FALSE, TRUE);
gtk_widget_show (*date_edit);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), *date_edit, FALSE, TRUE, 6);
@@ -2259,8 +2249,6 @@ static void
init_widgets (RecurrencePage *rpage)
{
RecurrencePagePrivate *priv;
- EShell *shell;
- EShellSettings *shell_settings;
CompEditor *editor;
ECalendar *ecal;
GtkAdjustment *adj;
@@ -2270,22 +2258,12 @@ 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);
- e_binding_new (
- shell_settings, "cal-show-week-numbers",
- ecal->calitem, "show-week-numbers");
-
- e_binding_new (
- shell_settings, "cal-week-start-day",
- ecal->calitem, "week-start-day");
-
g_signal_connect((ecal->calitem), "date_range_changed",
G_CALLBACK (preview_date_range_changed_cb),
rpage);
@@ -2422,12 +2400,6 @@ GtkWidget *make_exdate_date_edit (void);
GtkWidget *
make_exdate_date_edit (void)
{
- 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);
+ return comp_editor_new_date_edit (TRUE, TRUE, FALSE);
}
diff --git a/calendar/gui/dialogs/schedule-page.c b/calendar/gui/dialogs/schedule-page.c
index 32b6dffab8..2e13cba1b9 100644
--- a/calendar/gui/dialogs/schedule-page.c
+++ b/calendar/gui/dialogs/schedule-page.c
@@ -380,13 +380,9 @@ SchedulePage *
schedule_page_construct (SchedulePage *spage, EMeetingStore *ems)
{
SchedulePagePrivate *priv = spage->priv;
- EShellSettings *shell_settings;
- EShell *shell;
CompEditor *editor;
editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (spage));
- shell = comp_editor_get_shell (editor);
- shell_settings = e_shell_get_shell_settings (shell);
priv->builder = gtk_builder_new ();
e_load_ui_builder_definition (priv->builder, "schedule-page.ui");
@@ -412,18 +408,6 @@ schedule_page_construct (SchedulePage *spage, EMeetingStore *ems)
gtk_widget_show (GTK_WIDGET (priv->sel));
gtk_box_pack_start (GTK_BOX (priv->main), GTK_WIDGET (priv->sel), TRUE, TRUE, 6);
- e_binding_new (
- shell_settings, "cal-show-week-numbers",
- priv->sel, "show-week-numbers");
-
- e_binding_new (
- shell_settings, "cal-use-24-hour-format",
- priv->sel, "use-24-hour-format");
-
- e_binding_new (
- shell_settings, "cal-week-start-day",
- priv->sel, "week-start-day");
-
if (!init_widgets (spage)) {
g_message ("schedule_page_construct(): "
"Could not initialize the widgets!");
diff --git a/calendar/gui/dialogs/task-details-page.c b/calendar/gui/dialogs/task-details-page.c
index 4a5b5b094e..c549633eb5 100644
--- a/calendar/gui/dialogs/task-details-page.c
+++ b/calendar/gui/dialogs/task-details-page.c
@@ -474,7 +474,6 @@ get_widgets (TaskDetailsPage *tdpage)
priv->date_completed_label = GW ("date_completed_label");
priv->completed_date = GW ("completed-date");
- comp_editor_bind_date_edit_settings (priv->completed_date, NULL);
gtk_widget_show (priv->completed_date);
priv->url_label = GW ("url_label");
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c
index a3d4baec46..7aaa3c5afe 100644
--- a/calendar/gui/dialogs/task-editor.c
+++ b/calendar/gui/dialogs/task-editor.c
@@ -202,25 +202,12 @@ static void
task_editor_constructed (GObject *object)
{
TaskEditorPrivate *priv;
- EShellSettings *shell_settings;
- EShell *shell;
priv = TASK_EDITOR_GET_PRIVATE (object);
- shell = comp_editor_get_shell (COMP_EDITOR (object));
- shell_settings = e_shell_get_shell_settings (shell);
-
e_binding_new (
object, "client",
priv->model, "client");
-
- e_binding_new (
- shell_settings, "cal-free-busy-template",
- priv->model, "free-busy-template");
-
- e_binding_new (
- shell_settings, "cal-timezone",
- priv->model, "timezone");
}
static void
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index 33413250ad..623260cf46 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -1360,10 +1360,8 @@ get_widgets (TaskPage *tpage)
/* Glade's visibility flag doesn't seem to work for custom widgets */
priv->due_date = e_builder_get_widget (priv->builder, "due-date");
- comp_editor_bind_date_edit_settings (priv->due_date, NULL);
gtk_widget_show (priv->due_date);
priv->start_date = e_builder_get_widget (priv->builder, "start-date");
- comp_editor_bind_date_edit_settings (priv->start_date, NULL);
gtk_widget_show (priv->start_date);
priv->timezone = e_builder_get_widget (priv->builder, "timezone");