diff options
| author | Peter Penz <[email protected]> | 2012-06-08 22:43:43 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-06-08 22:51:01 +0200 |
| commit | 1ddd9c4032870f97fd2e578b246a923cce72088e (patch) | |
| tree | 510dc53763e946bead94426abf2ea77918172234 /src/kitemviews/kstandarditemlistwidget.cpp | |
| parent | ba6b4a663232dd7e2d6e9110eff5857434d78c4b (diff) | |
Inline renaming: Improve focus handling
Fix issue that cancelling the inline-renaming by clicking
on the other split view applies the wrong focus.
Thanks to Frank Reininghaus for the initial patch and noticing
this issue.
CCBUG: 301252
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 4a0ad07f9..69f818c4e 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -688,8 +688,7 @@ void KStandardItemListWidget::slotRoleEditingCanceled(int index, const QByteArray& role, const QVariant& value) { - m_roleEditor->deleteLater(); - m_roleEditor = 0; + closeRoleEditor(); emit roleEditingCanceled(index, role, value); setEditedRole(QByteArray()); } @@ -698,8 +697,7 @@ void KStandardItemListWidget::slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value) { - m_roleEditor->deleteLater(); - m_roleEditor = 0; + closeRoleEditor(); emit roleEditingFinished(index, role, value); setEditedRole(QByteArray()); } @@ -1241,6 +1239,17 @@ QRectF KStandardItemListWidget::roleEditingRect(const QByteArray& role) const return rect; } +void KStandardItemListWidget::closeRoleEditor() +{ + if (m_roleEditor->hasFocus()) { + // If the editing was not ended by a FocusOut event, we have + // to transfer the keyboard focus back to the KItemListContainer. + scene()->views()[0]->parentWidget()->setFocus(); + } + m_roleEditor->deleteLater(); + m_roleEditor = 0; +} + QPixmap KStandardItemListWidget::pixmapForIcon(const QString& name, int size) { const KIcon icon(name); |
