summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJens Bache-Wiig <jens.bache-wiig@digia.com>2013-05-27 13:27:01 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-27 14:12:57 +0200
commitc796677a7b8f049b2bb902f1ec7f2251f295ead3 (patch)
treef84823fbfcd73fa0752f097a4732ce77b496b2b6 /src
parentdca452260217b1b63f9874d3d436a1b910ad4a41 (diff)
Fix item view selection color
We need to update the active palette text color every time the state changes. Change-Id: I7861eb4be76ccaeb58e9ff9aea58fa54d4f8d4c9 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/private/qquickstyleitem.cpp11
-rw-r--r--src/styles/Desktop/TableViewStyle.qml8
2 files changed, 13 insertions, 6 deletions
diff --git a/src/private/qquickstyleitem.cpp b/src/private/qquickstyleitem.cpp
index cfbb36c89..422d9a8e5 100644
--- a/src/private/qquickstyleitem.cpp
+++ b/src/private/qquickstyleitem.cpp
@@ -938,8 +938,8 @@ QVariant QQuickStyleItem::styleHint(const QString &metric)
if (metric == "comboboxpopup") {
return qApp->style()->styleHint(QStyle::SH_ComboBox_Popup, m_styleoption);
} else if (metric == "highlightedTextColor") {
- QPalette pal = qApp->palette();
- pal.setCurrentColorGroup(active()? QPalette::Active : QPalette::Inactive);
+ QPalette pal = QApplication::palette("QAbstractItemView");
+ pal.setCurrentColorGroup(m_styleoption->palette.currentColorGroup());
return pal.highlightedText().color().name();
} else if (metric == "textColor") {
QPalette pal = qApp->palette();
@@ -1192,8 +1192,11 @@ void QQuickStyleItem::paint(QPainter *painter)
pixmap.fill(Qt::transparent);
QPainter pixpainter(&pixmap);
qApp->style()->drawPrimitive(QStyle::PE_PanelItemViewRow, m_styleoption, &pixpainter);
- if (!qApp->style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected) && selected())
- pixpainter.fillRect(m_styleoption->rect, m_styleoption->palette.highlight());
+ if ((style() == "mac" || !qApp->style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected)) && selected()) {
+ QPalette pal = QApplication::palette("QAbstractItemView");
+ pal.setCurrentColorGroup(m_styleoption->palette.currentColorGroup());
+ pixpainter.fillRect(m_styleoption->rect, pal.highlight());
+ }
QPixmapCache::insert(pmKey, pixmap);
}
painter->drawPixmap(0, 0, pixmap);
diff --git a/src/styles/Desktop/TableViewStyle.qml b/src/styles/Desktop/TableViewStyle.qml
index da6a47e55..52fb96357 100644
--- a/src/styles/Desktop/TableViewStyle.qml
+++ b/src/styles/Desktop/TableViewStyle.qml
@@ -46,8 +46,8 @@ ScrollViewStyle {
readonly property TableView control: __control
property bool activateItemOnSingleClick: __styleitem.styleHint("activateItemOnSingleClick")
- property color textColor: __styleitem.styleHint("textColor")
- property color highlightedTextColor: __styleitem.styleHint("highlightedTextColor")
+ property color textColor: __styleitem.textColor
+ property color highlightedTextColor: __styleitem.highlightedTextColor
property StyleItem __styleitem: StyleItem{
property color textColor: styleHint("textColor")
@@ -55,6 +55,10 @@ ScrollViewStyle {
elementType: "item"
visible: false
active: control.activeFocus
+ onActiveChanged: {
+ highlightedTextColor = styleHint("highlightedTextColor")
+ textColor = styleHint("textColor")
+ }
}
property Component headerDelegate: StyleItem {