Bug 452994 - Name field doesn't seem to have any history; cannot undo or redo any text changes with Ctrl+Z or Shift+Ctrl+Z
Summary: Name field doesn't seem to have any history; cannot undo or redo any text cha...
Alias: None
Product: frameworks-kio
Classification: Frameworks and Libraries
Component: Open/save dialogs (show other bugs)
Version: 5.93.0
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: KIO Bugs
Keywords: usability
Depends on:
Reported: 2022-04-25 15:52 UTC by redashesyellowflowers
Modified: 2022-07-09 18:07 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.97


Note You need to log in before you can comment on or make changes to this bug.
Description redashesyellowflowers 2022-04-25 15:52:00 UTC
KDialog's Name field doesn't seem to have any history. Cannot undo or redo any text changes with Ctrl+Z or Shift+Ctrl+Z. I'm not sure if this is a bug or a feature request as I'm not sure if KDialog has this feature but it's turned off for some reason.

1. Open a browser, and try to save an element. KDialog opens. 
2. Type some text into the Name field.
3. Try to use Ctrl+Z or Shift+Ctrl+Z to undo or redo the changes.


There doesn't seem to be any text history saved, so you can't undo or redo the changes.


The problem is that if I spend 30 seconds typing some text to customize my file name just as I want it, and accidentally select a file in the Directory Contents view, I lose everything I typed. Or if I copy and paste text into the field and accidently overwrite existing text, I lose all my previous text. This happens annoyingly often. 

A dialog manager needs a text history feature.

Linux/KDE Plasma: KDE Neon 20.04; Fedora 35

[Fedora KDE 35 Version Numbers Below]
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.91.0
Qt Version: 5.15.2

Comment 2 Ahmad Samir 2022-07-03 19:52:38 UTC
Git commit 331aad501acea58013a7cf89e18919f945394396 by Ahmad Samir.
Committed on 03/07/2022 at 19:26.
Pushed by ahmadsamir into branch 'master'.

KFileWidget: remove location history dummy-entry related code

This code was used in m_locationEdit ("Name" combobox).

The issue with this code is that it ultimately invokes QLineEdit::setText(),
which resets the undo/redo steps for the text in the lineedit at index -1,
with every key press event.

So we lose one functionality, showing the corresponding icon for the url in
the lineedit, but gain the undo/redo functionality, the latter being a
functionality that is available/expectted in all Qt/KDE lineedits.

0x00007ffff6b9aa40 in QLineEdit::setText(QString const&)@plt () from /lib64/libQt5Widgets.so.5
0x00007ffff6cb8a83 in QComboBoxPrivate::_q_dataChanged (this=0x5555558f9560, topLeft=..., bottomRight=...)

0x00007ffff5e23235 in QAbstractItemModel::dataChanged (this=this@entry=0x5555558f9800, _t1=..., _t2=..., _t3=...)
0x00007ffff66d7780 in QStandardItemModelPrivate::itemChanged (this=<optimized out>, item=item@entry=0x555555d8cfe0, roles=...)
0x00007ffff66d7ff8 in QStandardItem::setData (this=0x555555d8cfe0, value=..., role=<optimized out>)
0x00007ffff66db16c in QStandardItemModel::setData (role=1, value=..., index=..., this=0x5555558f9800)
QStandardItemModel::setData (this=this@entry=0x5555558f9800, index=..., value=..., role=role@entry=1)
0x00007ffff6cb369f in QComboBox::setItemIcon (this=<optimized out>, index=index@entry=0, icon=...)
0x00007ffff7f30501 in KFileWidgetPrivate::setDummyHistoryEntry (this=this@entry=0x5555556ddbb0, text=..., icon=...,

M  +11   -107  src/filewidgets/kfilewidget.cpp