File differentiate_zoom_levels_between_view_modes.patch of Package thunar.18512
From 9d0b2fc475de9bb0911a39ba623efe104eb675b8 Mon Sep 17 00:00:00 2001
From: Alexander Schwinn <alexxcons@xfce.org>
Date: Sat, 21 Jan 2023 23:27:24 +0100
Subject: [PATCH] Directory specific settings - zoom improvm. (#832)
When directory specific settings are enabled, zoom level now is stored per view-type
---
thunar/thunar-file.c | 15 +++++++++++++++
thunar/thunar-standard-view.c | 13 ++++++++++---
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c
index 6961fbf50..ca2a951e2 100644
--- a/thunar/thunar-file.c
+++ b/thunar/thunar-file.c
@@ -4978,6 +4978,9 @@ thunar_file_clear_directory_specific_settings (ThunarFile *file)
g_file_info_remove_attribute (file->info, "metadata::thunar-sort-column");
g_file_info_remove_attribute (file->info, "metadata::thunar-sort-order");
g_file_info_remove_attribute (file->info, "metadata::thunar-zoom-level");
+ g_file_info_remove_attribute (file->info, "metadata::thunar-zoom-level-ThunarDetailsView");
+ g_file_info_remove_attribute (file->info, "metadata::thunar-zoom-level-ThunarIconView");
+ g_file_info_remove_attribute (file->info, "metadata::thunar-zoom-level-ThunarCompactView");
g_file_set_attribute (file->gfile, "metadata::thunar-view-type", G_FILE_ATTRIBUTE_TYPE_INVALID,
NULL, G_FILE_QUERY_INFO_NONE, NULL, NULL);
@@ -4987,6 +4990,12 @@ thunar_file_clear_directory_specific_settings (ThunarFile *file)
NULL, G_FILE_QUERY_INFO_NONE, NULL, NULL);
g_file_set_attribute (file->gfile, "metadata::thunar-zoom-level", G_FILE_ATTRIBUTE_TYPE_INVALID,
NULL, G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ g_file_set_attribute (file->gfile, "metadata::thunar-zoom-level-ThunarDetailsView", G_FILE_ATTRIBUTE_TYPE_INVALID,
+ NULL, G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ g_file_set_attribute (file->gfile, "metadata::thunar-zoom-level-ThunarIconView", G_FILE_ATTRIBUTE_TYPE_INVALID,
+ NULL, G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ g_file_set_attribute (file->gfile, "metadata::thunar-zoom-level-ThunarCompactView", G_FILE_ATTRIBUTE_TYPE_INVALID,
+ NULL, G_FILE_QUERY_INFO_NONE, NULL, NULL);
thunar_file_changed (file);
}
@@ -5017,6 +5026,12 @@ thunar_file_has_directory_specific_settings (ThunarFile *file)
return TRUE;
if (g_file_info_has_attribute (file->info, "metadata::thunar-zoom-level"))
return TRUE;
+ if (g_file_info_has_attribute (file->info, "metadata::thunar-zoom-level-ThunarDetailsView"))
+ return TRUE;
+ if (g_file_info_has_attribute (file->info, "metadata::thunar-zoom-level-ThunarIconView"))
+ return TRUE;
+ if (g_file_info_has_attribute (file->info, "metadata::thunar-zoom-level-ThunarCompactView"))
+ return TRUE;
return FALSE;
}
diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c
index 0ad6b9c4e..3476fc546 100644
--- a/thunar/thunar-standard-view.c
+++ b/thunar/thunar-standard-view.c
@@ -1840,7 +1840,8 @@ thunar_standard_view_set_zoom_level (ThunarView *view,
ThunarZoomLevel zoom_level)
{
ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (view);
- gboolean newThumbnailSize = FALSE;
+ gboolean newThumbnailSize = FALSE;
+ gchar *zoom_level_attribute_name;
/* check if we have a new zoom-level here */
if (G_LIKELY (standard_view->priv->zoom_level != zoom_level))
@@ -1854,7 +1855,9 @@ thunar_standard_view_set_zoom_level (ThunarView *view,
if (zoom_level_name != NULL)
{
/* do not set it asynchronously to ensure the correct operation of thumbnails (check the commit message for more) */
- thunar_file_set_metadata_setting (standard_view->priv->current_directory, "zoom-level", zoom_level_name, FALSE);
+ zoom_level_attribute_name = g_strdup_printf ("zoom-level-%s", G_OBJECT_TYPE_NAME (standard_view));
+ thunar_file_set_metadata_setting (standard_view->priv->current_directory, zoom_level_attribute_name, zoom_level_name, FALSE);
+ g_free (zoom_level_attribute_name);
}
}
@@ -1901,6 +1904,7 @@ thunar_standard_view_apply_directory_specific_settings (ThunarStandardView *stan
ThunarColumn sort_column;
GtkSortType sort_order;
gint zoom_level;
+ gchar *zoom_level_attribute_name;
/* get the default sort column and sort order */
g_object_get (G_OBJECT (standard_view->preferences), "last-sort-column", &sort_column, "last-sort-order", &sort_order, NULL);
@@ -1908,7 +1912,10 @@ thunar_standard_view_apply_directory_specific_settings (ThunarStandardView *stan
/* get the stored directory specific settings (if any) */
sort_column_name = thunar_file_get_metadata_setting (directory, "sort-column");
sort_order_name = thunar_file_get_metadata_setting (directory, "sort-order");
- zoom_level_name = thunar_file_get_metadata_setting (directory, "zoom-level");
+
+ zoom_level_attribute_name = g_strdup_printf ("zoom-level-%s", G_OBJECT_TYPE_NAME (standard_view));
+ zoom_level_name = thunar_file_get_metadata_setting (directory, zoom_level_attribute_name);
+ g_free (zoom_level_attribute_name);
/* convert the sort column name to a value */
if (sort_column_name != NULL)
--
GitLab
From 99ba6602cb2848be3235abb049a8b8cd65dcd751 Mon Sep 17 00:00:00 2001
From: Alexander Schwinn <alexxcons@xfce.org>
Date: Sat, 21 Jan 2023 23:37:07 +0100
Subject: [PATCH] Add fallback to shared zoom-level (#832)
---
thunar/thunar-standard-view.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c
index 3476fc546..4ae94be3b 100644
--- a/thunar/thunar-standard-view.c
+++ b/thunar/thunar-standard-view.c
@@ -1917,6 +1917,10 @@ thunar_standard_view_apply_directory_specific_settings (ThunarStandardView *stan
zoom_level_name = thunar_file_get_metadata_setting (directory, zoom_level_attribute_name);
g_free (zoom_level_attribute_name);
+ /* View specific zoom level was added later on .. fall back to shared zoom-level if not found */
+ if (zoom_level_name == NULL)
+ zoom_level_name = thunar_file_get_metadata_setting (directory, "zoom-level");
+
/* convert the sort column name to a value */
if (sort_column_name != NULL)
thunar_column_value_from_string (sort_column_name, &sort_column);
--
GitLab