]> git.sesse.net Git - nageru/blobdiff - futatabi/mainwindow.h
Fix interpolation quality of exported clips.
[nageru] / futatabi / mainwindow.h
index e21b3f38c181ef994f5120cffe4fd12b83a75812..0fa337f61e6d56dc5f5212277413848acd273ca6 100644 (file)
@@ -5,6 +5,7 @@
 #include "db.h"
 #include "state.pb.h"
 
+#include <deque>
 #include <memory>
 #include <mutex>
 #include <QLabel>
@@ -62,6 +63,9 @@ private:
        std::string deferred_change_id;
        StateProto deferred_state;
 
+       // NOTE: The undo stack always has the current state on top.
+       std::deque<StateProto> undo_stack, redo_stack;
+
        // Before a change that should be deferred (see above), currently_deferring_model_changes
        // must be set to true, and current_change_id must be given contents describing what's
        // changed to avoid accidental grouping.
@@ -88,6 +92,7 @@ private:
        void defer_timer_expired();
        void content_changed();  // In clip_list or play_list.
        void state_changed(const StateProto &state);  // Called post-filtering.
+       void save_settings();
 
        enum Rounding { FIRST_AT_OR_AFTER, LAST_BEFORE };
        void preview_single_frame(int64_t pts, unsigned stream_idx, Rounding rounding);
@@ -106,6 +111,9 @@ private:
        void export_playlist_clip_interpolated_triggered();
        void manual_triggered();
        void about_triggered();
+       void undo_triggered();
+       void redo_triggered();
+       void quality_toggled(int quality, bool checked);
 
        void highlight_camera_input(int stream_idx);