mirror of
https://github.com/RGBCube/serenity
synced 2025-07-10 11:47:35 +00:00
LibGUI: Make undo work for TextDocument ReplaceAllTextCommand
The undo code here was just replacing the new text with the new text. Now we actually save the old text and use that instead. :^)
This commit is contained in:
parent
7164b2f758
commit
a5ff6769f5
2 changed files with 8 additions and 6 deletions
|
@ -970,7 +970,8 @@ DeprecatedString InsertLineCommand::action_text() const
|
|||
|
||||
ReplaceAllTextCommand::ReplaceAllTextCommand(GUI::TextDocument& document, DeprecatedString const& text, GUI::TextRange const& range, DeprecatedString const& action_text)
|
||||
: TextDocumentUndoCommand(document)
|
||||
, m_text(text)
|
||||
, m_original_text(document.text())
|
||||
, m_new_text(text)
|
||||
, m_range(range)
|
||||
, m_action_text(action_text)
|
||||
{
|
||||
|
@ -980,7 +981,7 @@ void ReplaceAllTextCommand::redo()
|
|||
{
|
||||
m_document.remove(m_range);
|
||||
m_document.set_all_cursors(m_range.start());
|
||||
auto new_cursor = m_document.insert_at(m_range.start(), m_text, m_client);
|
||||
auto new_cursor = m_document.insert_at(m_range.start(), m_new_text, m_client);
|
||||
m_range.set_end(new_cursor);
|
||||
m_document.set_all_cursors(new_cursor);
|
||||
}
|
||||
|
@ -989,7 +990,7 @@ void ReplaceAllTextCommand::undo()
|
|||
{
|
||||
m_document.remove(m_range);
|
||||
m_document.set_all_cursors(m_range.start());
|
||||
auto new_cursor = m_document.insert_at(m_range.start(), m_text);
|
||||
auto new_cursor = m_document.insert_at(m_range.start(), m_original_text, m_client);
|
||||
m_range.set_end(new_cursor);
|
||||
m_document.set_all_cursors(new_cursor);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue