[epiphany/wip/sync: 31/31] prefs-dialog: After sign in, start periodical sync only after PrefsDialog is closed
- From: Gabriel Ivașcu <gabrielivascu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/wip/sync: 31/31] prefs-dialog: After sign in, start periodical sync only after PrefsDialog is closed
- Date: Fri, 14 Apr 2017 15:54:09 +0000 (UTC)
commit a6b6f75e26f614915172cb984c63c90fe4299f9a
Author: Gabriel Ivascu <ivascu gabriel59 gmail com>
Date: Fri Apr 14 18:48:40 2017 +0300
prefs-dialog: After sign in, start periodical sync only after PrefsDialog is closed
src/prefs-dialog.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
---
diff --git a/src/prefs-dialog.c b/src/prefs-dialog.c
index b4a5c76..fc5c034 100644
--- a/src/prefs-dialog.c
+++ b/src/prefs-dialog.c
@@ -127,6 +127,7 @@ struct _PrefsDialog {
GtkWidget *sync_frequency_60_min_radiobutton;
GtkWidget *sync_now_button;
guint32 sync_frequency;
+ gboolean sync_was_signed_in;
WebKitWebView *fxa_web_view;
WebKitUserContentManager *fxa_manager;
@@ -164,8 +165,11 @@ prefs_dialog_finalize (GObject *object)
g_object_unref (dialog->fxa_manager);
}
- if (dialog->sync_frequency != g_settings_get_uint (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_FREQUENCY))
- g_signal_emit_by_name (dialog->sync_service, "sync-frequency-changed");
+ if (ephy_sync_service_is_signed_in (dialog->sync_service) && !dialog->sync_was_signed_in) {
+ ephy_sync_service_start_periodical_sync (dialog->sync_service);
+ } else if (dialog->sync_frequency != g_settings_get_uint (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_FREQUENCY)) {
+ g_signal_emit_by_name (dialog->sync_service, "sync-frequency-changed");
+ }
G_OBJECT_CLASS (prefs_dialog_parent_class)->finalize (object);
}
@@ -238,9 +242,6 @@ sync_secrets_store_finished_cb (EphySyncService *service,
EPHY_PREFS_SYNC_USER,
ephy_sync_service_get_user_email (service));
- /* Start syncing. */
- ephy_sync_service_start_periodical_sync (service);
-
g_free (text);
g_free (account);
} else {
@@ -457,6 +458,7 @@ on_sync_sign_out_button_clicked (GtkWidget *button,
FALSE, FALSE, 0);
g_settings_set_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_BOOKMARKS_INITIAL, TRUE);
+ dialog->sync_was_signed_in = FALSE;
}
static void
@@ -1589,8 +1591,9 @@ setup_sync_page (PrefsDialog *dialog)
sync_settings = ephy_settings_get (EPHY_PREFS_SYNC_SCHEMA);
dialog->sync_service = ephy_shell_get_sync_service (ephy_shell_get_default ());
+ dialog->sync_was_signed_in = ephy_sync_service_is_signed_in (dialog->sync_service);
- if (!ephy_sync_service_is_signed_in (dialog->sync_service)) {
+ if (!dialog->sync_was_signed_in) {
sync_setup_firefox_iframe (dialog);
gtk_container_remove (GTK_CONTAINER (dialog->sync_page_box),
dialog->sync_firefox_account_box);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]