summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/dcpomatic.cc14
-rw-r--r--src/tools/dcpomatic_player.cc7
2 files changed, 15 insertions, 6 deletions
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc
index 9262be1b5..416bdf6c4 100644
--- a/src/tools/dcpomatic.cc
+++ b/src/tools/dcpomatic.cc
@@ -563,7 +563,7 @@ private:
{
DCPOMATIC_ASSERT (_clipboard);
- PasteDialog* d = new PasteDialog (this, static_cast<bool>(_clipboard->video), static_cast<bool>(_clipboard->audio), static_cast<bool>(_clipboard->caption));
+ PasteDialog* d = new PasteDialog (this, static_cast<bool>(_clipboard->video), static_cast<bool>(_clipboard->audio), !_clipboard->caption.empty());
if (d->ShowModal() == wxID_OK) {
BOOST_FOREACH (shared_ptr<Content> i, _film_editor->content_panel()->selected()) {
if (d->video() && i->video) {
@@ -574,9 +574,15 @@ private:
DCPOMATIC_ASSERT (_clipboard->audio);
i->audio->take_settings_from (_clipboard->audio);
}
- if (d->caption() && i->caption) {
- DCPOMATIC_ASSERT (_clipboard->caption);
- i->caption->take_settings_from (_clipboard->caption);
+
+ if (d->caption()) {
+ list<shared_ptr<CaptionContent> >::iterator j = i->caption.begin ();
+ list<shared_ptr<CaptionContent> >::const_iterator k = _clipboard->caption.begin ();
+ while (j != i->caption.end() && k != _clipboard->caption.end()) {
+ (*j)->take_settings_from (*k);
+ ++j;
+ ++k;
+ }
}
}
}
diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc
index 0af44fd05..d357e566b 100644
--- a/src/tools/dcpomatic_player.cc
+++ b/src/tools/dcpomatic_player.cc
@@ -618,8 +618,11 @@ private:
void setup_from_dcp (shared_ptr<DCPContent> dcp)
{
- if (dcp->caption) {
- dcp->caption->set_use (true);
+ BOOST_FOREACH (shared_ptr<CaptionContent> i, dcp->caption) {
+ /* XXX: we should offer the option to view closed captions */
+ if (i->type() == CAPTION_OPEN) {
+ i->set_use (true);
+ }
}
if (dcp->video) {