Browse Source

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. :^)
Andreas Kling 3 năm trước cách đây
mục cha
commit
c4cc796f86

+ 1 - 0
Userland/Libraries/LibGUI/UndoStack.cpp

@@ -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();

+ 4 - 0
Userland/Libraries/LibGUI/UndoStack.h

@@ -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;
 };
 
 }