aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-config-page.h
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2012-07-19 01:21:56 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-07-19 02:29:46 +0800
commitae3305a74b82cc31f9472ef87b4abcce65d0bc43 (patch)
treea9182fbfefaf74dc29491f47eaceaca4af4ac532 /mail/e-mail-config-page.h
parentfb9ecaeaa707c0d3c05fb3bfdcc41539f8c36f62 (diff)
downloadgsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.tar
gsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.tar.gz
gsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.tar.bz2
gsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.tar.lz
gsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.tar.xz
gsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.tar.zst
gsoc2013-evolution-ae3305a74b82cc31f9472ef87b4abcce65d0bc43.zip
EMailConfigPage: Add submit() asynchronous method.
This method is meant for pages that show server-side settings instead of client-side settings stored in key files. It's called after all scratch sources have been successfully submitted to the D-Bus service. The driving use case for this is evolution-ews's "Out of Office" page, which is only shown by EMailConfigNotebook and so that's currently the only place where submit() is invoked for all pages. Should a need arise for EMailConfigAssistant to also invoke submit() for all pages, then EMailConfigNotebook can be used as a reference.
Diffstat (limited to 'mail/e-mail-config-page.h')
-rw-r--r--mail/e-mail-config-page.h28
1 files changed, 26 insertions, 2 deletions
diff --git a/mail/e-mail-config-page.h b/mail/e-mail-config-page.h
index 40a949a2d5..6561780e87 100644
--- a/mail/e-mail-config-page.h
+++ b/mail/e-mail-config-page.h
@@ -52,9 +52,24 @@ struct _EMailConfigPageInterface {
gboolean (*check_complete) (EMailConfigPage *page);
void (*commit_changes) (EMailConfigPage *page,
GQueue *source_queue);
+
+ /* Intended for pages with server-side settings.
+ * Called after client-side settings are written. */
+ gboolean (*submit_sync) (EMailConfigPage *page,
+ GCancellable *cancellable,
+ GError **error);
+ void (*submit) (EMailConfigPage *page,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+ gboolean (*submit_finish) (EMailConfigPage *page,
+ GAsyncResult *result,
+ GError **error);
};
GType e_mail_config_page_get_type (void) G_GNUC_CONST;
+gint e_mail_config_page_compare (GtkWidget *page_a,
+ GtkWidget *page_b);
void e_mail_config_page_changed (EMailConfigPage *page);
void e_mail_config_page_setup_defaults
(EMailConfigPage *page);
@@ -63,8 +78,17 @@ gboolean e_mail_config_page_check_complete
void e_mail_config_page_commit_changes
(EMailConfigPage *page,
GQueue *source_queue);
-gint e_mail_config_page_compare (GtkWidget *page_a,
- GtkWidget *page_b);
+gboolean e_mail_config_page_submit_sync (EMailConfigPage *page,
+ GCancellable *cancellable,
+ GError **error);
+void e_mail_config_page_submit (EMailConfigPage *page,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean e_mail_config_page_submit_finish
+ (EMailConfigPage *page,
+ GAsyncResult *result,
+ GError **error);
G_END_DECLS