┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistview.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2014-06-27 13:02:12 +0200
committerFrank Reininghaus <[email protected]>2014-07-04 00:42:38 +0200
commit4d8f89f55a030758bf818a668bf6edad451df356 (patch)
treefcbd60b54af29442d5e5c4bead7ebadbddb1d069 /src/kitemviews/kitemlistview.cpp
parent1e22db8ba5854d3b596718d370aa0ae1a49ea1ec (diff)
Remove current item highlighting in the Places Panel
In the Places Panel, there is always exactly one selected item, which is equal to the current item. Since the selected item is highlighted by drawing its background in a different color, it is not really necessary to highlight additionally that it is the current item. This is achieved by removing the calls to KItemListWidget::setCurrent(true) from KItemListView. The "current" information in the widget is only used for deciding if the "current item highlighting", like an underline in Oxygen, should be drawn. The motivation for this change is that I have seem some complaints about the "current item" highlighting, which can be even more distracting with non-Oxygen styles. REVIEW: 119019
Diffstat (limited to 'src/kitemviews/kitemlistview.cpp')
-rw-r--r--src/kitemviews/kitemlistview.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index 281258898..756f9e39a 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -1332,14 +1332,18 @@ void KItemListView::slotCurrentChanged(int current, int previous)
{
Q_UNUSED(previous);
- KItemListWidget* previousWidget = m_visibleItems.value(previous, 0);
- if (previousWidget) {
- previousWidget->setCurrent(false);
- }
+ // In SingleSelection mode (e.g., in the Places Panel), the current item is
+ // always the selected item. It is not necessary to highlight the current item then.
+ if (m_controller->selectionBehavior() != KItemListController::SingleSelection) {
+ KItemListWidget* previousWidget = m_visibleItems.value(previous, 0);
+ if (previousWidget) {
+ previousWidget->setCurrent(false);
+ }
- KItemListWidget* currentWidget = m_visibleItems.value(current, 0);
- if (currentWidget) {
- currentWidget->setCurrent(true);
+ KItemListWidget* currentWidget = m_visibleItems.value(current, 0);
+ if (currentWidget) {
+ currentWidget->setCurrent(true);
+ }
}
QAccessible::updateAccessibility(this, current+1, QAccessible::Focus);
}
@@ -1978,7 +1982,12 @@ void KItemListView::updateWidgetProperties(KItemListWidget* widget, int index)
widget->setStyleOption(m_styleOption);
const KItemListSelectionManager* selectionManager = m_controller->selectionManager();
- widget->setCurrent(index == selectionManager->currentItem());
+
+ // In SingleSelection mode (e.g., in the Places Panel), the current item is
+ // always the selected item. It is not necessary to highlight the current item then.
+ if (m_controller->selectionBehavior() != KItemListController::SingleSelection) {
+ widget->setCurrent(index == selectionManager->currentItem());
+ }
widget->setSelected(selectionManager->isSelected(index));
widget->setHovered(false);
widget->setEnabledSelectionToggle(enabledSelectionToggles());