#include "wx/film_editor.h"
#include "wx/job_manager_view.h"
#include "wx/config_dialog.h"
-#include "wx/job_wrapper.h"
#include "wx/wx_util.h"
#include "wx/new_film_dialog.h"
#include "wx/properties_dialog.h"
#include <boost/filesystem.hpp>
#include <iostream>
#include <fstream>
+#include <sstream>
+
+#ifdef check
+#undef check
+#endif
using std::cout;
+using std::wcout;
using std::string;
using std::vector;
using std::wstring;
+using std::wstringstream;
using std::map;
using std::make_pair;
using std::list;
return;
}
}
-
- JobWrapper::make_dcp (this, _film);
+
+ try {
+ /* It seems to make sense to auto-save metadata here, since the make DCP may last
+ a long time, and crashes/power failures are moderately likely.
+ */
+ _film->write_metadata ();
+ _film->make_dcp ();
+ } catch (BadSettingError& e) {
+ error_dialog (this, wxString::Format (_("Bad setting for %s (%s)"), std_to_wx(e.setting()).data(), std_to_wx(e.what()).data()));
+ } catch (std::exception& e) {
+ error_dialog (this, wxString::Format (_("Could not make DCP: %s"), std_to_wx(e.what()).data()));
+ }
}
void jobs_make_kdms ()
void jobs_show_dcp ()
{
-#ifdef __WXMSW__
- string d = _film->directory().string ();
- wstring w;
- w.assign (d.begin(), d.end());
- ShellExecute (0, L"open", w.c_str(), 0, 0, SW_SHOWDEFAULT);
-#else
+#ifdef DCPOMATIC_WINDOWS
+ wstringstream args;
+ args << "/select," << _film->dir (_film->dcp_name(false));
+ ShellExecute (0, L"open", L"explorer.exe", args.str().c_str(), 0, SW_SHOWDEFAULT);
+#endif
+
+#ifdef DCPOMATIC_LINUX
int r = system ("which nautilus");
if (WEXITSTATUS (r) == 0) {
r = system (string ("nautilus " + _film->directory().string()).c_str ());
}
}
#endif
+
+#ifdef DCPOMATIC_OSX
+ int r = system (string ("open -R " + _film->dir (_film->dcp_name (false)).string ()).c_str ());
+ if (WEXITSTATUS (r)) {
+ error_dialog (this, _("Could not show DCP"));
+ }
+#endif
}
void tools_hints ()