libqt5-qtquickcontrols/0001-Correct-sizing-of-combobox-items.patch
2014-11-10 16:28:29 +00:00

58 lines
2.4 KiB
Diff

From 4d9753fd68fb91b4a839e546553b751a455a9818 Mon Sep 17 00:00:00 2001
From: Marco Martin <mart@kde.org>
Date: Mon, 27 Oct 2014 17:24:11 +0100
Subject: [PATCH 1/1] Correct sizing of combobox items
The qstyle can set as preferred size for itemview items a different
size than the text height depending from the result of
sizeFromContents( CT_ItemViewItem, ..
Examples of styles that do this, are Oxygen and Breeze,
in order to have a bit more spacing.
This makes the combobox render incorrectly.
This patch makes use of the size hint of the qstyle instead of the
text height. Since the height can be more than the font height,
the text (and optional icon) are now drawn vertically centered
in the delegate.
Change-Id: I898d85c994d5760979750c2f3a5dafd83f1e3cbd
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
(cherry picked from commit 04ec29f8b3abea2297a1f5c033bef49ba0405c34)
---
src/controls/Private/qquickstyleitem.cpp | 2 ++
src/controls/Styles/Desktop/ComboBoxStyle.qml | 4 ++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/controls/Private/qquickstyleitem.cpp b/src/controls/Private/qquickstyleitem.cpp
index 4da6773afa94bf9725162566ee3aeb89d0b251e7..e810e473245f37e7b950c808294b39e8e55f2e12 100644
--- a/src/controls/Private/qquickstyleitem.cpp
+++ b/src/controls/Private/qquickstyleitem.cpp
@@ -334,6 +334,8 @@ void QQuickStyleItem::initStyleOption()
opt->features = QStyleOptionViewItem::HasDisplay;
opt->text = text();
opt->textElideMode = Qt::ElideRight;
+ opt->displayAlignment = Qt::AlignLeft | Qt::AlignVCenter;
+ opt->decorationAlignment = Qt::AlignCenter;
resolvePalette();
needsResolvePalette = false;
QPalette pal = m_styleoption->palette;
diff --git a/src/controls/Styles/Desktop/ComboBoxStyle.qml b/src/controls/Styles/Desktop/ComboBoxStyle.qml
index 9c8bf608a7f14e529ef1395aca0278bb0f481ee8..a13d80533c64c66c425608ec0ca13d212c1f10aa 100644
--- a/src/controls/Styles/Desktop/ComboBoxStyle.qml
+++ b/src/controls/Styles/Desktop/ComboBoxStyle.qml
@@ -105,8 +105,8 @@ Style {
elementType: "itemrow"
selected: styleData.selected
- implicitWidth: textItem.contentWidth
- implicitHeight: textItem.contentHeight
+ implicitWidth: textItem.implicitWidth
+ implicitHeight: textItem.implicitHeight
StyleItem {
id: textItem
--
2.1.2