[evince/wip/gpoo/update-save-settings] shell: Save settings automatically at closing a document
- From: Germán Poo-Caamaño <gpoo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/wip/gpoo/update-save-settings] shell: Save settings automatically at closing a document
- Date: Thu, 17 Mar 2022 20:04:50 +0000 (UTC)
commit 135a6eade92ed0845ca068fcd80f16d4128a5a93
Author: Germán Poo-Caamaño <gpoo gnome org>
Date: Thu Mar 17 16:34:00 2022 -0300
shell: Save settings automatically at closing a document
Remove 'Save curent settings as default` because it was confusing,
and a non-standard action in the desktop.
Save exactly the same settings once we know the document will be
closed, and when there is an actual document opened (e.g. not in
recent view).
Fixes #1138
shell/ev-application.c | 1 -
shell/ev-window.c | 84 ++++++++++++++++++++++++--------------------------
shell/evince-menus.ui | 4 ---
3 files changed, 41 insertions(+), 48 deletions(-)
---
diff --git a/shell/ev-application.c b/shell/ev-application.c
index bd4d64b07..d4ca0e6e0 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -951,7 +951,6 @@ ev_application_startup (GApplication *gapplication)
"win.show-properties", "<alt>Return", NULL,
"win.copy", "<Ctrl>C", "<Ctrl>Insert", NULL,
"win.select-all", "<Ctrl>A", NULL,
- "win.save-settings", "<Ctrl>T", NULL,
"win.add-bookmark", "<Ctrl>D", NULL,
"win.delete-bookmark", "<Ctrl><Shift>D", NULL,
"win.close", "<Ctrl>W", NULL,
diff --git a/shell/ev-window.c b/shell/ev-window.c
index b6ea5285e..9b27fa879 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -570,7 +570,6 @@ ev_window_update_actions_sensitivity (EvWindow *ev_window)
/* Other actions that must be disabled in recent view, in
* case they have a shortcut or gesture associated
*/
- ev_window_set_action_enabled (ev_window, "save-settings", !recent_view_mode);
ev_window_set_action_enabled (ev_window, "show-side-pane", !recent_view_mode);
ev_window_set_action_enabled (ev_window, "goto-bookmark", !recent_view_mode);
ev_window_set_action_enabled (ev_window, "scroll-forward", !recent_view_mode);
@@ -4110,6 +4109,44 @@ ev_window_check_print_queue (EvWindow *ev_window)
return TRUE;
}
+static void
+ev_window_save_settings (EvWindow *ev_window)
+{
+ EvWindowPrivate *priv = GET_PRIVATE (ev_window);
+ EvView *ev_view = EV_VIEW (priv->view);
+ EvDocumentModel *model = priv->model;
+ GSettings *settings = priv->default_settings;
+ EvSizingMode sizing_mode;
+
+ g_settings_set_boolean (settings, "continuous",
+ ev_document_model_get_continuous (model));
+ g_settings_set_boolean (settings, "dual-page",
+ ev_document_model_get_dual_page (model));
+ g_settings_set_boolean (settings, "dual-page-odd-left",
+ ev_document_model_get_dual_page_odd_pages_left (model));
+ g_settings_set_boolean (settings, "fullscreen",
+ ev_document_model_get_fullscreen (model));
+ g_settings_set_boolean (settings, "inverted-colors",
+ ev_document_model_get_inverted_colors (model));
+ sizing_mode = ev_document_model_get_sizing_mode (model);
+ g_settings_set_enum (settings, "sizing-mode", sizing_mode);
+ if (sizing_mode == EV_SIZING_FREE) {
+ gdouble zoom = ev_document_model_get_scale (model);
+
+ zoom *= 72.0 / ev_document_misc_get_widget_dpi (GTK_WIDGET (ev_window));
+ g_settings_set_double (settings, "zoom", zoom);
+ }
+ g_settings_set_boolean (settings, "show-sidebar",
+ gtk_widget_get_visible (priv->sidebar));
+ g_settings_set_int (settings, "sidebar-size",
+ gtk_paned_get_position (GTK_PANED (priv->hpaned)));
+ g_settings_set_string (settings, "sidebar-page",
+ ev_window_sidebar_get_current_page_id (ev_window));
+ g_settings_set_boolean (settings, "enable-spellchecking",
+ ev_view_get_enable_spellchecking (ev_view));
+ g_settings_apply (settings);
+}
+
static gboolean
ev_window_close (EvWindow *ev_window)
{
@@ -4130,6 +4167,9 @@ ev_window_close (EvWindow *ev_window)
if (ev_window_check_print_queue (ev_window))
return FALSE;
+ if (!ev_window_is_recent_view (ev_window))
+ ev_window_save_settings (ev_window);
+
return TRUE;
}
@@ -4930,47 +4970,6 @@ ev_window_cmd_view_enable_spellchecking (GSimpleAction *action,
g_simple_action_set_state (action, state);
}
-static void
-ev_window_cmd_edit_save_settings (GSimpleAction *action,
- GVariant *state,
- gpointer user_data)
-{
- EvWindow *ev_window = user_data;
- EvWindowPrivate *priv = GET_PRIVATE (ev_window);
- EvView *ev_view = EV_VIEW (priv->view);
- EvDocumentModel *model = priv->model;
- GSettings *settings = priv->default_settings;
- EvSizingMode sizing_mode;
-
- g_settings_set_boolean (settings, "continuous",
- ev_document_model_get_continuous (model));
- g_settings_set_boolean (settings, "dual-page",
- ev_document_model_get_dual_page (model));
- g_settings_set_boolean (settings, "dual-page-odd-left",
- ev_document_model_get_dual_page_odd_pages_left (model));
- g_settings_set_boolean (settings, "fullscreen",
- ev_document_model_get_fullscreen (model));
- g_settings_set_boolean (settings, "inverted-colors",
- ev_document_model_get_inverted_colors (model));
- sizing_mode = ev_document_model_get_sizing_mode (model);
- g_settings_set_enum (settings, "sizing-mode", sizing_mode);
- if (sizing_mode == EV_SIZING_FREE) {
- gdouble zoom = ev_document_model_get_scale (model);
-
- zoom *= 72.0 / ev_document_misc_get_widget_dpi (GTK_WIDGET (ev_window));
- g_settings_set_double (settings, "zoom", zoom);
- }
- g_settings_set_boolean (settings, "show-sidebar",
- gtk_widget_get_visible (priv->sidebar));
- g_settings_set_int (settings, "sidebar-size",
- gtk_paned_get_position (GTK_PANED (priv->hpaned)));
- g_settings_set_string (settings, "sidebar-page",
- ev_window_sidebar_get_current_page_id (ev_window));
- g_settings_set_boolean (settings, "enable-spellchecking",
- ev_view_get_enable_spellchecking (ev_view));
- g_settings_apply (settings);
-}
-
static void
ev_window_cmd_view_zoom_in (GSimpleAction *action,
GVariant *parameter,
@@ -6382,7 +6381,6 @@ static const GActionEntry actions[] = {
{ "show-properties", ev_window_cmd_file_properties },
{ "copy", ev_window_cmd_edit_copy },
{ "select-all", ev_window_cmd_edit_select_all },
- { "save-settings", ev_window_cmd_edit_save_settings },
{ "go-previous-page", ev_window_cmd_go_previous_page },
{ "go-next-page", ev_window_cmd_go_next_page },
{ "go-first-page", ev_window_cmd_go_first_page },
diff --git a/shell/evince-menus.ui b/shell/evince-menus.ui
index 35b8c28f4..c51b4916f 100644
--- a/shell/evince-menus.ui
+++ b/shell/evince-menus.ui
@@ -102,10 +102,6 @@
</item>
</section>
<section>
- <item>
- <attribute name="label" translatable="yes">Save Current Settings as Defa_ult</attribute>
- <attribute name="action">win.save-settings</attribute>
- </item>
<item>
<attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
<attribute name="action">win.show-help-overlay</attribute>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]