┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistview.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2011-08-03 18:54:10 +0200
committerFrank Reininghaus <[email protected]>2011-08-04 09:52:45 +0200
commit225fd7073e1f8fc35405ad998dd9f382f61b5b4b (patch)
treecaeb678542c4a24789a733ae52231c92e69e973b /src/kitemviews/kitemlistview.cpp
parente326199727328bf8e130632361f697e7a350fd9b (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.cpp37
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);