summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-09-07 23:36:40 +0100
committerCarl Hetherington <cth@carlh.net>2014-09-07 23:36:40 +0100
commit5dc2dbdb6639f8d617a40209ad603d2a38f9df2a (patch)
tree849db948bfed659df5a9f5bfb2bdb8519c313de6
parenta4d3b0b6b1069b08fff0559f63d73bb7353256bd (diff)
parent38fd8d2d230a239079ffdf3e10a48833ade6e8c5 (diff)
Merge master.
-rw-r--r--ChangeLog7
-rw-r--r--src/lib/config.cc8
-rw-r--r--src/lib/config.h7
-rw-r--r--src/lib/video_content.cc17
-rw-r--r--src/lib/video_content.h1
-rw-r--r--src/tools/dcpomatic.cc10
-rw-r--r--src/wx/config_dialog.cc36
-rw-r--r--src/wx/po/de_DE.po3
-rw-r--r--src/wx/po/es_ES.po3
-rw-r--r--src/wx/po/fr_FR.po3
-rw-r--r--src/wx/po/it_IT.po3
-rw-r--r--src/wx/po/nl_NL.po3
-rw-r--r--src/wx/po/sv_SE.po3
13 files changed, 63 insertions, 41 deletions
diff --git a/ChangeLog b/ChangeLog
index ca321f972..d8210ef9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-09-07 Carl Hetherington <cth@carlh.net>
+
+ * Put no stretch / no scale in the set of choices for default
+ scale to.
+
+ * Fix a few bad fuzzy translations from the preferences dialog.
+
2014-09-03 Carl Hetherington <cth@carlh.net>
* Version 1.73.2 released.
diff --git a/src/lib/config.cc b/src/lib/config.cc
index 1f5a25ae4..114fc5c27 100644
--- a/src/lib/config.cc
+++ b/src/lib/config.cc
@@ -67,7 +67,7 @@ Config::Config ()
, _cinema_sound_processor (CinemaSoundProcessor::from_id (N_("dolby_cp750")))
, _allow_any_dcp_frame_rate (false)
, _default_still_length (10)
- , _default_scale (Ratio::from_id ("185"))
+ , _default_scale (VideoContentScale (Ratio::from_id ("185")))
, _default_container (Ratio::from_id ("185"))
, _default_dcp_content_type (DCPContentType::from_isdcf_name ("TST"))
, _default_j2k_bandwidth (100000000)
@@ -147,7 +147,7 @@ Config::read ()
c = f.optional_string_child ("DefaultScale");
if (c) {
- _default_scale = Ratio::from_id (c.get ());
+ _default_scale = VideoContentScale::from_id (c.get ());
}
c = f.optional_string_child ("DefaultContainer");
@@ -329,9 +329,7 @@ Config::write () const
if (_language) {
root->add_child("Language")->add_child_text (_language.get());
}
- if (_default_scale) {
- root->add_child("DefaultScale")->add_child_text (_default_scale->id ());
- }
+ root->add_child("DefaultScale")->add_child_text (_default_scale.id ());
if (_default_container) {
root->add_child("DefaultContainer")->add_child_text (_default_container->id ());
}
diff --git a/src/lib/config.h b/src/lib/config.h
index 9a1808682..99b3eb621 100644
--- a/src/lib/config.h
+++ b/src/lib/config.h
@@ -33,6 +33,7 @@
#include <dcp/signer.h>
#include "isdcf_metadata.h"
#include "colour_conversion.h"
+#include "video_content.h"
class ServerDescription;
class Scaler;
@@ -134,7 +135,7 @@ public:
return _default_still_length;
}
- Ratio const * default_scale () const {
+ VideoContentScale default_scale () const {
return _default_scale;
}
@@ -307,7 +308,7 @@ public:
changed ();
}
- void set_default_scale (Ratio const * s) {
+ void set_default_scale (VideoContentScale s) {
_default_scale = s;
changed ();
}
@@ -468,7 +469,7 @@ private:
ISDCFMetadata _default_isdcf_metadata;
boost::optional<std::string> _language;
int _default_still_length;
- Ratio const * _default_scale;
+ VideoContentScale _default_scale;
Ratio const * _default_container;
DCPContentType const * _default_dcp_content_type;
std::string _dcp_issuer;
diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc
index 796e6575a..9822d7763 100644
--- a/src/lib/video_content.cc
+++ b/src/lib/video_content.cc
@@ -482,7 +482,7 @@ VideoContentScale::id () const
SafeStringStream s;
if (_ratio) {
- s << _ratio->id () << "_";
+ s << _ratio->id ();
} else {
s << (_scale ? "S1" : "S0");
}
@@ -504,6 +504,21 @@ VideoContentScale::name () const
return _("No scale");
}
+VideoContentScale
+VideoContentScale::from_id (string id)
+{
+ Ratio const * r = Ratio::from_id (id);
+ if (r) {
+ return VideoContentScale (r);
+ }
+
+ if (id == "S0") {
+ return VideoContentScale (false);
+ }
+
+ return VideoContentScale (true);
+}
+
/** @param display_container Size of the container that we are displaying this content in.
* @param film_container The size of the film's image.
*/
diff --git a/src/lib/video_content.h b/src/lib/video_content.h
index 27b36e9bc..d32769b5a 100644
--- a/src/lib/video_content.h
+++ b/src/lib/video_content.h
@@ -62,6 +62,7 @@ public:
static std::vector<VideoContentScale> all () {
return _scales;
}
+ static VideoContentScale from_id (std::string id);
private:
/** a ratio to stretch the content to, or 0 for no stretch */
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc
index 3bef7bce3..5f6a98075 100644
--- a/src/tools/dcpomatic.cc
+++ b/src/tools/dcpomatic.cc
@@ -164,7 +164,7 @@ public:
setup_menu (bar);
SetMenuBar (bar);
- Config::instance()->Changed.connect (boost::bind (&Frame::config_changed, this));
+ _config_changed_connection = Config::instance()->Changed.connect (boost::bind (&Frame::config_changed, this));
config_changed ();
Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::file_new, this), ID_file_new);
@@ -516,8 +516,13 @@ private:
return;
}
+ /* We don't want to hear about any more configuration changes, since they
+ cause the File menu to be altered, which itself will be deleted around
+ now (without, as far as I can see, any way for us to find out).
+ */
+ _config_changed_connection.disconnect ();
+
maybe_save_then_delete_film ();
-
ev.Skip ();
}
@@ -685,6 +690,7 @@ private:
int _history_items;
int _history_position;
wxMenuItem* _history_separator;
+ boost::signals2::scoped_connection _config_changed_connection;
};
static const wxCmdLineEntryDesc command_line_description[] = {
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc
index 009467afa..c1ea926ea 100644
--- a/src/wx/config_dialog.cc
+++ b/src/wx/config_dialog.cc
@@ -317,31 +317,31 @@ public:
_isdcf_metadata_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&DefaultsPage::edit_isdcf_metadata_clicked, this, parent));
- vector<Ratio const *> ratio = Ratio::all ();
- int n = 0;
- for (vector<Ratio const *>::iterator i = ratio.begin(); i != ratio.end(); ++i) {
- _scale->Append (std_to_wx ((*i)->nickname ()));
- if (*i == config->default_scale ()) {
- _scale->SetSelection (n);
+ vector<VideoContentScale> scales = VideoContentScale::all ();
+ for (size_t i = 0; i < scales.size(); ++i) {
+ _scale->Append (std_to_wx (scales[i].name ()));
+ if (scales[i] == config->default_scale ()) {
+ _scale->SetSelection (i);
}
- _container->Append (std_to_wx ((*i)->nickname ()));
- if (*i == config->default_container ()) {
- _container->SetSelection (n);
+ }
+
+ vector<Ratio const *> ratios = Ratio::all ();
+ for (size_t i = 0; i < ratios.size(); ++i) {
+ _container->Append (std_to_wx (ratios[i]->nickname ()));
+ if (ratios[i] == config->default_container ()) {
+ _container->SetSelection (i);
}
- ++n;
}
_scale->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::scale_changed, this));
_container->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::container_changed, this));
vector<DCPContentType const *> const ct = DCPContentType::all ();
- n = 0;
- for (vector<DCPContentType const *>::const_iterator i = ct.begin(); i != ct.end(); ++i) {
- _dcp_content_type->Append (std_to_wx ((*i)->pretty_name ()));
- if (*i == config->default_dcp_content_type ()) {
- _dcp_content_type->SetSelection (n);
+ for (size_t i = 0; i < ct.size(); ++i) {
+ _dcp_content_type->Append (std_to_wx (ct[i]->pretty_name ()));
+ if (ct[i] == config->default_dcp_content_type ()) {
+ _dcp_content_type->SetSelection (i);
}
- ++n;
}
_dcp_content_type->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::dcp_content_type_changed, this));
@@ -391,8 +391,8 @@ private:
void scale_changed ()
{
- vector<Ratio const *> ratio = Ratio::all ();
- Config::instance()->set_default_scale (ratio[_scale->GetSelection()]);
+ vector<VideoContentScale> scale = VideoContentScale::all ();
+ Config::instance()->set_default_scale (scale[_scale->GetSelection()]);
}
void container_changed ()
diff --git a/src/wx/po/de_DE.po b/src/wx/po/de_DE.po
index 4d57a34bc..ac7ea532a 100644
--- a/src/wx/po/de_DE.po
+++ b/src/wx/po/de_DE.po
@@ -408,9 +408,8 @@ msgid "Default issuer"
msgstr "Standard 'issuer' (DCI)"
#: src/wx/config_dialog.cc:270
-#, fuzzy
msgid "Default scale to"
-msgstr "Standard 'creator' (DCI)"
+msgstr ""
#: src/wx/config_dialog.cc:229
msgid "Defaults"
diff --git a/src/wx/po/es_ES.po b/src/wx/po/es_ES.po
index bfa2d0b2f..37a884a52 100644
--- a/src/wx/po/es_ES.po
+++ b/src/wx/po/es_ES.po
@@ -412,9 +412,8 @@ msgid "Default issuer"
msgstr "Emisor por defecto"
#: src/wx/config_dialog.cc:270
-#, fuzzy
msgid "Default scale to"
-msgstr "Creador por defecto"
+msgstr ""
#: src/wx/config_dialog.cc:229
msgid "Defaults"
diff --git a/src/wx/po/fr_FR.po b/src/wx/po/fr_FR.po
index 5e1e2df5d..228236c98 100644
--- a/src/wx/po/fr_FR.po
+++ b/src/wx/po/fr_FR.po
@@ -409,9 +409,8 @@ msgid "Default issuer"
msgstr "Labo par défaut"
#: src/wx/config_dialog.cc:270
-#, fuzzy
msgid "Default scale to"
-msgstr "Créateur par défaut"
+msgstr ""
#: src/wx/config_dialog.cc:229
msgid "Defaults"
diff --git a/src/wx/po/it_IT.po b/src/wx/po/it_IT.po
index d2d191dff..4bebb30b1 100644
--- a/src/wx/po/it_IT.po
+++ b/src/wx/po/it_IT.po
@@ -418,9 +418,8 @@ msgid "Default issuer"
msgstr "Predefiniti"
#: src/wx/config_dialog.cc:270
-#, fuzzy
msgid "Default scale to"
-msgstr "Contenitore predefinito"
+msgstr ""
#: src/wx/config_dialog.cc:229
msgid "Defaults"
diff --git a/src/wx/po/nl_NL.po b/src/wx/po/nl_NL.po
index 3ed860548..e2383f996 100644
--- a/src/wx/po/nl_NL.po
+++ b/src/wx/po/nl_NL.po
@@ -418,9 +418,8 @@ msgid "Default issuer"
msgstr "Standaard uitgever"
#: src/wx/config_dialog.cc:270
-#, fuzzy
msgid "Default scale to"
-msgstr "Standaard maker"
+msgstr ""
#: src/wx/config_dialog.cc:229
msgid "Defaults"
diff --git a/src/wx/po/sv_SE.po b/src/wx/po/sv_SE.po
index e3606f1a5..00755705c 100644
--- a/src/wx/po/sv_SE.po
+++ b/src/wx/po/sv_SE.po
@@ -424,9 +424,8 @@ msgid "Default issuer"
msgstr "Standardval"
#: src/wx/config_dialog.cc:270
-#, fuzzy
msgid "Default scale to"
-msgstr "Förvald innehållstyp"
+msgstr ""
#: src/wx/config_dialog.cc:229
msgid "Defaults"