┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/private/kitemlistroleeditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/private/kitemlistroleeditor.cpp')
-rw-r--r--src/kitemviews/private/kitemlistroleeditor.cpp18
1 files changed, 15 insertions, 3 deletions
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"