┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphinitemlistview.cpp
diff options
context:
space:
mode:
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();