[epiphany/wip/sync: 20/20] sync-service: Connect the GSettings signal to handle changed sync frequency
- From: Gabriel Ivașcu <gabrielivascu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/wip/sync: 20/20] sync-service: Connect the GSettings signal to handle changed sync frequency
- Date: Tue, 16 May 2017 17:29:04 +0000 (UTC)
commit d8ab5c21a0bcf2c968bf32960b2e7508e4879b30
Author: Gabriel Ivascu <ivascu gabriel59 gmail com>
Date: Tue May 16 18:00:50 2017 +0300
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.
lib/sync/ephy-sync-service.c | 28 +++++++++++-----------------
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 a9ed248..a116ddf 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
};
@@ -1431,18 +1430,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));
@@ -1658,8 +1659,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);
}
}
@@ -1716,13 +1717,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 72ee246..a871433 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);
}
@@ -1712,9 +1708,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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]