Merge branch 'main' into v2.17.x
[dcpomatic.git] / src / lib / release_notes.cc
1 /*
2     Copyright (C) 2022 Carl Hetherington <cth@carlh.net>
3
4     This file is part of DCP-o-matic.
5
6     DCP-o-matic is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     DCP-o-matic is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with DCP-o-matic.  If not, see <http://www.gnu.org/licenses/>.
18
19 */
20
21
22 #include "config.h"
23 #include "release_notes.h"
24 #include "variant.h"
25 #include "version.h"
26
27 #include "i18n.h"
28
29
30 using std::string;
31 using boost::optional;
32
33
34 optional<string>
35 find_release_notes(bool dark, optional<string> current)
36 {
37         auto last = Config::instance()->last_release_notes_version();
38         if (!current) {
39                 current = string(dcpomatic_version);
40         }
41         if (last && *last == *current) {
42                 return {};
43         }
44
45         Config::instance()->set_last_release_notes_version(*current);
46
47         string const colour = dark ? "white" : "black";
48         auto const span = String::compose("<span style=\"color: %1\">", colour);
49
50         const string header = String::compose("<h1>%1%2 %3 release notes</span></h1>", span, variant::dcpomatic(), *current);
51
52         if (!last) {
53                 return header + span +
54                         _("In this version there are changes to the way that subtitles are positioned.  "
55                           "Positioning should now be more correct, with respect to the standards, but you "
56                           "should check any subtitles in your project to make sure that they are placed "
57                           "where you want them.")
58                         + "</span>";
59         }
60
61         return {};
62 }