diff options
| author | Wagner Soares <[email protected]> | 2026-02-19 17:57:02 -0300 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2026-03-11 16:33:57 +0000 |
| commit | 0f7a9c681c4f7336362bf8a5d1c41f2bc8ed9215 (patch) | |
| tree | 247b5517d24f773a7d6d964474b8b1d92b257b38 /src/views/dolphinitemlistview.cpp | |
| parent | 69dd9b4ef427a697dc04a329917cdfba62c5b145 (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.cpp | 21 |
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(); |
