diff options
| author | Frank Reininghaus <[email protected]> | 2014-07-04 00:49:31 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2014-07-04 00:49:46 +0200 |
| commit | 20e13c31df64f5fe3dfd410a1b0a0bd78c07ba32 (patch) | |
| tree | 85276ce9288334d6f46ef6aea8386ebdf8fa187f /src/kitemviews/kstandarditemlistwidget.cpp | |
| parent | 4d8f89f55a030758bf818a668bf6edad451df356 (diff) | |
Improve drawing selected items in Compact/Details View and Places Panel
This commit removes the icon tinting for the selected item in Compact
and Details View, and extends the selection rectangle such that it
includes the icon area as well. The icon tinting can be disturbing, and
having a selection rectangle that only includes the text can look a bit
strange, especially in the Places Panel.
BUG: 304643
REVIEW: 119018
FIXED-IN: 4.14.0
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index e0375480e..998acc066 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -494,6 +494,29 @@ QRectF KStandardItemListWidget::textFocusRect() const return m_textRect; } +QRectF KStandardItemListWidget::selectionRect() const +{ + const_cast<KStandardItemListWidget*>(this)->triggerCacheRefreshing(); + + switch (m_layout) { + case IconsLayout: + return m_textRect; + + case CompactLayout: + case DetailsLayout: { + const int padding = styleOption().padding; + QRectF adjustedIconRect = iconRect().adjusted(-padding, -padding, padding, padding); + return adjustedIconRect | m_textRect; + } + + default: + Q_ASSERT(false); + break; + } + + return m_textRect; +} + QRectF KStandardItemListWidget::expansionToggleRect() const { const_cast<KStandardItemListWidget*>(this)->triggerCacheRefreshing(); @@ -945,7 +968,7 @@ void KStandardItemListWidget::updatePixmapCache() KIconEffect::semiTransparent(m_pixmap); } - if (isSelected()) { + if (m_layout == IconsLayout && isSelected()) { const QColor color = palette().brush(QPalette::Normal, QPalette::Highlight).color(); QImage image = m_pixmap.toImage(); KIconEffect::colorize(image, color, 0.8f); |
