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 @@
+
+
+
+
1280
1280