Extract common code out into kdm_for_screen()
[dcpomatic.git] / src / lib / playlist.cc
index 6d125afa63ba93d592a7bd7f4580d9f1d6e9ea12..48053bbf485aa893ddd903646ee911baaba05bdc 100644 (file)
@@ -51,6 +51,7 @@ using boost::optional;
 using boost::shared_ptr;
 using boost::weak_ptr;
 using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
 
 Playlist::Playlist ()
        : _sequence (true)
@@ -110,8 +111,11 @@ Playlist::content_change (weak_ptr<const Film> weak_film, ChangeType type, weak_
                        }
 
                        if (changed) {
-                               OrderChanged ();
+                               OrderChange ();
                        }
+
+                       /* The length might have changed, and that's good enough for this signal */
+                       LengthChange ();
                }
        }
 
@@ -280,6 +284,8 @@ Playlist::add (shared_ptr<const Film> film, shared_ptr<Content> c)
        }
 
        Change (CHANGE_TYPE_DONE);
+
+       LengthChange ();
 }
 
 void
@@ -311,6 +317,8 @@ Playlist::remove (shared_ptr<Content> c)
        }
 
        /* This won't change order, so it does not need a sort */
+
+       LengthChange ();
 }
 
 void
@@ -333,9 +341,11 @@ Playlist::remove (ContentList c)
                }
        }
 
+       Change (CHANGE_TYPE_DONE);
+
        /* This won't change order, so it does not need a sort */
 
-       Change (CHANGE_TYPE_DONE);
+       LengthChange ();
 }
 
 class FrameRateCandidate