From baed0f37f3cb3375f39b8d44f01eadb8796eb0d5 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 1 Dec 2022 11:34:09 +0100 Subject: [PATCH] Generalise the Changed message from SPL. --- src/lib/spl.h | 9 +++++++-- src/tools/dcpomatic_playlist.cc | 16 +++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/lib/spl.h b/src/lib/spl.h index 9637f6189..fa8f38105 100644 --- a/src/lib/spl.h +++ b/src/lib/spl.h @@ -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 NameChanged; + boost::signals2::signal Changed; }; #endif diff --git a/src/tools/dcpomatic_playlist.cc b/src/tools/dcpomatic_playlist.cc index c327a8603..9eada8b38 100644 --- a/src/tools/dcpomatic_playlist.cc +++ b/src/tools/dcpomatic_playlist.cc @@ -166,22 +166,24 @@ private: void add_playlist_to_model (shared_ptr playlist) { _playlists.push_back (playlist); - playlist->NameChanged.connect (bind(&PlaylistList::name_changed, this, weak_ptr(playlist))); + playlist->Changed.connect(bind(&PlaylistList::changed, this, weak_ptr(playlist), _1)); } - void name_changed (weak_ptr wp) + void changed(weak_ptr 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; } } -- 2.30.2