diff --git a/data/org.gnome.Papers.gschema.xml b/data/org.gnome.Papers.gschema.xml index f6d656902587bb7c5f72761b3d602103f2876854..9e4a46d4cab87de1363cf1b6b92a43f50252e0e7 100644 --- a/data/org.gnome.Papers.gschema.xml +++ b/data/org.gnome.Papers.gschema.xml @@ -86,9 +86,6 @@ 'links' - - 132 - diff --git a/libdocument/pps-document-factory.c b/libdocument/pps-document-factory.c index 6e33757e2d6eebc744d24d6e8a7e84fd0e167b76..a055a3064a3539ac6ed6792075a321a8f738f839 100644 --- a/libdocument/pps-document-factory.c +++ b/libdocument/pps-document-factory.c @@ -495,7 +495,7 @@ file_filter_add_mime_types (PpsBackendInfo *info, GtkFileFilter *filter) /** * pps_document_factory_add_filters: * @dialog: a #GtkFileDialog - * @document: a #PpsDocument, or %NULL + * @document: (nullable): a #PpsDocument, or %NULL * * Adds some file filters to @dialog. diff --git a/shell/pps-window.c b/shell/pps-window.c index 80dd99a74ca3489695bc1db4554294e00ecef23c..a9a085797c2f53ff533e5b46071fdc98957fc49d 100644 --- a/shell/pps-window.c +++ b/shell/pps-window.c @@ -1371,32 +1371,6 @@ lockdown_changed (GSettings *lockdown, } #endif -static GSettings * -pps_window_ensure_settings (PpsWindow *pps_window) -{ - PpsWindowPrivate *priv = GET_PRIVATE (pps_window); - - if (priv->settings != NULL) - return priv->settings; - - priv->settings = g_settings_new (GS_SCHEMA_NAME); - - g_signal_connect (priv->settings, - "changed::"GS_OVERRIDE_RESTRICTIONS, - G_CALLBACK (override_restrictions_changed), - pps_window); - g_signal_connect (priv->settings, - "changed::"GS_PAGE_CACHE_SIZE, - G_CALLBACK (page_cache_size_changed), - pps_window); - g_signal_connect (priv->settings, - "changed::"GS_ALLOW_LINKS_CHANGE_ZOOM, - G_CALLBACK (allow_links_change_zoom_changed), - pps_window); - - return priv->settings; -} - static void pps_window_setup_document (PpsWindow *pps_window) { @@ -1411,8 +1385,6 @@ pps_window_setup_document (PpsWindow *pps_window) pps_window_title_set_filename (priv->title, priv->display_name); - pps_window_ensure_settings (pps_window); - #ifdef HAVE_DESKTOP_SCHEMAS if (!priv->lockdown_settings) { priv->lockdown_settings = g_settings_new (GS_LOCKDOWN_SCHEMA_NAME); @@ -1509,8 +1481,7 @@ pps_window_file_changed (PpsWindow *pps_window, { PpsWindowPrivate *priv = GET_PRIVATE (pps_window); - if (priv->settings && - g_settings_get_boolean (priv->settings, GS_AUTO_RELOAD)) + if (g_settings_get_boolean (priv->settings, GS_AUTO_RELOAD)) pps_window_reload_document (pps_window, NULL); } @@ -2446,8 +2417,9 @@ pps_window_file_dialog_restore_folder (PpsWindow *window, const gchar *dir; gchar *folder_path; GFile *folder; + PpsWindowPrivate *priv = GET_PRIVATE (window); - g_settings_get (pps_window_ensure_settings (window), + g_settings_get (priv->settings, get_settings_key_for_directory (directory), "ms", &folder_path); @@ -2468,6 +2440,7 @@ pps_window_file_dialog_save_folder (PpsWindow *window, { gchar *path = NULL; GFile *folder = NULL; + PpsWindowPrivate *priv = GET_PRIVATE (window); if (file) folder = g_file_get_parent (file); @@ -2479,7 +2452,7 @@ pps_window_file_dialog_save_folder (PpsWindow *window, g_clear_object (&folder); - g_settings_set (pps_window_ensure_settings (window), + g_settings_set (priv->settings, get_settings_key_for_directory (directory), "ms", path); g_free (path); @@ -3651,23 +3624,15 @@ pps_window_cmd_file_close_window (GSimpleAction *action, } static void -pps_window_focus_page_selector (PpsWindow *window) +pps_window_cmd_select_page (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - PpsWindowPrivate *priv = GET_PRIVATE (window); - - g_return_if_fail (PPS_IS_WINDOW (window)); + PpsWindowPrivate *priv = GET_PRIVATE (PPS_WINDOW (user_data)); gtk_widget_grab_focus (priv->page_selector); } -static void -pps_window_cmd_focus_page_selector (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - pps_window_focus_page_selector (PPS_WINDOW (user_data)); -} - static void pps_window_cmd_continuous (GSimpleAction *action, GVariant *state, @@ -5081,7 +5046,7 @@ pps_window_caret_navigation_message_area_response_cb (PpsMessageArea *area, /* Turn the confirmation dialog off if the user has requested not to show it again */ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->ask_caret_navigation_check))) { - g_settings_set_boolean (pps_window_ensure_settings (window), "show-caret-navigation-message", FALSE); + g_settings_set_boolean (priv->settings, "show-caret-navigation-message", FALSE); g_settings_apply (priv->settings); } @@ -5105,7 +5070,7 @@ pps_window_cmd_view_toggle_caret_navigation (GSimpleAction *action, /* Don't ask for user confirmation to turn the caret navigation off when it is active, * or to turn it on when the confirmation dialog is not to be shown per settings */ enabled = pps_view_is_caret_navigation_enabled (PPS_VIEW (priv->view)); - if (enabled || !g_settings_get_boolean (pps_window_ensure_settings (window), "show-caret-navigation-message")) { + if (enabled || !g_settings_get_boolean (priv->settings, "show-caret-navigation-message")) { pps_window_set_caret_navigation_enabled (window, !enabled); return; } @@ -5198,11 +5163,7 @@ pps_window_dispose (GObject *object) g_clear_object (&priv->attachment_popup_menu); - g_clear_object (&priv->settings); - if (priv->default_settings) { - g_settings_apply (priv->default_settings); - g_clear_object (&priv->default_settings); - } + g_settings_apply (priv->default_settings); /* FIXME: crash when closing papers window */ /* g_clear_object (&priv->lockdown_settings); */ @@ -5292,7 +5253,7 @@ static const GActionEntry actions[] = { { "go-next-page", pps_window_cmd_go_next_page }, { "go-first-page", pps_window_cmd_go_first_page }, { "go-last-page", pps_window_cmd_go_last_page }, - { "select-page", pps_window_cmd_focus_page_selector }, + { "select-page", pps_window_cmd_select_page }, { "dual-page", NULL, NULL, "false", pps_window_cmd_dual }, { "dual-odd-left", NULL, NULL, "false", pps_window_cmd_dual_odd_pages_left }, { "rtl", NULL, NULL, "false", pps_window_cmd_rtl }, @@ -6288,11 +6249,11 @@ pps_window_init (PpsWindow *pps_window) G_CALLBACK (activate_link_cb), pps_window); - page_cache_mb = g_settings_get_uint (pps_window_ensure_settings (pps_window), + page_cache_mb = g_settings_get_uint (priv->settings, GS_PAGE_CACHE_SIZE); pps_view_set_page_cache_size (PPS_VIEW (priv->view), (gsize) page_cache_mb * 1024 * 1024); - allow_links_change_zoom = g_settings_get_boolean (pps_window_ensure_settings (pps_window), + allow_links_change_zoom = g_settings_get_boolean (priv->settings, GS_ALLOW_LINKS_CHANGE_ZOOM); pps_view_set_allow_links_change_zoom (PPS_VIEW (priv->view), allow_links_change_zoom); @@ -6349,7 +6310,6 @@ pps_window_init (PpsWindow *pps_window) G_CALLBACK (view_caret_cursor_moved_cb), pps_window, 0); - priv->default_settings = g_settings_new (GS_SCHEMA_NAME".Default"); g_settings_delay (priv->default_settings); pps_window_setup_default (pps_window); @@ -6393,6 +6353,9 @@ pps_window_class_init (PpsWindowClass *pps_window_class) gtk_widget_class_bind_template_child_private (widget_class, PpsWindow, page_selector); gtk_widget_class_bind_template_child_private (widget_class, PpsWindow, header_bar); + gtk_widget_class_bind_template_child_private (widget_class, PpsWindow, default_settings); + gtk_widget_class_bind_template_child_private (widget_class, PpsWindow, settings); + /* sidebar */ gtk_widget_class_bind_template_child_private (widget_class, PpsWindow, sidebar_links); gtk_widget_class_bind_template_child_private (widget_class, PpsWindow, sidebar_annots); @@ -6450,6 +6413,11 @@ pps_window_class_init (PpsWindowClass *pps_window_class) /* password view */ gtk_widget_class_bind_template_callback (widget_class, pps_window_password_view_unlock); gtk_widget_class_bind_template_callback (widget_class, pps_window_password_view_cancelled); + + /* settings */ + gtk_widget_class_bind_template_callback (widget_class, override_restrictions_changed); + gtk_widget_class_bind_template_callback (widget_class, page_cache_size_changed); + gtk_widget_class_bind_template_callback (widget_class, allow_links_change_zoom_changed); } /** diff --git a/shell/pps-window.ui b/shell/pps-window.ui index 9da6ca77f62f2e649f93cbcdcfa8461c858cb6d4..9a74e440280eb4757c810071103823b91a660977 100644 --- a/shell/pps-window.ui +++ b/shell/pps-window.ui @@ -17,6 +17,17 @@ + + org.gnome.Papers.Default + + + + org.gnome.Papers + + + + +