Generalise the Changed message from SPL.
authorCarl Hetherington <cth@carlh.net>
Thu, 1 Dec 2022 10:34:09 +0000 (11:34 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 1 Dec 2022 10:34:09 +0000 (11:34 +0100)
src/lib/spl.h
src/tools/dcpomatic_playlist.cc

index 9637f6189b77536adb3afaeba2d958daec644737..fa8f38105efce48279d0a09d3424f9b0f008c461 100644 (file)
@@ -93,6 +93,11 @@ private:
 class SignalSPL : public SPL
 {
 public:
+       enum class Change {
+               NAME,
+               CONTENT,
+       };
+
        SignalSPL () {}
 
        SignalSPL (std::string name)
@@ -101,10 +106,10 @@ public:
 
        void set_name (std::string name) {
                SPL::set_name (name);
-               NameChanged ();
+               Changed(Change::NAME);
        }
 
-       boost::signals2::signal<void ()> NameChanged;
+       boost::signals2::signal<void (Change)> Changed;
 };
 
 #endif
index c327a8603d1f11a0c87c73da8ab0f69b7298dbf4..9eada8b3820968807aea9297d772c342545d4328 100644 (file)
@@ -166,22 +166,24 @@ private:
        void add_playlist_to_model (shared_ptr<SignalSPL> playlist)
        {
                _playlists.push_back (playlist);
-               playlist->NameChanged.connect (bind(&PlaylistList::name_changed, this, weak_ptr<SignalSPL>(playlist)));
+               playlist->Changed.connect(bind(&PlaylistList::changed, this, weak_ptr<SignalSPL>(playlist), _1));
        }
 
-       void name_changed (weak_ptr<SignalSPL> wp)
+       void changed(weak_ptr<SignalSPL> wp, SignalSPL::Change change)
        {
                auto playlist = wp.lock ();
                if (!playlist) {
                        return;
                }
 
-               int N = 0;
-               for (auto i: _playlists) {
-                       if (i == playlist) {
-                               _list->SetItem (N, 0, std_to_wx(i->name()));
+               if (change == SignalSPL::Change::NAME) {
+                       int N = 0;
+                       for (auto i: _playlists) {
+                               if (i == playlist) {
+                                       _list->SetItem (N, 0, std_to_wx(i->name()));
+                               }
+                               ++N;
                        }
-                       ++N;
                }
        }