From 7afd2f0ae10f1af594cb83f2ff34161baccf67cc Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 18 Apr 2012 01:14:41 +0200 Subject: Inline renaming fixes - Increase the editor-height in the icons-view if required - Don't try to react on resizings of the parent, just finish the renaming --- src/kitemviews/private/kitemlistroleeditor.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/kitemviews/private/kitemlistroleeditor.cpp') diff --git a/src/kitemviews/private/kitemlistroleeditor.cpp b/src/kitemviews/private/kitemlistroleeditor.cpp index 55af6a9c7..815da4c70 100644 --- a/src/kitemviews/private/kitemlistroleeditor.cpp +++ b/src/kitemviews/private/kitemlistroleeditor.cpp @@ -63,7 +63,7 @@ QByteArray KItemListRoleEditor::role() const bool KItemListRoleEditor::eventFilter(QObject* watched, QEvent* event) { if (watched == parentWidget() && event->type() == QEvent::Resize) { - autoAdjustSize(); + emit roleEditingFinished(m_index, m_role, toPlainText()); } return KTextEdit::eventFilter(watched, event); @@ -99,15 +99,27 @@ void KItemListRoleEditor::keyPressEvent(QKeyEvent* event) void KItemListRoleEditor::autoAdjustSize() { + const qreal frameBorder = 2 * frameWidth(); + const qreal requiredWidth = document()->size().width(); - const qreal availableWidth = size().width() - 2 * frameWidth(); + const qreal availableWidth = size().width() - frameBorder; if (requiredWidth > availableWidth) { - qreal newWidth = requiredWidth + 2 * frameWidth(); + qreal newWidth = requiredWidth + frameBorder; if (parentWidget() && pos().x() + newWidth > parentWidget()->width()) { newWidth = parentWidget()->width() - pos().x(); } resize(newWidth, size().height()); } + + const qreal requiredHeight = document()->size().height(); + const qreal availableHeight = size().height() - frameBorder; + if (requiredHeight > availableHeight) { + qreal newHeight = requiredHeight + frameBorder; + if (parentWidget() && pos().y() + newHeight > parentWidget()->height()) { + newHeight = parentWidget()->height() - pos().y(); + } + resize(size().width(), newHeight); + } } #include "kitemlistroleeditor.moc" -- cgit v1.3.1