]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Remove current item highlighting in the Places Panel
authorFrank Reininghaus <frank78ac@googlemail.com>
Fri, 27 Jun 2014 11:02:12 +0000 (13:02 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Thu, 3 Jul 2014 22:42:38 +0000 (00:42 +0200)
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

src/kitemviews/kitemlistview.cpp

index 281258898ba456668afc94a8fdae67800e95bf17..756f9e39a41b7ef40585d39a7022a3b4d84f72a3 100644 (file)
@@ -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());