]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Improve size adjustment of itemlist editor
authorYifan Zhu <fanzhuyifan@gmail.com>
Wed, 25 Oct 2023 01:40:39 +0000 (18:40 -0700)
committerMéven Car <meven.car@kdemail.net>
Wed, 8 Nov 2023 11:10:42 +0000 (11:10 +0000)
Currently multi-line file names in dolphin only display a single
line when renaming. This commit ensures multi-line filenames have
all lines displayed by calling `document()->adjustSize` in
`KItemListRoleEditor::autoAdjustSize`, and by calling the latter
function after setting up the editor.

BUG: 452587

src/kitemviews/kstandarditemlistwidget.cpp
src/kitemviews/private/kitemlistroleeditor.cpp
src/kitemviews/private/kitemlistroleeditor.h

index e37013f95fe88562313c8c42e1bd7cd72c165b9d..54e1fa50b3bbb9a09af416cfbd12d0a04cb17ea0 100644 (file)
@@ -821,6 +821,7 @@ void KStandardItemListWidget::editedRoleChanged(const QByteArray &current, const
         rect.setWidth(parent->width() - rect.left());
     }
     m_roleEditor->setGeometry(rect.toRect());
+    m_roleEditor->autoAdjustSize();
     m_roleEditor->show();
     m_roleEditor->setFocus();
 }
index f305fadac4924fe3cfb5c84bec613c90e6c06f20..ea03dfa385b2e49731f24e6e230b94706fde7d9e 100644 (file)
@@ -139,6 +139,7 @@ void KItemListRoleEditor::autoAdjustSize()
 {
     const qreal frameBorder = 2 * frameWidth();
 
+    document()->adjustSize();
     const qreal requiredWidth = document()->size().width();
     const qreal availableWidth = size().width() - frameBorder;
     if (requiredWidth > availableWidth) {
index 18304374d48a49b8d71e7557fbd767b0372ec85f..eb8a9cb5edfb3f3cea8f094fb41d02307f4de298 100644 (file)
@@ -51,17 +51,17 @@ Q_SIGNALS:
     void roleEditingFinished(const QByteArray &role, const QVariant &value);
     void roleEditingCanceled(const QByteArray &role, const QVariant &value);
 
-protected:
-    bool event(QEvent *event) override;
-    void keyPressEvent(QKeyEvent *event) override;
-
-private Q_SLOTS:
+public Q_SLOTS:
     /**
      * Increases the size of the editor in case if there is not
      * enough room for the text.
      */
     void autoAdjustSize();
 
+protected:
+    bool event(QEvent *event) override;
+    void keyPressEvent(QKeyEvent *event) override;
+
 private:
     /**
      * Emits the signal roleEditingFinished if m_blockFinishedSignal