summaryrefslogtreecommitdiffstats
path: root/src/gui/itemviews
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2009-09-14 10:59:39 (GMT)
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2009-09-14 11:07:23 (GMT)
commitf44fe888ee82b9e04879fb353d8f5f29fb4d5229 (patch)
treec5f407e3e39b52d0cd251d732895a6bb57e1901b /src/gui/itemviews
parent2a46755b307adde38f7075f2add01224fd00846b (diff)
downloadQt-f44fe888ee82b9e04879fb353d8f5f29fb4d5229.zip
Qt-f44fe888ee82b9e04879fb353d8f5f29fb4d5229.tar.gz
Qt-f44fe888ee82b9e04879fb353d8f5f29fb4d5229.tar.bz2
Fix RTL text alignment in QComboBox items with SH_ComboBox_Popup
Change 93ba0035f4eadfaf7217d95f18a442d418a064b8 removed truncation of a listview item's bounding rect to the viewport as documented in the commit log. An unwanted result was that the style option passed to the item delegates would sometimes contain a rectangle which was larger than the delegated area. The direct result was that a QComboBox drawn with a style with the SH_Combobox_Popup style hint in an RTL language would align its item text to the right edge of a rectangle which was wider than the popup menu, and thus only part of the text would be visible. Task-number: 260974 Reviewed-by: Olivier
Diffstat (limited to 'src/gui/itemviews')
-rw-r--r--src/gui/itemviews/qlistview.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gui/itemviews/qlistview.cpp b/src/gui/itemviews/qlistview.cpp
index cbb54d8..a4cebe3 100644
--- a/src/gui/itemviews/qlistview.cpp
+++ b/src/gui/itemviews/qlistview.cpp
@@ -965,6 +965,12 @@ void QListView::paintEvent(QPaintEvent *e)
for (QVector<QModelIndex>::const_iterator it = toBeRendered.constBegin(); it != end; ++it) {
Q_ASSERT((*it).isValid());
option.rect = visualRect(*it);
+
+ if (flow() == TopToBottom)
+ option.rect.setWidth(qMin(viewport()->size().width(), option.rect.width()));
+ else
+ option.rect.setHeight(qMin(viewport()->size().height(), option.rect.height()));
+
option.state = state;
if (selections && selections->isSelected(*it))
option.state |= QStyle::State_Selected;