X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fcontent.cc;h=ed0e9af6db855da97f095d134679dc8c421fd192;hb=ff639b3cf30afcc097bfd21d39c8d15f466cadd6;hp=4167031c2aeb54eeecaf9b16ea489bbe7c36c1ad;hpb=040889631af47829e8523742bb828788e8f7e138;p=dcpomatic.git diff --git a/src/lib/content.cc b/src/lib/content.cc index 4167031c2..ed0e9af6d 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -169,15 +169,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 +459,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) {