┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinitemlistview.cpp
diff options
context:
space:
mode:
authorWagner Soares <[email protected]>2026-02-19 17:57:02 -0300
committerMéven Car <[email protected]>2026-03-11 16:33:57 +0000
commit0f7a9c681c4f7336362bf8a5d1c41f2bc8ed9215 (patch)
tree247b5517d24f773a7d6d964474b8b1d92b257b38 /src/views/dolphinitemlistview.cpp
parent69dd9b4ef427a697dc04a329917cdfba62c5b145 (diff)
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
Diffstat (limited to 'src/views/dolphinitemlistview.cpp')
-rw-r--r--src/views/dolphinitemlistview.cpp21
1 files changed, 16 insertions, 5 deletions
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();