Commit 7908aff3 authored by Eugene Popov's avatar Eugene Popov Committed by Elvis Angelaccio
Browse files

[DetailsView] Improve zooming

Under some conditions, when zooming, only the size of the icon is changed, but not the entire item, which visually doesn't look good. The main idea of this MR is that when scaling the whole element should be resized, not just the icon, so I came up with some zoom levels for the main icon sizes. With this commit, zooming will resize the entire element, even if the resizing of the icon doesn't affect the size of the entire element.
parent deaf5916
Pipeline #70963 passed with stage
in 4 minutes and 31 seconds
......@@ -226,8 +226,22 @@ void KStandardItemListWidgetInformant::calculateCompactLayoutItemSizeHints(QVect
void KStandardItemListWidgetInformant::calculateDetailsLayoutItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const
{
const KItemListStyleOption& option = view->styleOption();
const qreal height = option.padding * 2 + qMax(option.iconSize, option.fontMetrics.height());
logicalHeightHints.fill(height);
float zoomLevel = 1;
if (option.iconSize >= KIconLoader::SizeEnormous) {
zoomLevel = 2;
} else if (option.iconSize >= KIconLoader::SizeHuge) {
zoomLevel = 1.8;
} else if (option.iconSize >= KIconLoader::SizeLarge) {
zoomLevel = 1.6;
} else if (option.iconSize >= KIconLoader::SizeMedium) {
zoomLevel = 1.4;
} else if (option.iconSize >= KIconLoader::SizeSmallMedium) {
zoomLevel = 1.2;
}
const qreal contentHeight = qMax<qreal>(option.iconSize, zoomLevel * option.fontMetrics.height());
logicalHeightHints.fill(contentHeight + 2 * option.padding);
logicalWidthHint = -1.0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment