summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/spl.h9
-rw-r--r--src/tools/dcpomatic_playlist.cc16
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<void ()> NameChanged;
+ boost::signals2::signal<void (Change)> 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<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;
}
}