diff options
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/dcpomatic.cc | 20 | ||||
| -rw-r--r-- | src/tools/dcpomatic_server.cc | 8 | ||||
| -rw-r--r-- | src/tools/wscript | 4 |
3 files changed, 26 insertions, 6 deletions
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index edd04fd51..3edc24181 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -46,6 +46,7 @@ #include "wx/hints_dialog.h" #include "wx/update_dialog.h" #include "wx/content_panel.h" +#include "wx/report_problem_dialog.h" #include "lib/film.h" #include "lib/config.h" #include "lib/util.h" @@ -127,6 +128,7 @@ enum { ID_tools_hints, ID_tools_encoding_servers, ID_tools_check_for_updates, + ID_help_report_a_problem, /* IDs for shortcuts (with no associated menu item) */ ID_add_file }; @@ -188,6 +190,7 @@ public: Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::tools_encoding_servers, this), ID_tools_encoding_servers); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::tools_check_for_updates, this), ID_tools_check_for_updates); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::help_about, this), wxID_ABOUT); + Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::help_report_a_problem, this), ID_help_report_a_problem); Bind (wxEVT_CLOSE_WINDOW, boost::bind (&Frame::close, this, _1)); @@ -501,6 +504,15 @@ private: d->Destroy (); } + void help_report_a_problem () + { + ReportProblemDialog* d = new ReportProblemDialog (this, _film); + if (d->ShowModal () == wxID_OK) { + d->report (); + } + d->Destroy (); + } + bool should_close () { if (!JobManager::instance()->work_to_do ()) { @@ -647,6 +659,7 @@ private: #else add_item (help, _("About"), wxID_ABOUT, ALWAYS); #endif + add_item (help, _("Report a problem..."), ID_help_report_a_problem, ALWAYS); m->Append (_file_menu, _("&File")); #ifndef __WXOSX__ @@ -824,9 +837,8 @@ class App : public wxApp try { throw; } catch (exception& e) { - error_dialog (0, wxString::Format (_("An exception occurred (%s). Please report this problem to the DCP-o-matic author (carl@dcpomatic.com)."), e.what ())); - } catch (...) { - error_dialog (0, _("An unknown exception occurred. Please report this problem to the DCP-o-matic author (carl@dcpomatic.com).")); + error_dialog (0, wxString::Format (_("An exception occurred (%s)."), e.what ()) + " " + REPORT_PROBLEM); } catch (...) { + error_dialog (0, _("An unknown exception occurred.") + " " + REPORT_PROBLEM); } /* This will terminate the program */ @@ -835,7 +847,7 @@ class App : public wxApp void OnUnhandledException () { - error_dialog (0, _("An unknown exception occurred. Please report this problem to the DCP-o-matic author (carl@dcpomatic.com).")); + error_dialog (0, _("An unknown exception occurred.") + " " + REPORT_PROBLEM); } void idle () diff --git a/src/tools/dcpomatic_server.cc b/src/tools/dcpomatic_server.cc index a82478dfd..bcd5c8df6 100644 --- a/src/tools/dcpomatic_server.cc +++ b/src/tools/dcpomatic_server.cc @@ -47,6 +47,14 @@ public: return _log; } + string head_and_tail () const { + if (_log.size () < 2048) { + return _log; + } + + return _log.substr (0, 1024) + _log.substr (_log.size() - 1025, 1024); + } + private: void do_log (string m) { diff --git a/src/tools/wscript b/src/tools/wscript index 3811bf760..c671aadb4 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -11,7 +11,7 @@ def configure(conf): def build(bld): for t in ['dcpomatic_cli', 'dcpomatic_server_cli', 'server_test', 'dcpomatic_kdm', 'dcpomatic_create']: obj = bld(features = 'cxx cxxprogram') - obj.uselib = 'BOOST_THREAD BOOST_DATETIME OPENJPEG DCP CXML AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC WXWIDGETS QUICKMAIL SUB' + obj.uselib = 'BOOST_THREAD BOOST_DATETIME OPENJPEG DCP CXML AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC WXWIDGETS SUB' obj.includes = ['..'] obj.use = ['libdcpomatic2'] obj.source = '%s.cc' % t @@ -22,7 +22,7 @@ def build(bld): if not bld.env.DISABLE_GUI: for t in ['dcpomatic', 'dcpomatic_batch', 'dcpomatic_server']: obj = bld(features = 'cxx cxxprogram') - obj.uselib = 'BOOST_THREAD BOOST_DATETIME OPENJPEG DCP CXML AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC CXML WXWIDGETS QUICKMAIL SUB' + obj.uselib = 'BOOST_THREAD BOOST_DATETIME OPENJPEG DCP CXML AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC CXML WXWIDGETS SUB' if bld.env.BUILD_STATIC: obj.uselib += ' GTK' obj.includes = ['..'] |
