summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-07-16 15:30:32 +0100
committerCarl Hetherington <cth@carlh.net>2014-07-16 15:30:32 +0100
commitfc56dc97103d00437843a31e1ef0c4915900ad1a (patch)
tree958c909b14b3c9c2f2ec08dd30e5b06e214db1b5
parent94201bd2a5a4cb391b7f2bdeba56b928fed7cfe1 (diff)
parent4861afbaab9c3710152d80f15c7a239c26deb74b (diff)
Merge master.
-rw-r--r--ChangeLog6
-rw-r--r--debian/changelog5
-rw-r--r--platform/osx/make_dmg.sh8
-rw-r--r--src/lib/util.cc51
-rw-r--r--src/wx/po/fr_FR.po6
-rw-r--r--test/util_test.cc13
6 files changed, 72 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 561bbce1c..5265423fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,12 @@
2014-07-16 Carl Hetherington <cth@carlh.net>
+ * Version 1.72.3 released.
+
+2014-07-16 Carl Hetherington <cth@carlh.net>
+
+ * Improve approximate time reports a bit.
+
* Make KDM email subject configurable.
* Updates to de_DE from Carsten Kurz.
diff --git a/debian/changelog b/debian/changelog
index 7a82f85e9..32ab78e75 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-dcpomatic (1.72.2-1) UNRELEASED; urgency=low
+dcpomatic (1.72.3-1) UNRELEASED; urgency=low
* New upstream release.
* New upstream release.
@@ -167,8 +167,9 @@ dcpomatic (1.72.2-1) UNRELEASED; urgency=low
* New upstream release.
* New upstream release.
* New upstream release.
+ * New upstream release.
- -- Carl Hetherington <carl@d1stkfactory> Thu, 10 Jul 2014 21:27:55 +0100
+ -- Carl Hetherington <carl@107.191.37.242.vultr.com> Wed, 16 Jul 2014 14:26:32 +0000
dcpomatic (0.87-1) UNRELEASED; urgency=low
diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh
index 92c6dc96b..c89d2f48f 100644
--- a/platform/osx/make_dmg.sh
+++ b/platform/osx/make_dmg.sh
@@ -110,7 +110,7 @@ cp icons/kdm_email.png $WORK/$resources
cp icons/servers.png $WORK/$resources
cp icons/tms.png $WORK/$resources
-# i18n: .mo files
+# i18n: DCP-o-matic .mo files
for lang in de_DE es_ES fr_FR it_IT sv_SE nl_NL; do
mkdir $WORK/$resources/$lang
cp build/src/lib/mo/$lang/*.mo $WORK/$resources/$lang
@@ -118,6 +118,12 @@ for lang in de_DE es_ES fr_FR it_IT sv_SE nl_NL; do
cp build/src/tools/mo/$lang/*.mo $WORK/$resources/$lang
done
+# i18n: wxWidgets .mo files
+for lang in de es fr it sv nl; do
+ mkdir $WORK/$resources/$lang
+ cp $ENV/64/share/locale/$lang/LC_MESSAGES/wxstd.mo $WORK/$resources/$lang
+done
+
tmp_dmg=$WORK/dcpomatic_tmp.dmg
dmg="$WORK/DCP-o-matic $version.dmg"
vol_name=DCP-o-matic-$version
diff --git a/src/lib/util.cc b/src/lib/util.cc
index d04f195af..837f3cdf3 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -146,25 +146,54 @@ seconds_to_approximate_hms (int s)
m -= (h * 60);
stringstream ap;
-
- if (h > 0) {
- if (m > 30) {
+
+ bool const hours = h > 0;
+ bool const minutes = h < 10 && m > 0;
+ bool const seconds = m < 10 && s > 0;
+
+ if (hours) {
+ if (m > 30 && !minutes) {
ap << (h + 1) << N_(" ") << _("hours");
} else {
+ ap << h << N_(" ");
if (h == 1) {
- ap << N_("1 ") << _("hour");
+ ap << _("hour");
+ } else {
+ ap << _("hours");
+ }
+ }
+
+ if (minutes | seconds) {
+ ap << N_(" ");
+ }
+ }
+
+ if (minutes) {
+ /* Minutes */
+ if (s > 30 && !seconds) {
+ ap << (m + 1) << N_(" ") << _("minutes");
+ } else {
+ ap << m << N_(" ");
+ if (m == 1) {
+ ap << _("minute");
} else {
- ap << h << N_(" ") << _("hours");
+ ap << _("minutes");
}
}
- } else if (m > 0) {
- if (m == 1) {
- ap << N_("1 ") << _("minute");
+
+ if (seconds) {
+ ap << N_(" ");
+ }
+ }
+
+ if (seconds) {
+ /* Seconds */
+ ap << s << N_(" ");
+ if (s == 1) {
+ ap << _("second");
} else {
- ap << m << N_(" ") << _("minutes");
+ ap << _("seconds");
}
- } else {
- ap << s << N_(" ") << _("seconds");
}
return ap.str ();
diff --git a/src/wx/po/fr_FR.po b/src/wx/po/fr_FR.po
index 924004eb1..247d7fcd8 100644
--- a/src/wx/po/fr_FR.po
+++ b/src/wx/po/fr_FR.po
@@ -262,7 +262,7 @@ msgstr "Espace Couleurs"
#: src/wx/config_dialog.cc:805
msgid "Config|Timing"
-msgstr "Configuration|Temps"
+msgstr "Temps"
#: src/wx/film_editor.cc:134
msgid "Container"
@@ -600,7 +600,7 @@ msgstr ""
#: src/wx/kdm_dialog.cc:99
msgid "KDM|Timing"
-msgstr "KDM|Temps"
+msgstr "Temps"
#: src/wx/film_editor.cc:297
msgid "Keep video in sequence"
@@ -1013,7 +1013,7 @@ msgstr "Timeline..."
#: src/wx/timing_panel.cc:36
msgid "Timing|Timing"
-msgstr "Temps|Temps"
+msgstr "Temps"
#: src/wx/video_panel.cc:110
msgid "Top crop"
diff --git a/test/util_test.cc b/test/util_test.cc
index 39cc0e6bf..f5bf94c01 100644
--- a/test/util_test.cc
+++ b/test/util_test.cc
@@ -94,3 +94,16 @@ BOOST_AUTO_TEST_CASE (timecode_test)
DCPTime t = DCPTime::from_seconds (2 * 60 * 60 + 4 * 60 + 31) + DCPTime::from_frames (19, 24);
BOOST_CHECK_EQUAL (t.timecode (24), "02:04:31:19");
}
+
+BOOST_AUTO_TEST_CASE (seconds_to_approximate_hms_test)
+{
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (1), "1 second");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (2), "2 seconds");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (60), "1 minute");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (1.5 * 60), "1 minute 30 seconds");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (2 * 60), "2 minutes");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (17 * 60 + 20), "17 minutes");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (1 * 3600), "1 hour");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (3600 + 40 * 60), "1 hour 40 minutes");
+ BOOST_CHECK_EQUAL (seconds_to_approximate_hms (13 * 3600 + 40 * 60), "14 hours");
+}