LibGUI: Make GUI::UndoStack remember time it was last set to unmodified

This can be used to determine how much time has passed since a document
was saved. :^)
This commit is contained in:
Andreas Kling 2022-01-04 17:32:19 +01:00
parent c08872f5da
commit c4cc796f86
Notes: sideshowbarker 2024-07-17 21:40:24 +09:00
2 changed files with 5 additions and 0 deletions

View file

@ -80,6 +80,7 @@ void UndoStack::set_current_unmodified()
return;
m_clean_index = m_stack_index;
m_last_unmodified_timestamp = Time::now_monotonic();
if (on_state_change)
on_state_change();

View file

@ -8,6 +8,7 @@
#include <AK/Function.h>
#include <AK/NonnullOwnPtrVector.h>
#include <AK/Time.h>
#include <LibGUI/Forward.h>
namespace GUI {
@ -28,6 +29,8 @@ public:
void set_current_unmodified();
bool is_current_modified() const;
Optional<Time> last_unmodified_timestamp() const { return m_last_unmodified_timestamp; }
void clear();
Optional<String> undo_action_text() const;
@ -39,6 +42,7 @@ private:
NonnullOwnPtrVector<Command> m_stack;
size_t m_stack_index { 0 };
Optional<size_t> m_clean_index;
Optional<Time> m_last_unmodified_timestamp;
};
}