From 0f7a9c681c4f7336362bf8a5d1c41f2bc8ed9215 Mon Sep 17 00:00:00 2001 From: Wagner Soares Date: Thu, 19 Feb 2026 17:57:02 -0300 Subject: viewproperties: Add per-folder zoom Adds ZoomLevel flag to the directory and uses it instead of global settings when globalViewProps is set to false. CCBUG: 169405 --- src/views/dolphinitemlistview.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/views/dolphinitemlistview.cpp') diff --git a/src/views/dolphinitemlistview.cpp b/src/views/dolphinitemlistview.cpp index f9e710a31..b3ec65eac 100644 --- a/src/views/dolphinitemlistview.cpp +++ b/src/views/dolphinitemlistview.cpp @@ -45,13 +45,22 @@ void DolphinItemListView::setZoomLevel(int level) m_zoomLevel = level; + const bool useGlobalViewProps = GeneralSettings::globalViewProps(); ViewModeSettings settings(itemLayout()); + if (previewsShown()) { - const int previewSize = ZoomLevelInfo::iconSizeForZoomLevel(level); - settings.setPreviewSize(previewSize); + m_previewSize = ZoomLevelInfo::iconSizeForZoomLevel(level); + // Only update the icon size settings if we're using global view props + // to prevent inconsistent state on zoom level changes + if (useGlobalViewProps) { + settings.setPreviewSize(m_previewSize); + } } else { - const int iconSize = ZoomLevelInfo::iconSizeForZoomLevel(level); - settings.setIconSize(iconSize); + // Same as above + m_iconSize = ZoomLevelInfo::iconSizeForZoomLevel(level); + if (useGlobalViewProps) { + settings.setIconSize(m_iconSize); + } } updateGridSize(); @@ -167,9 +176,11 @@ void DolphinItemListView::updateFont() void DolphinItemListView::updateGridSize() { const ViewModeSettings settings(itemLayout()); + const bool useGlobalViewProps = GeneralSettings::globalViewProps(); // Calculate the size of the icon - const int iconSize = previewsShown() ? settings.previewSize() : settings.iconSize(); + // Only use zoom stored in settings if we're using global view props + const int iconSize = useGlobalViewProps ? (previewsShown() ? settings.previewSize() : settings.iconSize()) : (previewsShown() ? m_previewSize : m_iconSize); m_zoomLevel = ZoomLevelInfo::zoomLevelForIconSize(QSize(iconSize, iconSize)); KItemListStyleOption option = styleOption(); -- cgit v1.3