diff options
| author | Frank Reininghaus <[email protected]> | 2011-08-03 18:54:10 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2011-08-04 09:52:45 +0200 |
| commit | 225fd7073e1f8fc35405ad998dd9f382f61b5b4b (patch) | |
| tree | caeb678542c4a24789a733ae52231c92e69e973b /src/kitemviews/kitemlistview.cpp | |
| parent | e326199727328bf8e130632361f697e7a350fd9b (diff) | |
Underline the current item in KFileItemListView
It still looks a bit ugly, but at least we can see the current
item now :-) It is only updated by mouse clicks at the moment.
Diffstat (limited to 'src/kitemviews/kitemlistview.cpp')
| -rw-r--r-- | src/kitemviews/kitemlistview.cpp | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index d5e2bf875..b89f4d0f5 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -645,6 +645,27 @@ void KItemListView::slotItemsChanged(const KItemRangeList& itemRanges, } } +void KItemListView::currentChanged(int current, int previous) +{ + Q_UNUSED(previous); + + QHashIterator<int, KItemListWidget*> it(m_visibleItems); + while (it.hasNext()) { + it.next(); + + KItemListWidget* widget = it.value(); + KItemListStyleOption styleOption = widget->styleOption(); + if (it.key() == current) { + styleOption.state |= QStyle::State_HasFocus; + widget->setStyleOption(styleOption); + } + else if (styleOption.state & QStyle::State_HasFocus) { + styleOption.state &= ~QStyle::State_HasFocus; + widget->setStyleOption(styleOption); + } + } +} + void KItemListView::slotAnimationFinished(QGraphicsWidget* widget, KItemListViewAnimation::AnimationType type) { @@ -899,7 +920,13 @@ KItemListWidget* KItemListView::createWidget(int index) KItemListWidget* widget = m_widgetCreator->create(this); widget->setVisibleRoles(m_visibleRoles); widget->setVisibleRolesSizes(m_visibleRolesSizes); - widget->setStyleOption(m_styleOption); + + KItemListStyleOption option = m_styleOption; + if (index == m_controller->selectionManager()->currentItem()) { + option.state |= QStyle::State_HasFocus; + } + widget->setStyleOption(option); + widget->setIndex(index); widget->setData(m_model->data(index)); m_visibleItems.insert(index, widget); @@ -957,7 +984,13 @@ void KItemListView::setWidgetIndex(KItemListWidget* widget, int index) m_visibleItems.remove(oldIndex); widget->setVisibleRoles(m_visibleRoles); widget->setVisibleRolesSizes(m_visibleRolesSizes); - widget->setStyleOption(m_styleOption); + + KItemListStyleOption option = m_styleOption; + if (index == m_controller->selectionManager()->currentItem()) { + option.state |= QStyle::State_HasFocus; + } + widget->setStyleOption(option); + widget->setIndex(index); widget->setData(m_model->data(index)); m_visibleItems.insert(index, widget); |
