diff options
author | Gabriel Ivascu <ivascu.gabriel59@gmail.com> | 2017-06-02 18:20:09 +0300 |
---|---|---|
committer | Michael Catanzaro <mcatanzaro@igalia.com> | 2017-08-06 09:28:09 -0500 |
commit | 5379246852c7336c57aed7c0b0b64d08d95395e0 (patch) | |
tree | 2830a016d527a5919c3428292f362890d1895fcd | |
parent | 319fbbc501414dfe309ef97e1b4a7735da9ab192 (diff) | |
download | epiphany-5379246852c7336c57aed7c0b0b64d08d95395e0.tar.gz |
sync: Disable sync in app mode and incognito mode
-rw-r--r-- | src/ephy-shell.c | 35 | ||||
-rw-r--r-- | src/prefs-dialog.c | 16 | ||||
-rw-r--r-- | src/resources/gtk/prefs-dialog.ui | 2 |
3 files changed, 36 insertions, 17 deletions
diff --git a/src/ephy-shell.c b/src/ephy-shell.c index 894a01718..886f63954 100644 --- a/src/ephy-shell.c +++ b/src/ephy-shell.c @@ -313,6 +313,8 @@ static void ephy_shell_startup (GApplication *application) { EphyEmbedShell *embed_shell = EPHY_EMBED_SHELL (application); + EphyShell *shell = EPHY_SHELL (application); + EphySynchronizableManager *manager; EphyEmbedShellMode mode; GtkBuilder *builder; @@ -339,25 +341,29 @@ ephy_shell_startup (GApplication *application) g_action_map_add_action_entries (G_ACTION_MAP (application), app_normal_mode_entries, G_N_ELEMENTS (app_normal_mode_entries), application); - g_object_bind_property (G_OBJECT (ephy_shell_get_session (EPHY_SHELL (application))), + g_object_bind_property (G_OBJECT (ephy_shell_get_session (shell)), "can-undo-tab-closed", g_action_map_lookup_action (G_ACTION_MAP (application), "reopen-closed-tab"), "enabled", G_BINDING_SYNC_CREATE); - } - /* Create the sync service and register synchronizable managers. */ - ephy_shell->sync_service = ephy_sync_service_new (TRUE); - if (g_settings_get_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_BOOKMARKS_ENABLED)) - ephy_sync_service_register_manager (ephy_shell->sync_service, - EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_bookmarks_manager (ephy_shell))); - if (g_settings_get_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_PASSWORDS_ENABLED)) - ephy_sync_service_register_manager (ephy_shell->sync_service, - EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_password_manager (ephy_shell))); - if (g_settings_get_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_HISTORY_ENABLED)) - ephy_sync_service_register_manager (ephy_shell->sync_service, - EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_history_manager (ephy_shell))); + /* Register the synchronizable managers. */ + if (g_settings_get_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_BOOKMARKS_ENABLED)) { + manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_bookmarks_manager (shell)); + ephy_sync_service_register_manager (ephy_shell_get_sync_service (shell), manager); + } + + if (g_settings_get_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_PASSWORDS_ENABLED)) { + manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_password_manager (shell)); + ephy_sync_service_register_manager (ephy_shell_get_sync_service (shell), manager); + } + + if (g_settings_get_boolean (EPHY_SETTINGS_SYNC, EPHY_PREFS_SYNC_HISTORY_ENABLED)) { + manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_history_manager (shell)); + ephy_sync_service_register_manager (ephy_shell_get_sync_service (shell), manager); + } + } gtk_application_set_app_menu (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"))); @@ -793,6 +799,9 @@ ephy_shell_get_sync_service (EphyShell *shell) { g_return_val_if_fail (EPHY_IS_SHELL (shell), NULL); + if (shell->sync_service == NULL) + shell->sync_service = ephy_sync_service_new (TRUE); + return shell->sync_service; } diff --git a/src/prefs-dialog.c b/src/prefs-dialog.c index b19c31ca5..03a39fbc1 100644 --- a/src/prefs-dialog.c +++ b/src/prefs-dialog.c @@ -62,6 +62,8 @@ enum { struct _PrefsDialog { GtkDialog parent_instance; + GtkWidget *notebook; + /* general */ GtkWidget *homepage_box; GtkWidget *new_tab_homepage_radiobutton; @@ -166,8 +168,10 @@ 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) - ephy_sync_service_start_periodical_sync (dialog->sync_service); + if (dialog->sync_service != NULL) { + if (ephy_sync_service_is_signed_in (dialog->sync_service) && !dialog->sync_was_signed_in) + ephy_sync_service_start_periodical_sync (dialog->sync_service); + } G_OBJECT_CLASS (prefs_dialog_parent_class)->finalize (object); } @@ -597,6 +601,9 @@ prefs_dialog_class_init (PrefsDialogClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/epiphany/gtk/prefs-dialog.ui"); + + gtk_widget_class_bind_template_child (widget_class, PrefsDialog, notebook); + /* general */ gtk_widget_class_bind_template_child (widget_class, PrefsDialog, homepage_box); gtk_widget_class_bind_template_child (widget_class, PrefsDialog, new_tab_homepage_radiobutton); @@ -1818,7 +1825,10 @@ prefs_dialog_init (PrefsDialog *dialog) setup_fonts_page (dialog); setup_stored_data_page (dialog); setup_language_page (dialog); - if (mode != EPHY_EMBED_SHELL_MODE_APPLICATION) + + if (mode == EPHY_EMBED_SHELL_MODE_APPLICATION || mode == EPHY_EMBED_SHELL_MODE_INCOGNITO) + gtk_notebook_remove_page (GTK_NOTEBOOK (dialog->notebook), -1); + else setup_sync_page (dialog); ephy_gui_ensure_window_group (GTK_WINDOW (dialog)); diff --git a/src/resources/gtk/prefs-dialog.ui b/src/resources/gtk/prefs-dialog.ui index db6911fd0..1db23d145 100644 --- a/src/resources/gtk/prefs-dialog.ui +++ b/src/resources/gtk/prefs-dialog.ui @@ -21,7 +21,7 @@ <property name="spacing">2</property> <property name="border_width">0</property> <child> - <object class="GtkNotebook"> + <object class="GtkNotebook" id="notebook"> <property name="visible">True</property> <property name="show_border">False</property> <child> |