┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistview.cpp
diff options
context:
space:
mode:
authorLuca Beltrame <[email protected]>2014-07-04 07:22:29 +0200
committerLuca Beltrame <[email protected]>2014-07-04 07:22:29 +0200
commitc640dec3f621af25ecf0424bf3197dd439077438 (patch)
treec4e50155a526e175009b7a746628df687a22006f /src/kitemviews/kitemlistview.cpp
parentfb9c403518fc6f0996185eac00a7f15da2f586fc (diff)
parent20e13c31df64f5fe3dfd410a1b0a0bd78c07ba32 (diff)
Merge branch 'master' into frameworks
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 fed9b7729..d35dd896e 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -1338,14 +1338,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);
+ }
}
#pragma message("TODO: port accessibility otherwise the following line asserts")
//QAccessible::updateAccessibility(this, current+1, QAccessible::Focus);
@@ -1985,7 +1989,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());