[evolution/account-mgmt: 20/33] Adapt calendar/gui to the new ESource API.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/account-mgmt: 20/33] Adapt calendar/gui to the new ESource API.
- Date: Fri, 18 Mar 2011 01:53:41 +0000 (UTC)
commit 06ebf626db48390337c4dd46d73589c55b3c4583
Author: Matthew Barnes <mbarnes redhat com>
Date: Mon Dec 13 16:05:32 2010 -0500
Adapt calendar/gui to the new ESource API.
calendar/gui/alarm-notify/config-data.h | 1 -
calendar/gui/dialogs/Makefile.am | 3 -
calendar/gui/dialogs/calendar-setup.c | 608 ---------------------------
calendar/gui/dialogs/calendar-setup.h | 44 --
calendar/gui/dialogs/comp-editor.c | 4 +-
calendar/gui/dialogs/e-send-options-utils.c | 66 ++-
calendar/gui/dialogs/e-send-options-utils.h | 2 +-
calendar/gui/dialogs/event-page.c | 51 +--
calendar/gui/dialogs/event-page.ui | 1 +
calendar/gui/dialogs/memo-page.c | 59 +--
calendar/gui/dialogs/memo-page.ui | 1 +
calendar/gui/dialogs/select-source-dialog.c | 43 +--
calendar/gui/dialogs/task-page.c | 49 +--
calendar/gui/dialogs/task-page.ui | 1 +
calendar/gui/e-cal-component-preview.c | 2 +-
calendar/gui/e-cal-config.c | 2 +
calendar/gui/e-cal-event.c | 5 +-
calendar/gui/e-cal-event.h | 4 +-
calendar/gui/e-cal-model.c | 71 +++-
calendar/gui/e-cal-model.h | 5 +-
calendar/gui/e-calendar-selector.c | 45 +--
calendar/gui/e-calendar-selector.h | 3 +-
calendar/gui/e-calendar-view.c | 6 +-
calendar/gui/e-day-view.c | 2 +-
calendar/gui/e-meeting-list-view.c | 11 +-
calendar/gui/e-meeting-store.c | 17 +-
calendar/gui/e-memo-list-selector.c | 53 +--
calendar/gui/e-memo-list-selector.h | 3 +-
calendar/gui/e-task-list-selector.c | 53 +--
calendar/gui/e-task-list-selector.h | 3 +-
30 files changed, 217 insertions(+), 1001 deletions(-)
---
diff --git a/calendar/gui/alarm-notify/config-data.h b/calendar/gui/alarm-notify/config-data.h
index ae92217..d3c3718 100644
--- a/calendar/gui/alarm-notify/config-data.h
+++ b/calendar/gui/alarm-notify/config-data.h
@@ -30,7 +30,6 @@
#include <libical/ical.h>
#include <libecal/e-cal.h>
#include <gconf/gconf-client.h>
-#include <libedataserver/e-source-list.h>
GConfClient *config_data_get_conf_client (void);
diff --git a/calendar/gui/dialogs/Makefile.am b/calendar/gui/dialogs/Makefile.am
index 38e0c47..84efd57 100644
--- a/calendar/gui/dialogs/Makefile.am
+++ b/calendar/gui/dialogs/Makefile.am
@@ -25,7 +25,6 @@ ecalendarinclude_HEADERS = \
comp-editor.h \
alarm-dialog.h \
alarm-list-dialog.h \
- calendar-setup.h \
cancel-comp.h \
changed-comp.h \
comp-editor-util.h \
@@ -59,8 +58,6 @@ libcal_dialogs_la_SOURCES = \
alarm-dialog.h \
alarm-list-dialog.c \
alarm-list-dialog.h \
- calendar-setup.c \
- calendar-setup.h \
cancel-comp.c \
cancel-comp.h \
changed-comp.c \
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 1d6fa36..fd91da9 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -854,7 +854,7 @@ action_save_cb (GtkAction *action,
e_alert_submit (
E_ALERT_SINK (editor),
"calendar:prompt-read-only-cal-editor",
- e_source_peek_name (
+ e_source_get_display_name (
e_cal_get_source (priv->client)),
NULL);
return;
@@ -2076,7 +2076,7 @@ prompt_and_save_changes (CompEditor *editor, gboolean send)
e_alert_submit (
E_ALERT_SINK (editor),
"calendar:prompt-read-only-cal-editor",
- e_source_peek_name (
+ e_source_get_display_name (
e_cal_get_source (priv->client)),
NULL);
/* don't discard changes when selected readonly calendar */
diff --git a/calendar/gui/dialogs/e-send-options-utils.c b/calendar/gui/dialogs/e-send-options-utils.c
index b21352d..64402a3 100644
--- a/calendar/gui/dialogs/e-send-options-utils.c
+++ b/calendar/gui/dialogs/e-send-options-utils.c
@@ -23,32 +23,39 @@
*/
#include "e-send-options-utils.h"
+
#include <glib.h>
+#include <stdlib.h>
#include <string.h>
+#include <libedataserver/e-source-extension.h>
+
void
-e_send_options_utils_set_default_data (ESendOptionsDialog *sod, ESource *source, const gchar *type)
+e_send_options_utils_set_default_data (ESendOptionsDialog *sod,
+ ESource *source,
+ const gchar *type)
{
ESendOptionsGeneral *gopts = NULL;
ESendOptionsStatusTracking *sopts;
- GConfClient *gconf = gconf_client_get_default ();
- ESourceList *source_list;
- const gchar *uid;
- const gchar *value;
+ ESourceExtension *extension;
+ const gchar *extension_name;
+ gchar *value;
- gopts = sod->data->gopts;
- sopts = sod->data->sopts;
+ /* FIXME These is all GroupWise-specific settings.
+ * They absolutely do not belong here. */
- if (!strcmp (type, "calendar"))
- source_list = e_source_list_new_for_gconf (gconf, "/apps/evolution/calendar/sources");
- else
- source_list = e_source_list_new_for_gconf (gconf, "/apps/evolution/tasks/sources");
+ extension_name = "GroupWise Backend";
+
+ if (!e_source_has_extension (source, extension_name))
+ return;
+
+ extension = e_source_get_extension (source, extension_name);
- uid = e_source_peek_uid (source);
- source = e_source_list_peek_source_by_uid (source_list, uid);
+ gopts = sod->data->gopts;
+ sopts = sod->data->sopts;
/* priority */
- value = e_source_get_property (source, "priority");
+ g_object_get (extension, "priority", &value, NULL);
if (value) {
if (!strcmp (value, "high"))
gopts->priority = E_PRIORITY_HIGH;
@@ -59,8 +66,10 @@ e_send_options_utils_set_default_data (ESendOptionsDialog *sod, ESource *source,
else
gopts->priority = E_PRIORITY_UNDEFINED;
}
+ g_free (value);
+
/* Reply requested */
- value = e_source_get_property (source, "reply-requested");
+ g_object_get (extension, "reply-requested", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
gopts->reply_enabled = FALSE;
@@ -72,8 +81,10 @@ e_send_options_utils_set_default_data (ESendOptionsDialog *sod, ESource *source,
gopts->reply_within = i;
}
}
+ g_free (value);
+
/* Delay delivery */
- value = e_source_get_property (source, "delay-delivery");
+ g_object_get (extension, "delivery-delay", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
gopts->delay_enabled = FALSE;
@@ -82,8 +93,10 @@ e_send_options_utils_set_default_data (ESendOptionsDialog *sod, ESource *source,
gopts->delay_until = icaltime_as_timet (icaltime_from_string (value));
}
}
+ g_free (value);
+
/* Expiration Date */
- value = e_source_get_property (source, "expiration");
+ g_object_get (extension, "expiration", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
gopts->expiration_enabled = FALSE;
@@ -96,8 +109,10 @@ e_send_options_utils_set_default_data (ESendOptionsDialog *sod, ESource *source,
gopts->expire_after = i;
}
}
+ g_free (value);
+
/* status tracking */
- value = e_source_get_property (source, "status-tracking");
+ g_object_get (extension, "status-tracking", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
sopts->tracking_enabled = FALSE;
@@ -111,42 +126,45 @@ e_send_options_utils_set_default_data (ESendOptionsDialog *sod, ESource *source,
sopts->track_when = E_ALL;
}
}
+ g_free (value);
/* Return Notifications */
- value = e_source_get_property (source, "return-open");
+ g_object_get (extension, "return-open", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
sopts->opened = E_RETURN_NOTIFY_NONE;
else
sopts->opened = E_RETURN_NOTIFY_MAIL;
}
+ g_free (value);
- value = e_source_get_property (source, "return-accept");
+ g_object_get (extension, "return-accept", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
sopts->accepted = E_RETURN_NOTIFY_NONE;
else
sopts->accepted = E_RETURN_NOTIFY_MAIL;
}
+ g_free (value);
- value = e_source_get_property (source, "return-decline");
+ g_object_get (extension, "return-decline", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
sopts->declined = E_RETURN_NOTIFY_NONE;
else
sopts->declined = E_RETURN_NOTIFY_MAIL;
}
+ g_free (value);
- value = e_source_get_property (source, "return-complete");
+ g_object_get (extension, "return-complete", &value, NULL);
if (value) {
if (!strcmp (value, "none"))
sopts->completed = E_RETURN_NOTIFY_NONE;
else
sopts->completed = E_RETURN_NOTIFY_MAIL;
}
-
- g_object_unref (gconf);
+ g_free (value);
}
void
diff --git a/calendar/gui/dialogs/e-send-options-utils.h b/calendar/gui/dialogs/e-send-options-utils.h
index c1a63a2..3ec7542 100644
--- a/calendar/gui/dialogs/e-send-options-utils.h
+++ b/calendar/gui/dialogs/e-send-options-utils.h
@@ -27,7 +27,7 @@
#include "misc/e-send-options.h"
#include <libecal/e-cal-component.h>
-#include <libedataserver/e-source-list.h>
+#include <libedataserver/e-source.h>
void e_send_options_utils_set_default_data
(ESendOptionsDialog *sod,
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index f958353..44a37ac 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -97,7 +97,6 @@ struct _EventPagePrivate {
GtkWidget *info_hbox;
GtkWidget *info_icon;
GtkWidget *info_string;
- gchar *subscriber_info_text;
GtkWidget *summary;
GtkWidget *summary_label;
@@ -257,7 +256,6 @@ event_page_finalize (GObject *object)
g_ptr_array_free (priv->deleted_attendees, TRUE);
g_free (priv->old_summary);
- g_free (priv->subscriber_info_text);
priv->alarm_list_dlg_widget = NULL;
@@ -762,12 +760,11 @@ check_starts_in_the_past (EventPage *epage)
}
if (comp_editor_test_time_in_the_past (start_tt)) {
- gchar *tmp = g_strconcat ("<b>", _("Event's start time is in the past"), "</b>",
- priv->subscriber_info_text ? "\n" : "", priv->subscriber_info_text, NULL);
+ gchar *tmp = g_strconcat ("<b>", _("Event's start time is in the past"), "</b>", NULL);
event_page_set_info_string (epage, GTK_STOCK_DIALOG_WARNING, tmp);
g_free (tmp);
} else {
- event_page_set_info_string (epage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+ event_page_set_info_string (epage, NULL, NULL);
}
return TRUE;
@@ -811,7 +808,7 @@ sensitize_widgets (EventPage *epage)
event_page_set_info_string (epage, GTK_STOCK_DIALOG_INFO, tmp);
g_free (tmp);
} else if (!check_starts_in_the_past (epage)) {
- event_page_set_info_string (epage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+ event_page_set_info_string (epage, NULL, NULL);
}
alarm = e_dialog_combo_box_get (priv->alarm_time_combo, priv->alarm_map) != ALARM_NONE;
@@ -2299,8 +2296,6 @@ get_widgets (EventPage *epage)
priv->source_selector = GW ("source");
- e_util_set_source_combo_box_list (priv->source_selector, "/apps/evolution/calendar/sources");
-
completion = e_category_completion_new ();
gtk_entry_set_completion (GTK_ENTRY (priv->categories), completion);
g_object_unref (completion);
@@ -2652,7 +2647,7 @@ source_changed_cb (ESourceComboBox *source_combo_box, EventPage *epage)
dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
_("Unable to open the calendar '%s'."),
- e_source_peek_name (source));
+ e_source_get_display_name (source));
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
} else {
@@ -2683,26 +2678,8 @@ source_changed_cb (ESourceComboBox *source_combo_box, EventPage *epage)
static void
set_subscriber_info_string (EventPage *epage, const gchar *backend_address)
{
- CompEditor *editor;
- ECal *client;
- ESource *source;
-
- editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (epage));
- client = comp_editor_get_client (editor);
- source = e_cal_get_source (client);
-
- if (e_source_get_property (source, "subscriber")) {
- g_free (epage->priv->subscriber_info_text);
- /* Translators: This string is used when we are creating an Event
- (meeting or appointment) on behalf of some other user */
- epage->priv->subscriber_info_text = g_markup_printf_escaped (_("You are acting on behalf of %s"), backend_address);
- } else {
- g_free (epage->priv->subscriber_info_text);
- epage->priv->subscriber_info_text = NULL;
- }
-
if (!check_starts_in_the_past (epage))
- event_page_set_info_string (epage, epage->priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, epage->priv->subscriber_info_text);
+ event_page_set_info_string (epage, NULL, NULL);
}
static void
@@ -3097,32 +3074,18 @@ static void
event_page_select_organizer (EventPage *epage, const gchar *backend_address)
{
EventPagePrivate *priv = epage->priv;
- CompEditor *editor;
GList *l;
- ECal *client;
EAccount *def_account;
gchar *def_address = NULL;
const gchar *default_address;
gboolean subscribed_cal = FALSE;
- ESource *source = NULL;
- const gchar *user_addr = NULL;
+ const gchar *user_addr;
def_account = itip_addresses_get_default ();
if (def_account && def_account->enabled)
def_address = g_strdup_printf("%s <%s>", def_account->id->name, def_account->id->address);
- editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (epage));
- client = comp_editor_get_client (editor);
-
- if (client)
- source = e_cal_get_source (client);
- if (source)
- user_addr = e_source_get_property (source, "subscriber");
-
- if (user_addr)
- subscribed_cal = TRUE;
- else
- user_addr = (backend_address && *backend_address) ? backend_address : NULL;
+ user_addr = (backend_address && *backend_address) ? backend_address : NULL;
default_address = NULL;
if (user_addr)
diff --git a/calendar/gui/dialogs/event-page.ui b/calendar/gui/dialogs/event-page.ui
index 95f638d..1b7f5a3 100644
--- a/calendar/gui/dialogs/event-page.ui
+++ b/calendar/gui/dialogs/event-page.ui
@@ -789,6 +789,7 @@
</child>
<child>
<object class="ESourceComboBox" type-func="e_source_combo_box_get_type" id="source">
+ <property name="extension-name">Calendar</property>
<property name="visible">True</property>
</object>
<packing>
diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c
index 424b3e3..9af972b 100644
--- a/calendar/gui/dialogs/memo-page.c
+++ b/calendar/gui/dialogs/memo-page.c
@@ -69,7 +69,6 @@ struct _MemoPagePrivate {
GtkWidget *info_hbox;
GtkWidget *info_icon;
GtkWidget *info_string;
- gchar *subscriber_info_text;
/* Organizer */
GtkWidget *org_label;
@@ -162,8 +161,6 @@ memo_page_finalize (GObject *object)
priv->builder = NULL;
}
- g_free (priv->subscriber_info_text);
-
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (memo_page_parent_class)->finalize (object);
}
@@ -334,12 +331,11 @@ check_starts_in_the_past (MemoPage *mpage)
start_tt.is_date = TRUE;
if (e_date_edit_get_date (E_DATE_EDIT (priv->start_date), &start_tt.year, &start_tt.month, &start_tt.day) &&
comp_editor_test_time_in_the_past (start_tt)) {
- gchar *tmp = g_strconcat ("<b>", _("Memo's start date is in the past"), "</b>",
- priv->subscriber_info_text ? "\n" : "", priv->subscriber_info_text, NULL);
+ gchar *tmp = g_strconcat ("<b>", _("Memo's start date is in the past"), "</b>", NULL);
memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_WARNING, tmp);
g_free (tmp);
} else {
- memo_page_set_info_string (mpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+ memo_page_set_info_string (mpage, NULL, NULL);
}
return TRUE;
@@ -380,7 +376,7 @@ sensitize_widgets (MemoPage *mpage)
memo_page_set_info_string (mpage, GTK_STOCK_DIALOG_INFO, tmp);
g_free (tmp);
} else if (!check_starts_in_the_past (mpage)) {
- memo_page_set_info_string (mpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+ memo_page_set_info_string (mpage, NULL, NULL);
}
/* The list of organizers is set to be non-editable. Otherwise any
@@ -466,7 +462,7 @@ fill_comp_with_recipients (ENameSelector *name_selector, ECalComponent *comp)
ENameSelectorModel *model;
EContactStore *c_store;
GList *books, *l;
- gchar *uri = e_contact_get (contact, E_CONTACT_BOOK_URI);
+ gchar *uid = e_contact_get (contact, E_CONTACT_BOOK_URI);
dialog = e_name_selector_peek_dialog (name_selector);
model = e_name_selector_dialog_peek_model (dialog);
@@ -474,9 +470,11 @@ fill_comp_with_recipients (ENameSelector *name_selector, ECalComponent *comp)
books = e_contact_store_get_books (c_store);
for (l = books; l; l = l->next) {
- EBook *b = l->data;
- if (g_str_equal (uri, e_book_get_uri (b))) {
- book = b;
+ ESource *source;
+
+ source = e_book_get_source (l->data);
+ if (g_str_equal (uid, e_source_get_uid (source))) {
+ book = l->data;
break;
}
}
@@ -830,8 +828,6 @@ get_widgets (MemoPage *mpage)
priv->source_selector = GW ("source");
#undef GW
- e_util_set_source_combo_box_list (priv->source_selector, "/apps/evolution/memos/sources");
-
completion = e_category_completion_new ();
gtk_entry_set_completion (GTK_ENTRY (priv->categories), completion);
g_object_unref (completion);
@@ -890,7 +886,7 @@ source_changed_cb (ESourceComboBox *source_combo_box,
dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
_("Unable to open memos in '%s'."),
- e_source_peek_name (source));
+ e_source_get_display_name (source));
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
} else {
@@ -916,26 +912,8 @@ static void
set_subscriber_info_string (MemoPage *mpage,
const gchar *backend_address)
{
- CompEditor *editor;
- ECal *client;
- ESource *source;
-
- editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (mpage));
- client = comp_editor_get_client (editor);
- source = e_cal_get_source (client);
-
- if (e_source_get_property (source, "subscriber")) {
- g_free (mpage->priv->subscriber_info_text);
- /* Translators: This string is used when we are creating a Memo
- on behalf of some other user */
- mpage->priv->subscriber_info_text = g_markup_printf_escaped (_("You are acting on behalf of %s"), backend_address);
- } else {
- g_free (mpage->priv->subscriber_info_text);
- mpage->priv->subscriber_info_text = NULL;
- }
-
if (!check_starts_in_the_past (mpage))
- memo_page_set_info_string (mpage, mpage->priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, mpage->priv->subscriber_info_text);
+ memo_page_set_info_string (mpage, NULL, NULL);
}
static void
@@ -1073,13 +1051,11 @@ memo_page_select_organizer (MemoPage *mpage, const gchar *backend_address)
CompEditor *editor;
CompEditorFlags flags;
GList *l;
- ECal *client;
EAccount *def_account;
gchar *def_address = NULL;
const gchar *default_address;
gboolean subscribed_cal = FALSE;
- ESource *source = NULL;
- const gchar *user_addr = NULL;
+ const gchar *user_addr;
def_account = itip_addresses_get_default ();
if (def_account && def_account->enabled)
@@ -1087,18 +1063,9 @@ memo_page_select_organizer (MemoPage *mpage, const gchar *backend_address)
priv = mpage->priv;
editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (mpage));
- client = comp_editor_get_client (editor);
flags = comp_editor_get_flags (editor);
- if (client)
- source = e_cal_get_source (client);
- if (source)
- user_addr = e_source_get_property (source, "subscriber");
-
- if (user_addr)
- subscribed_cal = TRUE;
- else
- user_addr = (backend_address && *backend_address) ? backend_address : NULL;
+ user_addr = (backend_address && *backend_address) ? backend_address : NULL;
default_address = NULL;
if (user_addr)
diff --git a/calendar/gui/dialogs/memo-page.ui b/calendar/gui/dialogs/memo-page.ui
index f4ff70c..19509a1 100644
--- a/calendar/gui/dialogs/memo-page.ui
+++ b/calendar/gui/dialogs/memo-page.ui
@@ -186,6 +186,7 @@
<property name="spacing">0</property>
<child>
<object class="ESourceComboBox" type-func="e_source_combo_box_get_type" id="source">
+ <property name="extension-name">Memo List</property>
<property name="visible">True</property>
</object>
<packing>
diff --git a/calendar/gui/dialogs/select-source-dialog.c b/calendar/gui/dialogs/select-source-dialog.c
index 79905d5..5147b67 100644
--- a/calendar/gui/dialogs/select-source-dialog.c
+++ b/calendar/gui/dialogs/select-source-dialog.c
@@ -26,6 +26,7 @@
#endif
#include <glib/gi18n.h>
+#include <libecal/e-source-calendar.h>
#include <libedataserverui/e-source-selector-dialog.h>
#include "select-source-dialog.h"
@@ -38,26 +39,23 @@ ESource *
select_source_dialog (GtkWindow *parent, ECalSourceType obj_type, ESource *except_source)
{
GtkWidget *dialog;
- ESourceList *source_list;
+ ESourceRegistry *registry;
ESource *selected_source = NULL;
- const gchar *gconf_key;
- GConfClient *conf_client;
+ const gchar *extension_name;
const gchar *icon_name = NULL;
if (obj_type == E_CAL_SOURCE_TYPE_EVENT)
- gconf_key = "/apps/evolution/calendar/sources";
+ extension_name = E_SOURCE_EXTENSION_CALENDAR;
else if (obj_type == E_CAL_SOURCE_TYPE_TODO)
- gconf_key = "/apps/evolution/tasks/sources";
- else if (obj_type == E_CAL_SOURCE_TYPE_JOURNAL)
- gconf_key = "/apps/evolution/memos/sources";
+ extension_name = E_SOURCE_EXTENSION_TASK_LIST;
+ else if (obj_type == E_CAL_SOURCE_TYPE_JOURNAL)
+ extension_name = E_SOURCE_EXTENSION_MEMO_LIST;
else
return NULL;
- conf_client = gconf_client_get_default ();
- source_list = e_source_list_new_for_gconf (conf_client, gconf_key);
-
/* create the dialog */
- dialog = e_source_selector_dialog_new (parent, source_list);
+ registry = e_source_registry_get_default ();
+ dialog = e_source_selector_dialog_new (parent, registry, extension_name);
if (obj_type == E_CAL_SOURCE_TYPE_EVENT)
icon_name = "x-office-calendar";
@@ -72,24 +70,15 @@ select_source_dialog (GtkWindow *parent, ECalSourceType obj_type, ESource *excep
if (except_source)
g_object_set_data (G_OBJECT (dialog), "except-source", except_source);
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- selected_source = e_source_selector_dialog_peek_primary_selection (E_SOURCE_SELECTOR_DIALOG (dialog));
- if (selected_source) {
- gchar *absolute_uri;
-
- /* set the absolute URI on the source we keep around, since the group
- will be unrefed */
- absolute_uri = e_source_build_absolute_uri (selected_source);
- e_source_set_absolute_uri (selected_source, (const gchar *) absolute_uri);
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_OK)
+ goto exit;
- g_object_ref (selected_source);
- g_free (absolute_uri);
- }
- } else
- selected_source = NULL;
+ selected_source = e_source_selector_dialog_peek_primary_selection (
+ E_SOURCE_SELECTOR_DIALOG (dialog));
+ if (selected_source != NULL)
+ g_object_ref (selected_source);
- g_object_unref (conf_client);
- g_object_unref (source_list);
+exit:
gtk_widget_destroy (dialog);
return selected_source;
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index ee8138e..23f3ce6 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -79,7 +79,6 @@ struct _TaskPagePrivate {
GtkWidget *info_hbox;
GtkWidget *info_icon;
GtkWidget *info_string;
- gchar *subscriber_info_text;
GtkWidget *summary;
GtkWidget *summary_label;
@@ -188,8 +187,6 @@ task_page_finalize (GObject *object)
priv->deleted_attendees, (GFunc) g_object_unref, NULL);
g_ptr_array_free (priv->deleted_attendees, TRUE);
- g_free (priv->subscriber_info_text);
-
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (task_page_parent_class)->finalize (object);
}
@@ -337,12 +334,11 @@ check_starts_in_the_past (TaskPage *tpage)
if (start_in_past || due_in_past) {
gchar *tmp = g_strconcat ("<b>", start_in_past ? _("Task's start date is in the past") : "",
- start_in_past && due_in_past ? "\n" : "", due_in_past ? _("Task's due date is in the past") : "", "</b>",
- priv->subscriber_info_text ? "\n" : "", priv->subscriber_info_text, NULL);
+ start_in_past && due_in_past ? "\n" : "", due_in_past ? _("Task's due date is in the past") : "", "</b>", NULL);
task_page_set_info_string (tpage, GTK_STOCK_DIALOG_WARNING, tmp);
g_free (tmp);
} else {
- task_page_set_info_string (tpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+ task_page_set_info_string (tpage, NULL, NULL);
}
return TRUE;
@@ -380,7 +376,7 @@ sensitize_widgets (TaskPage *tpage)
task_page_set_info_string (tpage, GTK_STOCK_DIALOG_INFO, tmp);
g_free (tmp);
} else if (!check_starts_in_the_past (tpage)) {
- task_page_set_info_string (tpage, priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, priv->subscriber_info_text);
+ task_page_set_info_string (tpage, NULL, NULL);
}
/* The list of organizers is set to be non-editable. Otherwise any
@@ -1442,7 +1438,6 @@ get_widgets (TaskPage *tpage)
gtk_box_pack_start (GTK_BOX (priv->list_box), sw, TRUE, TRUE, 0);
priv->source_selector = e_builder_get_widget (priv->builder, "source");
- e_util_set_source_combo_box_list (priv->source_selector, "/apps/evolution/tasks/sources");
gtk_label_set_mnemonic_widget (GTK_LABEL (priv->calendar_label), priv->source_selector);
@@ -1742,7 +1737,7 @@ source_changed_cb (ESourceComboBox *source_combo_box, TaskPage *tpage)
dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
_("Unable to open tasks in '%s'."),
- e_source_peek_name (source));
+ e_source_get_display_name (source));
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
} else {
@@ -1772,26 +1767,8 @@ source_changed_cb (ESourceComboBox *source_combo_box, TaskPage *tpage)
static void
set_subscriber_info_string (TaskPage *tpage, const gchar *backend_address)
{
- CompEditor *editor;
- ECal *client;
- ESource *source;
-
- editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (tpage));
- client = comp_editor_get_client (editor);
- source = e_cal_get_source (client);
-
- if (e_source_get_property (source, "subscriber")) {
- g_free (tpage->priv->subscriber_info_text);
- /* Translators: This string is used when we are creating a Task
- on behalf of some other user */
- tpage->priv->subscriber_info_text = g_markup_printf_escaped (_("You are acting on behalf of %s"), backend_address);
- } else {
- g_free (tpage->priv->subscriber_info_text);
- tpage->priv->subscriber_info_text = NULL;
- }
-
if (!check_starts_in_the_past (tpage))
- task_page_set_info_string (tpage, tpage->priv->subscriber_info_text ? GTK_STOCK_DIALOG_INFO : NULL, tpage->priv->subscriber_info_text);
+ task_page_set_info_string (tpage, NULL, NULL);
}
void
@@ -1975,32 +1952,18 @@ static void
task_page_select_organizer (TaskPage *tpage, const gchar *backend_address)
{
TaskPagePrivate *priv = tpage->priv;
- CompEditor *editor;
GList *l;
EAccount *def_account;
gchar *def_address = NULL;
const gchar *default_address;
gboolean subscribed_cal = FALSE;
- ESource *source = NULL;
- ECal *client;
const gchar *user_addr = NULL;
- editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (tpage));
- client = comp_editor_get_client (editor);
-
def_account = itip_addresses_get_default ();
if (def_account && def_account->enabled)
def_address = g_strdup_printf("%s <%s>", def_account->id->name, def_account->id->address);
- if (client)
- source = e_cal_get_source (client);
- if (source)
- user_addr = e_source_get_property (source, "subscriber");
-
- if (user_addr)
- subscribed_cal = TRUE;
- else
- user_addr = (backend_address && *backend_address) ? backend_address : NULL;
+ user_addr = (backend_address && *backend_address) ? backend_address : NULL;
default_address = NULL;
if (user_addr)
diff --git a/calendar/gui/dialogs/task-page.ui b/calendar/gui/dialogs/task-page.ui
index 9aab40a..cadec84 100644
--- a/calendar/gui/dialogs/task-page.ui
+++ b/calendar/gui/dialogs/task-page.ui
@@ -437,6 +437,7 @@
</child>
<child>
<object class="ESourceComboBox" id="source">
+ <property name="extension-name">Task List</property>
<property name="visible">True</property>
</object>
<packing>
diff --git a/calendar/gui/e-cal-component-preview.c b/calendar/gui/e-cal-component-preview.c
index ebcc290..f025fc6 100644
--- a/calendar/gui/e-cal-component-preview.c
+++ b/calendar/gui/e-cal-component-preview.c
@@ -88,7 +88,7 @@ update_comp_info (ECalComponentPreview *preview,
gint *sequence = NULL;
gint comp_sequence;
- cal_uid = g_strdup (e_source_peek_uid (e_cal_get_source (ecal)));
+ cal_uid = g_strdup (e_source_get_uid (e_cal_get_source (ecal)));
e_cal_component_get_uid (comp, &uid);
comp_uid = g_strdup (uid);
e_cal_component_get_last_modified (comp, &itm);
diff --git a/calendar/gui/e-cal-config.c b/calendar/gui/e-cal-config.c
index 980701e..74db953 100644
--- a/calendar/gui/e-cal-config.c
+++ b/calendar/gui/e-cal-config.c
@@ -25,6 +25,8 @@
#endif
#include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
+
#include "e-cal-config.h"
static GObjectClass *ecp_parent_class;
diff --git a/calendar/gui/e-cal-event.c b/calendar/gui/e-cal-event.c
index 7d0a9d1..8d2e6d8 100644
--- a/calendar/gui/e-cal-event.c
+++ b/calendar/gui/e-cal-event.c
@@ -47,8 +47,6 @@ ece_target_free (EEvent *ev, EEventTarget *t)
ECalEventTargetBackend *s = (ECalEventTargetBackend *) t;
if (s->shell_backend)
g_object_unref (s->shell_backend);
- if (s->source_list)
- g_object_unref (s->source_list);
break; }
}
@@ -95,12 +93,11 @@ e_cal_event_peek (void)
}
ECalEventTargetBackend *
-e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, ESourceList *source_list, guint32 flags)
+e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, guint32 flags)
{
ECalEventTargetBackend *t = e_event_target_new (&ece->event, E_CAL_EVENT_TARGET_BACKEND, sizeof (*t));
t->shell_backend = g_object_ref (shell_backend);
- t->source_list = g_object_ref (source_list);
t->target.mask = ~flags;
return t;
diff --git a/calendar/gui/e-cal-event.h b/calendar/gui/e-cal-event.h
index 8d72a93..b194207 100644
--- a/calendar/gui/e-cal-event.h
+++ b/calendar/gui/e-cal-event.h
@@ -25,7 +25,6 @@
#define __E_CAL_EVENT_H__
#include <glib-object.h>
-#include <libedataserver/e-source-list.h>
#include "e-util/e-event.h"
#include "shell/e-shell-backend.h"
@@ -49,7 +48,6 @@ typedef struct _ECalEventTargetBackend ECalEventTargetBackend;
struct _ECalEventTargetBackend {
EEventTarget target;
EShellBackend *shell_backend;
- ESourceList *source_list;
};
struct _ECalEvent {
@@ -64,7 +62,7 @@ struct _ECalEventClass {
GType e_cal_event_get_type (void);
ECalEvent* e_cal_event_peek (void);
-ECalEventTargetBackend* e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, ESourceList *source_list, guint32 flags);
+ECalEventTargetBackend* e_cal_event_target_new_module (ECalEvent *ece, EShellBackend *shell_backend, guint32 flags);
G_END_DECLS
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index 9fd9332..f6b3053 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -31,7 +31,9 @@
#include <glib/gi18n.h>
#include <libedataserver/e-flag.h>
#include <libedataserver/e-time-utils.h>
+#include <libedataserver/e-source-selectable.h>
#include <libecal/e-cal-time-util.h>
+#include <libecal/e-source-calendar.h>
#include "comp-util.h"
#include "e-cal-model.h"
#include "itip-utils.h"
@@ -1537,15 +1539,19 @@ ecm_value_to_string (ETableModel *etm, gint col, gconstpointer value)
typedef struct {
const gchar *color;
- GList *uris;
+ GList *uids;
} AssignedColorData;
static const gchar *
ecm_get_color_for_component (ECalModel *model, ECalModelComponent *comp_data)
{
ESource *source;
+ ESourceSelectable *extension;
const gchar *color_spec;
+ const gchar *extension_name;
+ const gchar *uid;
gint i, first_empty = 0;
+
static AssignedColorData assigned_colors[] = {
{ "#BECEDD", NULL }, /* 190 206 221 Blue */
{ "#E2F0EF", NULL }, /* 226 240 239 Light Blue */
@@ -1561,34 +1567,48 @@ ecm_get_color_for_component (ECalModel *model, ECalModelComponent *comp_data)
g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL);
+ switch (e_cal_get_source_type (comp_data->client)) {
+ case E_CAL_SOURCE_TYPE_EVENT:
+ extension_name = E_SOURCE_EXTENSION_CALENDAR;
+ break;
+ case E_CAL_SOURCE_TYPE_TODO:
+ extension_name = E_SOURCE_EXTENSION_TASK_LIST;
+ break;
+ case E_CAL_SOURCE_TYPE_JOURNAL:
+ extension_name = E_SOURCE_EXTENSION_MEMO_LIST;
+ break;
+ default:
+ g_return_val_if_reached (NULL);
+ }
+
source = e_cal_get_source (comp_data->client);
- color_spec = e_source_peek_color_spec (source);
+ extension = e_source_get_extension (source, extension_name);
+ color_spec = e_source_selectable_get_color (extension);
+
if (color_spec != NULL) {
g_free (comp_data->color);
comp_data->color = g_strdup (color_spec);
return comp_data->color;
}
+ uid = e_source_get_uid (source);
+
for (i = 0; i < G_N_ELEMENTS (assigned_colors); i++) {
GList *l;
- if (assigned_colors[i].uris == NULL) {
+ if (assigned_colors[i].uids == NULL) {
first_empty = i;
continue;
}
- for (l = assigned_colors[i].uris; l != NULL; l = l->next) {
- if (!strcmp ((const gchar *) l->data,
- e_cal_get_uri (comp_data->client)))
- {
+ for (l = assigned_colors[i].uids; l != NULL; l = l->next)
+ if (g_strcmp0 (l->data, uid) == 0)
return assigned_colors[i].color;
- }
- }
}
/* return the first unused color */
- assigned_colors[first_empty].uris = g_list_append (assigned_colors[first_empty].uris,
- g_strdup (e_cal_get_uri (comp_data->client)));
+ assigned_colors[first_empty].uids = g_list_append (
+ assigned_colors[first_empty].uids, g_strdup (uid));
return assigned_colors[first_empty].color;
}
@@ -1971,22 +1991,27 @@ e_cal_model_get_client_list (ECalModel *model)
}
/**
- * e_cal_model_get_client_for_uri:
- * @model: A calendar model.
- * @uri: Uri for the client to get.
+ * e_cal_model_get_client_for_source:
+ * @model: an #ECalModel
+ * @source: an #ESource
*/
ECal *
-e_cal_model_get_client_for_uri (ECalModel *model, const gchar *uri)
+e_cal_model_get_client_for_source (ECalModel *model,
+ ESource *source)
{
- GList *l;
+ GList *link;
g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL);
- g_return_val_if_fail (uri != NULL, NULL);
+ g_return_val_if_fail (E_IS_SOURCE (source), NULL);
- for (l = model->priv->clients; l != NULL; l = l->next) {
- ECalModelClient *client_data = (ECalModelClient *) l->data;
+ for (link = model->priv->clients; link != NULL; link = link->next) {
+ ECalModelClient *client_data;
+ ESource *client_source;
+
+ client_data = (ECalModelClient *) link->data;
+ client_source = e_cal_get_source (client_data->client);
- if (!strcmp (uri, e_cal_get_uri (client_data->client)))
+ if (e_source_equal (source, client_source))
return client_data->client;
}
@@ -2638,9 +2663,13 @@ add_new_client (ECalModel *model, ECal *client, gboolean do_query)
if (e_cal_get_load_state (client) == E_CAL_LOAD_LOADED) {
update_e_cal_view_for_client (model, client_data);
} else {
+ ESource *source;
+ const gchar *display_name;
gchar *msg;
- msg = g_strdup_printf (_("Opening %s"), e_cal_get_uri (client));
+ source = e_cal_get_source (client);
+ display_name = e_source_get_display_name (source);
+ msg = g_strdup_printf (_("Opening %s"), display_name);
e_cal_model_update_status_message (model, msg, -1.0);
g_free (msg);
diff --git a/calendar/gui/e-cal-model.h b/calendar/gui/e-cal-model.h
index db744d3..c5ba252 100644
--- a/calendar/gui/e-cal-model.h
+++ b/calendar/gui/e-cal-model.h
@@ -250,8 +250,9 @@ ECal * e_cal_model_get_default_client (ECalModel *model);
void e_cal_model_set_default_client (ECalModel *model,
ECal *client);
GList * e_cal_model_get_client_list (ECalModel *model);
-ECal * e_cal_model_get_client_for_uri (ECalModel *model,
- const gchar *uri);
+ECal * e_cal_model_get_client_for_source
+ (ECalModel *model,
+ ESource *source);
void e_cal_model_add_client (ECalModel *model,
ECal *client);
void e_cal_model_remove_client (ECalModel *model,
diff --git a/calendar/gui/e-calendar-selector.c b/calendar/gui/e-calendar-selector.c
index 8f9c063..5a916e2 100644
--- a/calendar/gui/e-calendar-selector.c
+++ b/calendar/gui/e-calendar-selector.c
@@ -21,6 +21,7 @@
#include "e-calendar-selector.h"
#include <libecal/e-cal.h>
+#include <libecal/e-source-calendar.h>
#include "e-util/e-selection.h"
#include "common/authentication.h"
@@ -28,7 +29,10 @@ struct _ECalendarSelectorPrivate {
gint dummy_value;
};
-static gpointer parent_class;
+G_DEFINE_TYPE (
+ ECalendarSelector,
+ e_calendar_selector,
+ E_TYPE_SOURCE_SELECTOR)
static gboolean
calendar_selector_update_single_object (ECal *client,
@@ -144,11 +148,10 @@ exit:
}
static void
-calendar_selector_class_init (ECalendarSelectorClass *class)
+e_calendar_selector_class_init (ECalendarSelectorClass *class)
{
ESourceSelectorClass *source_selector_class;
- parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (ECalendarSelectorPrivate));
source_selector_class = E_SOURCE_SELECTOR_CLASS (class);
@@ -156,7 +159,7 @@ calendar_selector_class_init (ECalendarSelectorClass *class)
}
static void
-calendar_selector_init (ECalendarSelector *selector)
+e_calendar_selector_init (ECalendarSelector *selector)
{
selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
selector, E_TYPE_CALENDAR_SELECTOR, ECalendarSelectorPrivate);
@@ -168,39 +171,13 @@ calendar_selector_init (ECalendarSelector *selector)
e_drag_dest_add_calendar_targets (GTK_WIDGET (selector));
}
-GType
-e_calendar_selector_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- const GTypeInfo type_info = {
- sizeof (ECalendarSelectorClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) calendar_selector_class_init,
- (GClassFinalizeFunc) NULL,
- NULL, /* class_data */
- sizeof (ECalendarSelector),
- 0, /* n_preallocs */
- (GInstanceInitFunc) calendar_selector_init,
- NULL /* value_table */
- };
-
- type = g_type_register_static (
- E_TYPE_SOURCE_SELECTOR, "ECalendarSelector",
- &type_info, 0);
- }
-
- return type;
-}
-
GtkWidget *
-e_calendar_selector_new (ESourceList *source_list)
+e_calendar_selector_new (ESourceRegistry *registry)
{
- g_return_val_if_fail (E_IS_SOURCE_LIST (source_list), NULL);
+ g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL);
return g_object_new (
E_TYPE_CALENDAR_SELECTOR,
- "source-list", source_list, NULL);
+ "extension-name", E_SOURCE_EXTENSION_CALENDAR,
+ "registry", registry, NULL);
}
diff --git a/calendar/gui/e-calendar-selector.h b/calendar/gui/e-calendar-selector.h
index 65d9a2f..d8aec73 100644
--- a/calendar/gui/e-calendar-selector.h
+++ b/calendar/gui/e-calendar-selector.h
@@ -21,7 +21,6 @@
#ifndef E_CALENDAR_SELECTOR_H
#define E_CALENDAR_SELECTOR_H
-#include <libedataserver/e-source-list.h>
#include <libedataserverui/e-source-selector.h>
/* Standard GObject macros */
@@ -59,7 +58,7 @@ struct _ECalendarSelectorClass {
};
GType e_calendar_selector_get_type (void);
-GtkWidget * e_calendar_selector_new (ESourceList *source_list);
+GtkWidget * e_calendar_selector_new (ESourceRegistry *registry);
G_END_DECLS
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index d2548f2..6ad17ec 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -1435,7 +1435,11 @@ e_calendar_view_new_appointment_for (ECalendarView *cal_view,
if (e_cal_is_read_only (default_client, &readonly, NULL) && readonly) {
GtkWidget *widget;
- widget = e_alert_dialog_new_for_args (parent, "calendar:prompt-read-only-cal", e_source_peek_name (e_cal_get_source (default_client)), NULL);
+ widget = e_alert_dialog_new_for_args (
+ parent, "calendar:prompt-read-only-cal",
+ e_source_get_display_name (
+ e_cal_get_source (default_client)),
+ NULL);
g_signal_connect ((GtkDialog *)widget, "response", G_CALLBACK (gtk_widget_destroy),
widget);
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index b0a2683..27de62c 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -7802,7 +7802,7 @@ e_day_view_on_drag_data_get (GtkWidget *widget,
comp_str = icalcomponent_as_ical_string_r (vcal);
if (comp_str) {
ESource *source = e_cal_get_source (event->comp_data->client);
- const gchar *source_uid = e_source_peek_uid (source);
+ const gchar *source_uid = e_source_get_uid (source);
GdkAtom target;
gchar *tmp;
diff --git a/calendar/gui/e-meeting-list-view.c b/calendar/gui/e-meeting-list-view.c
index 532a061..e3239b9 100644
--- a/calendar/gui/e-meeting-list-view.c
+++ b/calendar/gui/e-meeting-list-view.c
@@ -767,7 +767,7 @@ process_section (EMeetingListView *view, GList *destinations, icalparameter_role
ENameSelectorModel *model;
EContactStore *c_store;
GList *books, *l;
- gchar *uri = e_contact_get (contact, E_CONTACT_BOOK_URI);
+ gchar *uid = e_contact_get (contact, E_CONTACT_BOOK_URI);
dialog = e_name_selector_peek_dialog (view->priv->name_selector);
model = e_name_selector_dialog_peek_model (dialog);
@@ -775,9 +775,12 @@ process_section (EMeetingListView *view, GList *destinations, icalparameter_role
books = e_contact_store_get_books (c_store);
for (l = books; l; l = l->next) {
- EBook *b = l->data;
- if (g_str_equal (uri, e_book_get_uri (b))) {
- book = b;
+ ESource *source;
+
+ source = e_book_get_source (l->data);
+
+ if (g_strcmp0 (uid, e_source_get_uid (source)) == 0) {
+ book = E_BOOK (l->data);
break;
}
}
diff --git a/calendar/gui/e-meeting-store.c b/calendar/gui/e-meeting-store.c
index c89bd44..6fda489 100644
--- a/calendar/gui/e-meeting-store.c
+++ b/calendar/gui/e-meeting-store.c
@@ -1710,15 +1710,20 @@ soup_authenticate (SoupSession *session,
SoupMessage *msg,
SoupAuth *auth,
gboolean retrying,
- gpointer data)
+ EMeetingStoreQueueData *qdata)
{
SoupURI *suri;
+ ECal *cal;
+ ESource *source;
const gchar *orig_uri;
gboolean tried = FALSE;
g_return_if_fail (msg != NULL);
g_return_if_fail (auth != NULL);
+ cal = e_meeting_store_get_client (qdata->store);
+ source = e_cal_get_source (cal);
+
orig_uri = g_object_get_data (G_OBJECT (msg), "orig-uri");
g_return_if_fail (orig_uri != NULL);
@@ -1738,7 +1743,7 @@ soup_authenticate (SoupSession *session,
} else {
gchar *password;
- password = e_passwords_get_password ("Calendar", orig_uri);
+ password = e_passwords_get_password (source);
if (password) {
soup_auth_authenticate (auth, suri->user, password);
tried = TRUE;
@@ -1773,8 +1778,8 @@ soup_authenticate (SoupSession *session,
}
password = e_passwords_ask_password (
- _("Enter password"), "Calendar", orig_uri,
- description->str, E_PASSWORDS_REMEMBER_FOREVER |
+ source, "", description->str,
+ E_PASSWORDS_REMEMBER_FOREVER |
E_PASSWORDS_SECRET | E_PASSWORDS_ONLINE |
(retrying ? E_PASSWORDS_REPROMPT : 0),
&remember, NULL);
@@ -1865,7 +1870,9 @@ download_with_libsoup (const gchar *uri, EMeetingStoreQueueData *qdata)
g_object_set_data_full (G_OBJECT (msg), "orig-uri", g_strdup (uri), g_free);
session = soup_session_async_new ();
- g_signal_connect (session, "authenticate", G_CALLBACK (soup_authenticate), NULL);
+ g_signal_connect (
+ session, "authenticate",
+ G_CALLBACK (soup_authenticate), qdata);
proxy = e_proxy_new ();
e_proxy_setup_proxy (proxy);
diff --git a/calendar/gui/e-memo-list-selector.c b/calendar/gui/e-memo-list-selector.c
index 91c6b7f..6eaa3d0 100644
--- a/calendar/gui/e-memo-list-selector.c
+++ b/calendar/gui/e-memo-list-selector.c
@@ -22,6 +22,7 @@
#include <string.h>
#include <libecal/e-cal.h>
+#include <libecal/e-source-calendar.h>
#include "e-util/e-selection.h"
#include "calendar/common/authentication.h"
#include "calendar/gui/comp-util.h"
@@ -30,7 +31,10 @@ struct _EMemoListSelectorPrivate {
gint dummy_value;
};
-static gpointer parent_class;
+G_DEFINE_TYPE (
+ EMemoListSelector,
+ e_memo_list_selector,
+ E_TYPE_SOURCE_SELECTOR)
static gboolean
memo_list_selector_update_single_object (ECal *client,
@@ -99,8 +103,8 @@ memo_list_selector_process_data (ESourceSelector *selector,
icalcomponent *icalcomp,
GdkDragAction action)
{
- ESourceList *source_list;
ESource *source;
+ ESourceRegistry *registry;
icalcomponent *tmp_icalcomp = NULL;
const gchar *uid;
gchar *old_uid = NULL;
@@ -138,10 +142,10 @@ memo_list_selector_process_data (ESourceSelector *selector,
if (!success || action != GDK_ACTION_MOVE)
goto exit;
- source_list = e_source_selector_get_source_list (selector);
- source = e_source_list_peek_source_by_uid (source_list, source_uid);
+ registry = e_source_selector_get_registry (selector);
+ source = e_source_registry_lookup_by_uid (registry, source_uid);
- if (!E_IS_SOURCE (source) || e_source_get_readonly (source))
+ if (!E_IS_SOURCE (source))
goto exit;
client = e_auth_new_cal_from_source (source, E_CAL_SOURCE_TYPE_JOURNAL);
@@ -215,11 +219,10 @@ exit:
}
static void
-memo_list_selector_class_init (EMemoListSelectorClass *class)
+e_memo_list_selector_class_init (EMemoListSelectorClass *class)
{
ESourceSelectorClass *source_selector_class;
- parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (EMemoListSelectorPrivate));
source_selector_class = E_SOURCE_SELECTOR_CLASS (class);
@@ -227,7 +230,7 @@ memo_list_selector_class_init (EMemoListSelectorClass *class)
}
static void
-memo_list_selector_init (EMemoListSelector *selector)
+e_memo_list_selector_init (EMemoListSelector *selector)
{
selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
selector, E_TYPE_MEMO_LIST_SELECTOR, EMemoListSelectorPrivate);
@@ -239,39 +242,13 @@ memo_list_selector_init (EMemoListSelector *selector)
e_drag_dest_add_calendar_targets (GTK_WIDGET (selector));
}
-GType
-e_memo_list_selector_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- const GTypeInfo type_info = {
- sizeof (EMemoListSelectorClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) memo_list_selector_class_init,
- (GClassFinalizeFunc) NULL,
- NULL, /* class_data */
- sizeof (EMemoListSelector),
- 0, /* n_preallocs */
- (GInstanceInitFunc) memo_list_selector_init,
- NULL /* value_table */
- };
-
- type = g_type_register_static (
- E_TYPE_SOURCE_SELECTOR, "EMemoListSelector",
- &type_info, 0);
- }
-
- return type;
-}
-
GtkWidget *
-e_memo_list_selector_new (ESourceList *source_list)
+e_memo_list_selector_new (ESourceRegistry *registry)
{
- g_return_val_if_fail (E_IS_SOURCE_LIST (source_list), NULL);
+ g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL);
return g_object_new (
E_TYPE_MEMO_LIST_SELECTOR,
- "source-list", source_list, NULL);
+ "extension-name", E_SOURCE_EXTENSION_MEMO_LIST,
+ "registry", registry, NULL);
}
diff --git a/calendar/gui/e-memo-list-selector.h b/calendar/gui/e-memo-list-selector.h
index c10cff2..62dc0e1 100644
--- a/calendar/gui/e-memo-list-selector.h
+++ b/calendar/gui/e-memo-list-selector.h
@@ -26,7 +26,6 @@
#ifndef E_MEMO_LIST_SELECTOR_H
#define E_MEMO_LIST_SELECTOR_H
-#include <libedataserver/e-source-list.h>
#include <libedataserverui/e-source-selector.h>
/* Standard GObject macros */
@@ -64,7 +63,7 @@ struct _EMemoListSelectorClass {
};
GType e_memo_list_selector_get_type (void);
-GtkWidget * e_memo_list_selector_new (ESourceList *source_list);
+GtkWidget * e_memo_list_selector_new (ESourceRegistry *registry);
G_END_DECLS
diff --git a/calendar/gui/e-task-list-selector.c b/calendar/gui/e-task-list-selector.c
index 7e12125..a23ccc5 100644
--- a/calendar/gui/e-task-list-selector.c
+++ b/calendar/gui/e-task-list-selector.c
@@ -22,6 +22,7 @@
#include <string.h>
#include <libecal/e-cal.h>
+#include <libecal/e-source-calendar.h>
#include "e-util/e-selection.h"
#include "calendar/common/authentication.h"
#include "calendar/gui/comp-util.h"
@@ -30,7 +31,10 @@ struct _ETaskListSelectorPrivate {
gint dummy_value;
};
-static gpointer parent_class;
+G_DEFINE_TYPE (
+ ETaskListSelector,
+ e_task_list_selector,
+ E_TYPE_SOURCE_SELECTOR)
static gboolean
task_list_selector_update_single_object (ECal *client,
@@ -100,8 +104,8 @@ task_list_selector_process_data (ESourceSelector *selector,
icalcomponent *icalcomp,
GdkDragAction action)
{
- ESourceList *source_list;
ESource *source;
+ ESourceRegistry *registry;
icalcomponent *tmp_icalcomp = NULL;
const gchar *uid;
gchar *old_uid = NULL;
@@ -139,10 +143,10 @@ task_list_selector_process_data (ESourceSelector *selector,
if (!success || action != GDK_ACTION_MOVE)
goto exit;
- source_list = e_source_selector_get_source_list (selector);
- source = e_source_list_peek_source_by_uid (source_list, source_uid);
+ registry = e_source_selector_get_registry (selector);
+ source = e_source_registry_lookup_by_uid (registry, source_uid);
- if (!E_IS_SOURCE (source) || e_source_get_readonly (source))
+ if (!E_IS_SOURCE (source))
goto exit;
client = e_auth_new_cal_from_source (source, E_CAL_SOURCE_TYPE_TODO);
@@ -216,11 +220,10 @@ exit:
}
static void
-task_list_selector_class_init (ETaskListSelectorClass *class)
+e_task_list_selector_class_init (ETaskListSelectorClass *class)
{
ESourceSelectorClass *source_selector_class;
- parent_class = g_type_class_peek_parent (class);
g_type_class_add_private (class, sizeof (ETaskListSelectorPrivate));
source_selector_class = E_SOURCE_SELECTOR_CLASS (class);
@@ -228,7 +231,7 @@ task_list_selector_class_init (ETaskListSelectorClass *class)
}
static void
-task_list_selector_init (ETaskListSelector *selector)
+e_task_list_selector_init (ETaskListSelector *selector)
{
selector->priv = G_TYPE_INSTANCE_GET_PRIVATE (
selector, E_TYPE_TASK_LIST_SELECTOR, ETaskListSelectorPrivate);
@@ -240,39 +243,13 @@ task_list_selector_init (ETaskListSelector *selector)
e_drag_dest_add_calendar_targets (GTK_WIDGET (selector));
}
-GType
-e_task_list_selector_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- const GTypeInfo type_info = {
- sizeof (ETaskListSelectorClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) task_list_selector_class_init,
- (GClassFinalizeFunc) NULL,
- NULL, /* class_data */
- sizeof (ETaskListSelector),
- 0, /* n_preallocs */
- (GInstanceInitFunc) task_list_selector_init,
- NULL /* value_table */
- };
-
- type = g_type_register_static (
- E_TYPE_SOURCE_SELECTOR, "ETaskListSelector",
- &type_info, 0);
- }
-
- return type;
-}
-
GtkWidget *
-e_task_list_selector_new (ESourceList *source_list)
+e_task_list_selector_new (ESourceRegistry *registry)
{
- g_return_val_if_fail (E_IS_SOURCE_LIST (source_list), NULL);
+ g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), NULL);
return g_object_new (
E_TYPE_TASK_LIST_SELECTOR,
- "source-list", source_list, NULL);
+ "extension-name", E_SOURCE_EXTENSION_TASK_LIST,
+ "registry", registry, NULL);
}
diff --git a/calendar/gui/e-task-list-selector.h b/calendar/gui/e-task-list-selector.h
index 847a221..735611a 100644
--- a/calendar/gui/e-task-list-selector.h
+++ b/calendar/gui/e-task-list-selector.h
@@ -26,7 +26,6 @@
#ifndef E_TASK_LIST_SELECTOR_H
#define E_TASK_LIST_SELECTOR_H
-#include <libedataserver/e-source-list.h>
#include <libedataserverui/e-source-selector.h>
/* Standard GObject macros */
@@ -64,7 +63,7 @@ struct _ETaskListSelectorClass {
};
GType e_task_list_selector_get_type (void);
-GtkWidget * e_task_list_selector_new (ESourceList *source_list);
+GtkWidget * e_task_list_selector_new (ESourceRegistry *registry);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]