X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcontent.cc;h=9969213ac62eb260aa217a727233f3c42afdecde;hb=323b8cbb0b95297fbd027ffdc4ea5003b59ef25f;hp=a56891689c201f2d23e1f8eec6c20ae2d3c4e788;hpb=d311043bf3c1e3e7f41b314f7ab7c91ed7e5aa7f;p=dcpomatic.git diff --git a/src/lib/content.cc b/src/lib/content.cc index a56891689..9969213ac 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -24,17 +24,17 @@ */ -#include "content.h" +#include "audio_content.h" #include "change_signaller.h" -#include "util.h" +#include "compose.hpp" +#include "content.h" #include "content_factory.h" -#include "video_content.h" -#include "audio_content.h" -#include "text_content.h" #include "exceptions.h" #include "film.h" #include "job.h" -#include "compose.hpp" +#include "text_content.h" +#include "util.h" +#include "video_content.h" #include #include #include @@ -66,7 +66,6 @@ int const ContentProperty::VIDEO_FRAME_RATE = 405; Content::Content () - : _change_signals_frequent (false) { } @@ -74,21 +73,18 @@ Content::Content () Content::Content (DCPTime p) : _position (p) - , _change_signals_frequent (false) { } Content::Content (boost::filesystem::path p) - : _change_signals_frequent (false) { add_path (p); } Content::Content (cxml::ConstNodePtr node) - : _change_signals_frequent (false) { for (auto i: node->node_children("Path")) { _paths.push_back (i->content()); @@ -114,7 +110,6 @@ Content::Content (vector> c) , _trim_start (c.front()->trim_start()) , _trim_end (c.back()->trim_end()) , _video_frame_rate (c.front()->video_frame_rate()) - , _change_signals_frequent (false) { for (size_t i = 0; i < c.size(); ++i) { if (i > 0 && c[i]->trim_start() > ContentTime ()) { @@ -169,15 +164,11 @@ Content::as_xml (xmlpp::Node* node, bool with_paths) const string Content::calculate_digest () const { - boost::mutex::scoped_lock lm (_mutex); - auto p = _paths; - lm.unlock (); - /* Some content files are very big, so we use a poor man's digest here: a digest of the first and last 1e6 bytes with the size of the first file tacked on the end as a string. */ - return digest_head_tail(p, 1000000) + raw_convert(boost::filesystem::file_size(p.front())); + return simple_digest (paths()); } @@ -463,7 +454,24 @@ Content::active_video_frame_rate (shared_ptr film) const void Content::add_properties (shared_ptr, list& p) const { - p.push_back (UserProperty (UserProperty::GENERAL, _("Filename"), path(0).string ())); + auto paths_to_show = std::min(number_of_paths(), size_t{8}); + string paths = ""; + for (auto i = size_t{0}; i < paths_to_show; ++i) { + paths += path(i).string(); + if (i < (paths_to_show - 1)) { + paths += "\n"; + } + } + if (paths_to_show < number_of_paths()) { + paths += String::compose("... and %1 more", number_of_paths() - paths_to_show); + } + p.push_back ( + UserProperty( + UserProperty::GENERAL, + paths_to_show > 1 ? _("Filenames") : _("Filename"), + paths + ) + ); if (_video_frame_rate) { if (video) {