No-op; fix GPL address and use the explicit-program-name version.
[dcpomatic.git] / src / wx / content_properties_dialog.cc
1 /*
2     Copyright (C) 2015 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 #include "content_properties_dialog.h"
22 #include "wx_util.h"
23 #include "lib/raw_convert.h"
24 #include "lib/content.h"
25 #include "lib/video_content.h"
26 #include "lib/audio_content.h"
27 #include <boost/algorithm/string.hpp>
28 #include <boost/foreach.hpp>
29
30 using std::string;
31 using std::list;
32 using std::pair;
33 using std::map;
34 using boost::shared_ptr;
35 using boost::dynamic_pointer_cast;
36
37 ContentPropertiesDialog::ContentPropertiesDialog (wxWindow* parent, shared_ptr<Content> content)
38         : TableDialog (parent, _("Content Properties"), 2, 1, false)
39 {
40         string n = content->path(0).string();
41         boost::algorithm::replace_all (n, "&", "&&");
42         add (_("Filename"), true);
43         add (new wxStaticText (this, wxID_ANY, std_to_wx (n)));
44
45         map<string, list<UserProperty> > grouped;
46         BOOST_FOREACH (UserProperty i, content->user_properties()) {
47                 if (grouped.find(i.category) == grouped.end()) {
48                         grouped[i.category] = list<UserProperty> ();
49                 }
50                 grouped[i.category].push_back (i);
51         }
52
53         for (map<string, list<UserProperty> >::const_iterator i = grouped.begin(); i != grouped.end(); ++i) {
54
55                 wxStaticText* m = new wxStaticText (this, wxID_ANY, std_to_wx (i->first));
56                 wxFont font (*wxNORMAL_FONT);
57                 font.SetWeight (wxFONTWEIGHT_BOLD);
58                 m->SetFont (font);
59
60                 add_spacer ();
61                 add_spacer ();
62                 add (m, false);
63                 add_spacer ();
64
65                 BOOST_FOREACH (UserProperty j, i->second) {
66                         add (std_to_wx (j.key), true);
67                         add (new wxStaticText (this, wxID_ANY, std_to_wx (j.value + " " + j.unit)));
68                 }
69         }
70
71         layout ();
72 }