diff --git a/src/filewidgets/kdiroperator.cpp b/src/filewidgets/kdiroperator.cpp --- a/src/filewidgets/kdiroperator.cpp +++ b/src/filewidgets/kdiroperator.cpp @@ -1633,6 +1633,9 @@ d->previewGenerator->setPreviewShown(previewShown); d->actionCollection->action(QStringLiteral("inline preview"))->setChecked(previewShown); + // set grid and previews + d->updateListViewGrid(); + // ensure we change everything needed d->_k_slotChangeDecorationPosition(); @@ -2567,6 +2570,13 @@ return; } + const QFontMetrics metrics(itemView->viewport()->font()); + + // hide icon previews when they are too small + if (showPreviews) { + previewGenerator->setPreviewShown(itemView->iconSize().height() > metrics.height() * 2); + } + QListView *view = qobject_cast(itemView); if (!view) { @@ -2582,7 +2592,6 @@ delegate->setMaximumSize(QSize()); } } else { - const QFontMetrics metrics(itemView->viewport()->font()); int size = itemView->iconSize().height() + metrics.height() * 2; // some heuristics for good looking. let's guess width = height * (3 / 2) is nice view->setGridSize(QSize(size * (3.0 / 2.0), size + metrics.height()));