diff options
author | Gabriel Ivascu <ivascu.gabriel59@gmail.com> | 2017-05-16 18:00:50 +0300 |
---|---|---|
committer | Michael Catanzaro <mcatanzaro@igalia.com> | 2017-08-06 09:27:30 -0500 |
commit | 59355112ce03384fb5abd86ac83ed4487af88bd5 (patch) | |
tree | 3a4fee9a626250947ecd51606040c465d7561463 | |
parent | 2cbc318439a171b42c44eb1a5ad4c7330a37ad62 (diff) | |
download | epiphany-59355112ce03384fb5abd86ac83ed4487af88bd5.tar.gz |
sync-service: Connect the GSettings signal to handle changed sync frequency
We don't need to trigger the signal when closing the preferences dialog
because we don't really care if the sync is rescheduled with the same
frequency.
-rw-r--r-- | lib/sync/ephy-sync-service.c | 28 | ||||
-rw-r--r-- | src/prefs-dialog.c | 9 |
2 files changed, 12 insertions, 25 deletions
diff --git a/lib/sync/ephy-sync-service.c b/lib/sync/ephy-sync-service.c index e21123b10..ad321d8bb 100644 --- a/lib/sync/ephy-sync-service.c +++ b/lib/sync/ephy-sync-service.c @@ -107,7 +107,6 @@ static GParamSpec *obj_properties[LAST_PROP]; enum { STORE_FINISHED, SIGN_IN_ERROR, - SYNC_FREQUENCY_CHANGED, SYNC_FINISHED, LAST_SIGNAL }; @@ -1438,18 +1437,20 @@ ephy_sync_service_stop_periodical_sync (EphySyncService *self) static void ephy_sync_service_schedule_periodical_sync (EphySyncService *self) { + guint seconds; + g_assert (EPHY_IS_SYNC_SERVICE (self)); - self->source_id = g_timeout_add_seconds (g_settings_get_uint (EPHY_SETTINGS_SYNC, - EPHY_PREFS_SYNC_FREQUENCY) * 60, - ephy_sync_service_sync, - self); - LOG ("Scheduled new sync with frequency %u mins", - g_settings_get_uint (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_FREQUENCY)); + seconds = g_settings_get_uint (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_FREQUENCY) * 60; + self->source_id = g_timeout_add_seconds (seconds, ephy_sync_service_sync, self); + + LOG ("Scheduled new sync with frequency %u minutes", seconds / 60); } static void -sync_frequency_changed_cb (EphySyncService *self) +sync_frequency_changed_cb (GSettings *settings, + char *key, + EphySyncService *self) { g_assert (EPHY_IS_SYNC_SERVICE (self)); @@ -1665,8 +1666,8 @@ ephy_sync_service_constructed (GObject *object) user_agent = webkit_settings_get_user_agent (settings); g_object_set (self->session, "user-agent", user_agent, NULL); - g_signal_connect (self, "sync-frequency-changed", - G_CALLBACK (sync_frequency_changed_cb), NULL); + g_signal_connect (EPHY_SETTINGS_SYNC, "changed::"EPHY_PREFS_SYNC_FREQUENCY, + G_CALLBACK (sync_frequency_changed_cb), self); } } @@ -1723,13 +1724,6 @@ ephy_sync_service_class_init (EphySyncServiceClass *klass) G_TYPE_NONE, 1, G_TYPE_STRING); - signals[SYNC_FREQUENCY_CHANGED] = - g_signal_new ("sync-frequency-changed", - EPHY_TYPE_SYNC_SERVICE, - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 0); - signals[SYNC_FINISHED] = g_signal_new ("sync-finished", EPHY_TYPE_SYNC_SERVICE, diff --git a/src/prefs-dialog.c b/src/prefs-dialog.c index 041c45071..147c8eb41 100644 --- a/src/prefs-dialog.c +++ b/src/prefs-dialog.c @@ -127,7 +127,6 @@ struct _PrefsDialog { GtkWidget *sync_frequency_30_min_radiobutton; GtkWidget *sync_frequency_60_min_radiobutton; GtkWidget *sync_now_button; - guint32 sync_frequency; gboolean sync_was_signed_in; WebKitWebView *fxa_web_view; @@ -166,11 +165,8 @@ prefs_dialog_finalize (GObject *object) g_object_unref (dialog->fxa_manager); } - if (ephy_sync_service_is_signed_in (dialog->sync_service) && !dialog->sync_was_signed_in) { + 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); } @@ -1757,9 +1753,6 @@ setup_sync_page (PrefsDialog *dialog) sync_frequency_set_mapping, GINT_TO_POINTER (60), NULL); - - dialog->sync_frequency = g_settings_get_uint (EPHY_SETTINGS_SYNC, - EPHY_PREFS_SYNC_FREQUENCY); } static void |