mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 05:57:44 +00:00
LibGUI: Use UndoStack::on_state_change inside TextDocument/TextEditor
Have TextDocument listen for state changes on the internal undo stack, and forward those to all clients via a new virtual function. This simplifies updating the can_undo / can_redo states of TextEditor.
This commit is contained in:
parent
0cb6103928
commit
ee19f7c0aa
5 changed files with 17 additions and 2 deletions
|
@ -28,6 +28,13 @@ TextDocument::TextDocument(Client* client)
|
|||
append_line(make<TextDocumentLine>(*this));
|
||||
set_unmodified();
|
||||
|
||||
m_undo_stack.on_state_change = [this] {
|
||||
if (m_client_notifications_enabled) {
|
||||
for (auto* client : m_clients)
|
||||
client->document_did_update_undo_stack();
|
||||
}
|
||||
};
|
||||
|
||||
m_undo_timer = Core::Timer::create_single_shot(
|
||||
2000, [this] {
|
||||
update_undo();
|
||||
|
@ -694,6 +701,7 @@ void TextDocument::redo()
|
|||
void TextDocument::add_to_undo_stack(NonnullOwnPtr<TextDocumentUndoCommand> undo_command)
|
||||
{
|
||||
m_undo_stack.push(move(undo_command));
|
||||
notify_did_change();
|
||||
}
|
||||
|
||||
TextDocumentUndoCommand::TextDocumentUndoCommand(TextDocument& document)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue