#include "wx/export_dialog.h"
#include "wx/paste_dialog.h"
#include "wx/focus_manager.h"
+#include "wx/html_dialog.h"
#include "wx/initial_setup_dialog.h"
#include "wx/send_i18n_dialog.h"
#include "wx/i18n_hook.h"
#include "lib/film.h"
+#include "lib/analytics.h"
#include "lib/emailer.h"
#include "lib/config.h"
#include "lib/util.h"
#include <wx/cmdline.h>
#include <wx/preferences.h>
#include <wx/splash.h>
+#include <wx/wxhtml.h>
#ifdef __WXMSW__
#include <shellapi.h>
#endif
_config_changed_connection = Config::instance()->Changed.connect (boost::bind (&DOMFrame::config_changed, this, _1));
config_changed (Config::OTHER);
+ _analytics_message_connection = Analytics::instance()->Message.connect(boost::bind(&DOMFrame::analytics_message, this, _1, _2));
+
Bind (wxEVT_MENU, boost::bind (&DOMFrame::file_new, this), ID_file_new);
Bind (wxEVT_MENU, boost::bind (&DOMFrame::file_open, this), ID_file_open);
Bind (wxEVT_MENU, boost::bind (&DOMFrame::file_save, this), ID_file_save);
film->set_name (path.filename().generic_string());
film->write_metadata ();
set_film (film);
- dcpomatic_log = film->log ();
}
void load_film (boost::filesystem::path file)
);
}
- for (list<string>::const_iterator i = notes.begin(); i != notes.end(); ++i) {
- error_dialog (0, std_to_wx (*i));
+ BOOST_FOREACH (string i, notes) {
+ error_dialog (0, std_to_wx(i));
}
set_film (film);
}
if (_film) {
_film->Change.connect (boost::bind (&DOMFrame::film_change, this, _1));
+ _film->Message.connect (boost::bind(&DOMFrame::film_message, this, _1));
+ dcpomatic_log = _film->log ();
}
}
private:
+ void film_message (string m)
+ {
+ message_dialog (this, std_to_wx(m));
+ }
+
void film_change (ChangeType type)
{
if (type == CHANGE_TYPE_DONE) {
string body;
body += d->name() + "\n";
body += d->language() + "\n";
+ body += string(dcpomatic_version) + " " + string(dcpomatic_git_commit) + "\n";
+ body += "--\n";
map<string, string> translations = I18NHook::translations ();
for (map<string, string>::const_iterator i = translations.begin(); i != translations.end(); ++i) {
- body += i->first + "\n" + i->second + "\n";
+ body += i->first + "\n" + i->second + "\n\n";
}
list<string> to;
to.push_back ("carl@dcpomatic.com");
Emailer emailer (d->email(), to, "DCP-o-matic translations", body);
- emailer.send ("main.carlh.net", 2525);
+ emailer.send ("main.carlh.net", 2525, EMAIL_PROTOCOL_STARTTLS);
}
d->Destroy ();
*/
_config_changed_connection.disconnect ();
+ /* Also stop hearing about analytics-related stuff */
+ _analytics_message_connection.disconnect ();
+
ev.Skip ();
}
_history_position = _file_menu->GetMenuItems().GetCount();
_file_menu->AppendSeparator ();
- add_item (_file_menu, _("&Close"), ID_file_close, NEEDS_FILM);
+ add_item (_file_menu, _("&Close\tCtrl-W"), ID_file_close, NEEDS_FILM);
#ifndef __WXOSX__
_file_menu->AppendSeparator ();
int pos = _history_position;
+ /* Clear out non-existant history items before we re-build the menu */
+ Config::instance()->clean_history ();
vector<boost::filesystem::path> history = Config::instance()->history ();
if (!history.empty ()) {
}
_history_items = history.size ();
+
+ dcpomatic_log->set_types (Config::instance()->log_types());
}
void update_checker_state_changed ()
_film_viewer->seek_by (_film_viewer->one_video_frame(), true);
}
+ void analytics_message (string title, string html)
+ {
+ HTMLDialog* d = new HTMLDialog(this, std_to_wx(title), std_to_wx(html));
+ d->ShowModal();
+ d->Destroy();
+ }
+
FilmEditor* _film_editor;
boost::shared_ptr<FilmViewer> _film_viewer;
StandardControls* _controls;
int _history_position;
wxMenuItem* _history_separator;
boost::signals2::scoped_connection _config_changed_connection;
+ boost::signals2::scoped_connection _analytics_message_connection;
bool _update_news_requested;
shared_ptr<Content> _clipboard;
};