X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=clip_list.h;h=31ddb6cb297965512c5c7a65d26bfc52b485ca9b;hb=58b5adcca3af1abbf4c69b00853bee037bb7fec7;hp=2d37eab4fda0959e23e004f78cdd4120523f6188;hpb=010e8a94e8e2b93c40be5f074e5e4ca928b8f207;p=nageru diff --git a/clip_list.h b/clip_list.h index 2d37eab..31ddb6c 100644 --- a/clip_list.h +++ b/clip_list.h @@ -9,6 +9,7 @@ #include #include "defs.h" +#include "state.pb.h" struct Clip { int64_t pts_in = -1, pts_out = -1; // pts_in is inclusive, pts_out is exclusive. @@ -44,7 +45,7 @@ class ClipList : public QAbstractTableModel, public DataChangedReceiver { Q_OBJECT public: - ClipList() {} + explicit ClipList(const ClipListProto &serialized); enum class Column { IN, @@ -74,8 +75,13 @@ public: ClipProxy mutable_back() { return mutable_clip(size() - 1); } const Clip *back() const { return clip(size() - 1); } + ClipListProto serialize() const; + void emit_data_changed(size_t row) override; +signals: + void any_content_changed(); + private: std::vector clips; }; @@ -84,7 +90,7 @@ class PlayList : public QAbstractTableModel, public DataChangedReceiver { Q_OBJECT public: - PlayList() {} + explicit PlayList(const ClipListProto &serialized); enum class Column { PLAYING, @@ -123,8 +129,13 @@ public: void set_currently_playing(int index, double progress); // -1 = none. int get_currently_playing() const { return currently_playing_index; } + ClipListProto serialize() const; + void emit_data_changed(size_t row) override; +signals: + void any_content_changed(); + private: std::vector clips; int currently_playing_index = -1;