diff options
author | Yetizone <andreii.lisita@gmail.com> | 2020-07-21 16:25:44 +0300 |
---|---|---|
committer | Yetizone <andreii.lisita@gmail.com> | 2020-10-01 23:27:26 +0300 |
commit | 5eefc21ac28945f6f0b844f8a1aa11c2ce551dc6 (patch) | |
tree | 75bf83454b3d56ad1a4f9a84bd83c7cacc035b1e | |
parent | afd155430075cee5380334a9c263cc28426fc79c (diff) | |
download | epiphany-5eefc21ac28945f6f0b844f8a1aa11c2ce551dc6.tar.gz |
prefs-sync-page: UI tweaks
- Move separator before Sync now button
- Replace checkboxes with switches
Fixes https://gitlab.gnome.org/GNOME/epiphany/-/issues/1269
-rw-r--r-- | src/preferences/prefs-sync-page.c | 49 | ||||
-rw-r--r-- | src/resources/gtk/prefs-sync-page.ui | 42 |
2 files changed, 44 insertions, 47 deletions
diff --git a/src/preferences/prefs-sync-page.c b/src/preferences/prefs-sync-page.c index b0593d296..d6269c7e0 100644 --- a/src/preferences/prefs-sync-page.c +++ b/src/preferences/prefs-sync-page.c @@ -44,10 +44,10 @@ struct _PrefsSyncPage { GtkWidget *sync_firefox_account_box; GtkWidget *sync_firefox_account_row; GtkWidget *sync_options_box; - GtkWidget *sync_bookmarks_checkbutton; - GtkWidget *sync_passwords_checkbutton; - GtkWidget *sync_history_checkbutton; - GtkWidget *sync_open_tabs_checkbutton; + GtkWidget *sync_bookmarks_switch; + GtkWidget *sync_passwords_switch; + GtkWidget *sync_history_switch; + GtkWidget *sync_open_tabs_switch; GtkWidget *sync_frequency_row; GtkWidget *sync_now_button; GtkWidget *synced_tabs_button; @@ -66,27 +66,28 @@ G_DEFINE_TYPE (PrefsSyncPage, prefs_sync_page, HDY_TYPE_PREFERENCES_PAGE) static const guint sync_frequency_minutes[] = { 5, 15, 30, 60 }; static void -sync_collection_toggled_cb (GtkToggleButton *button, - PrefsSyncPage *sync_page) +sync_collection_toggled_cb (GtkWidget *sw, + gboolean sw_active, + PrefsSyncPage *sync_page) { EphySynchronizableManager *manager = NULL; EphyShell *shell = ephy_shell_get_default (); EphySyncService *service = ephy_shell_get_sync_service (shell); - if (GTK_WIDGET (button) == sync_page->sync_bookmarks_checkbutton) { + if (GTK_WIDGET (sw) == sync_page->sync_bookmarks_switch) { manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_bookmarks_manager (shell)); - } else if (GTK_WIDGET (button) == sync_page->sync_passwords_checkbutton) { + } else if (GTK_WIDGET (sw) == sync_page->sync_passwords_switch) { manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_embed_shell_get_password_manager (EPHY_EMBED_SHELL (shell))); - } else if (GTK_WIDGET (button) == sync_page->sync_history_checkbutton) { + } else if (GTK_WIDGET (sw) == sync_page->sync_history_switch) { manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_history_manager (shell)); - } else if (GTK_WIDGET (button) == sync_page->sync_open_tabs_checkbutton) { + } else if (GTK_WIDGET (sw) == sync_page->sync_open_tabs_switch) { manager = EPHY_SYNCHRONIZABLE_MANAGER (ephy_shell_get_open_tabs_manager (shell)); ephy_open_tabs_manager_clear_cache (EPHY_OPEN_TABS_MANAGER (manager)); } else { g_assert_not_reached (); } - if (gtk_toggle_button_get_active (button)) { + if (sw_active) { ephy_sync_service_register_manager (service, manager); } else { ephy_sync_service_unregister_manager (service, manager); @@ -623,10 +624,10 @@ prefs_sync_page_class_init (PrefsSyncPageClass *klass) gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_firefox_account_box); gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_firefox_account_row); gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_options_box); - gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_bookmarks_checkbutton); - gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_passwords_checkbutton); - gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_history_checkbutton); - gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_open_tabs_checkbutton); + gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_bookmarks_switch); + gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_passwords_switch); + gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_history_switch); + gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_open_tabs_switch); gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_frequency_row); gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, sync_now_button); gtk_widget_class_bind_template_child (widget_class, PrefsSyncPage, synced_tabs_button); @@ -724,22 +725,22 @@ prefs_sync_page_setup (PrefsSyncPage *sync_page) g_settings_bind (sync_settings, EPHY_PREFS_SYNC_BOOKMARKS_ENABLED, - sync_page->sync_bookmarks_checkbutton, + sync_page->sync_bookmarks_switch, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (sync_settings, EPHY_PREFS_SYNC_PASSWORDS_ENABLED, - sync_page->sync_passwords_checkbutton, + sync_page->sync_passwords_switch, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (sync_settings, EPHY_PREFS_SYNC_HISTORY_ENABLED, - sync_page->sync_history_checkbutton, + sync_page->sync_history_switch, "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (sync_settings, EPHY_PREFS_SYNC_OPEN_TABS_ENABLED, - sync_page->sync_open_tabs_checkbutton, + sync_page->sync_open_tabs_switch, "active", G_SETTINGS_BIND_DEFAULT); @@ -757,7 +758,7 @@ prefs_sync_page_setup (PrefsSyncPage *sync_page) sync_frequency_set_mapping, NULL, NULL); - g_object_bind_property (sync_page->sync_open_tabs_checkbutton, "active", + g_object_bind_property (sync_page->sync_open_tabs_switch, "active", sync_page->synced_tabs_button, "sensitive", G_BINDING_SYNC_CREATE); @@ -770,16 +771,16 @@ prefs_sync_page_setup (PrefsSyncPage *sync_page) g_signal_connect_object (service, "sync-finished", G_CALLBACK (sync_finished_cb), sync_page, 0); - g_signal_connect_object (sync_page->sync_bookmarks_checkbutton, "toggled", + g_signal_connect_object (sync_page->sync_bookmarks_switch, "notify::active", G_CALLBACK (sync_collection_toggled_cb), sync_page, 0); - g_signal_connect_object (sync_page->sync_passwords_checkbutton, "toggled", + g_signal_connect_object (sync_page->sync_passwords_switch, "notify::active", G_CALLBACK (sync_collection_toggled_cb), sync_page, 0); - g_signal_connect_object (sync_page->sync_history_checkbutton, "toggled", + g_signal_connect_object (sync_page->sync_history_switch, "notify::active", G_CALLBACK (sync_collection_toggled_cb), sync_page, 0); - g_signal_connect_object (sync_page->sync_open_tabs_checkbutton, "toggled", + g_signal_connect_object (sync_page->sync_open_tabs_switch, "notify::active", G_CALLBACK (sync_collection_toggled_cb), sync_page, 0); diff --git a/src/resources/gtk/prefs-sync-page.ui b/src/resources/gtk/prefs-sync-page.ui index ea8969da2..4d5e0b86a 100644 --- a/src/resources/gtk/prefs-sync-page.ui +++ b/src/resources/gtk/prefs-sync-page.ui @@ -53,13 +53,12 @@ <property name="visible">True</property> <child> <object class="HdyActionRow"> - <property name="activatable_widget">sync_bookmarks_checkbutton</property> + <property name="activatable_widget">sync_bookmarks_switch</property> <property name="title" translatable="yes">Sync _Bookmarks</property> <property name="use_underline">True</property> <property name="visible">True</property> - <child type="prefix"> - <object class="GtkCheckButton" id="sync_bookmarks_checkbutton"> - <property name="use-underline">True</property> + <child> + <object class="GtkSwitch" id="sync_bookmarks_switch"> <property name="valign">center</property> <property name="visible">True</property> </object> @@ -68,13 +67,12 @@ </child> <child> <object class="HdyActionRow"> - <property name="activatable_widget">sync_passwords_checkbutton</property> + <property name="activatable_widget">sync_passwords_switch</property> <property name="title" translatable="yes">Sync _Passwords</property> <property name="use_underline">True</property> <property name="visible">True</property> - <child type="prefix"> - <object class="GtkCheckButton" id="sync_passwords_checkbutton"> - <property name="use-underline">True</property> + <child> + <object class="GtkSwitch" id="sync_passwords_switch"> <property name="valign">center</property> <property name="visible">True</property> </object> @@ -83,13 +81,12 @@ </child> <child> <object class="HdyActionRow"> - <property name="activatable_widget">sync_history_checkbutton</property> + <property name="activatable_widget">sync_history_switch</property> <property name="title" translatable="yes">Sync _History</property> <property name="use_underline">True</property> <property name="visible">True</property> - <child type="prefix"> - <object class="GtkCheckButton" id="sync_history_checkbutton"> - <property name="use-underline">True</property> + <child> + <object class="GtkSwitch" id="sync_history_switch"> <property name="valign">center</property> <property name="visible">True</property> </object> @@ -98,13 +95,12 @@ </child> <child> <object class="HdyActionRow"> - <property name="activatable_widget">sync_open_tabs_checkbutton</property> + <property name="activatable_widget">sync_open_tabs_switch</property> <property name="title" translatable="yes">Sync Open _Tabs</property> <property name="use_underline">True</property> <property name="visible">True</property> - <child type="prefix"> - <object class="GtkCheckButton" id="sync_open_tabs_checkbutton"> - <property name="use-underline">True</property> + <child> + <object class="GtkSwitch" id="sync_open_tabs_switch"> <property name="valign">center</property> <property name="visible">True</property> </object> @@ -125,6 +121,13 @@ <property name="title" translatable="yes">Frequency</property> <property name="visible">True</property> <child> + <object class="GtkSeparator"> + <property name="margin_bottom">8</property> + <property name="margin_top">8</property> + <property name="visible">True</property> + </object> + </child> + <child> <object class="GtkButton" id="sync_now_button"> <property name="label" translatable="yes">Sync _now</property> <property name="use-underline">True</property> @@ -133,13 +136,6 @@ <signal name="clicked" handler="on_sync_sync_now_button_clicked"/> </object> </child> - <child> - <object class="GtkSeparator"> - <property name="margin_bottom">8</property> - <property name="margin_top">8</property> - <property name="visible">True</property> - </object> - </child> </object> </child> <child> |