diff options
| author | Méven Car <[email protected]> | 2023-09-02 11:30:25 +0200 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2023-09-02 14:42:54 +0200 |
| commit | fae5fec96454fbc848f5402b1d1d758bd7ff2d8d (patch) | |
| tree | 7ea84a5ae4e8e8d2b8dd7455bf17174c848aa420 /src/kitemviews/kfileitemlistview.cpp | |
| parent | 012f8a224ab83ba4337bdb99bf7c8566e365c14e (diff) | |
Add focusOut and focusIn event support for KFileItemListView and update selected widget on focus change
Diffstat (limited to 'src/kitemviews/kfileitemlistview.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemlistview.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index 2ff5c9fb9..954e6ab88 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -326,6 +326,31 @@ void KFileItemListView::resizeEvent(QGraphicsSceneResizeEvent *event) triggerVisibleIndexRangeUpdate(); } +void KFileItemListView::focusInEvent(QFocusEvent *event) +{ + Q_UNUSED(event) + updateSelectedWidgets(); +} + +void KFileItemListView::focusOutEvent(QFocusEvent *event) +{ + Q_UNUSED(event) + updateSelectedWidgets(); +} + +void KFileItemListView::updateSelectedWidgets() +{ + const auto visibleWidgets = visibleItemListWidgets(); + for (KItemListWidget *widget : visibleWidgets) { + if (widget->isSelected()) { + auto w = qobject_cast<KFileItemListWidget *>(widget); + if (w) { + w->forceUpdate(); + } + } + } +} + void KFileItemListView::slotItemsRemoved(const KItemRangeList &itemRanges) { KStandardItemListView::slotItemsRemoved(itemRanges); |
