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...
Status: RESOLVED FIXED
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
URL:
Keywords: usability
Depends on:
Blocks:
 
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


Attachments

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
SUMMARY
***
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.
***

STEPS TO REPRODUCE
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.

OBSERVED RESULT

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


EXPECTED RESULT

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.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
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

ADDITIONAL INFORMATION
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=...,
  usePreviousPixmapIfNull=usePreviousPixmapIfNull@entry=true)

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

https://invent.kde.org/frameworks/kio/commit/331aad501acea58013a7cf89e18919f945394396