extern boost::filesystem::path config_path ();
extern boost::filesystem::path directory_containing_executable ();
extern boost::filesystem::path fix_long_path (boost::filesystem::path path);
+extern bool show_in_file_manager (boost::filesystem::path dir, boost::filesystem::path select);
namespace dcpomatic {
std::string get_process_id ();
}
return path;
}
+
+bool
+show_in_file_manager (boost::filesystem::path dir, boost::filesystem::path)
+{
+ int r = system ("which nautilus");
+ if (WEXITSTATUS(r) == 0) {
+ r = system (String::compose("nautilus \"%1\"", dir.string()).c_str());
+ return static_cast<bool>(WEXITSTATUS(r));
+ } else {
+ int r = system ("which konqueror");
+ if (WEXITSTATUS(r) == 0) {
+ r = system (String::compose("konqueror \"%1\"", dir.string()).c_str());
+ return static_cast<bool>(WEXITSTATUS(r));
+ }
+ }
+
+ return true;
+}
+
return dcp::raw_convert<string>(GetCurrentProcessId());
}
+
+bool
+show_in_file_manager (boost::filesystem::path, boost::filesystem::path select)
+{
+ std::wstringstream args;
+ args << "/select," << select;
+ auto const r = ShellExecute (0, L"open", L"explorer.exe", args.str().c_str(), 0, SW_SHOWDEFAULT);
+ return (reinterpret_cast<int64_t>(r) <= 32);
+}
+
#include "lib/analytics.h"
#include "lib/emailer.h"
#include "lib/config.h"
+#include "lib/cross.h"
#include "lib/util.h"
#include "lib/video_content.h"
#include "lib/content.h"
using std::string;
using std::vector;
using std::wcout;
-using std::wstring;
-using std::wstringstream;
using boost::optional;
using boost::is_any_of;
using boost::algorithm::find;
void jobs_show_dcp ()
{
DCPOMATIC_ASSERT (_film->directory ());
-#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::compose("nautilus \"%1\"", _film->directory()->string()).c_str());
- if (WEXITSTATUS (r)) {
- error_dialog (this, _("Could not show DCP."), _("Could not run nautilus"));
- }
- } else {
- int r = system ("which konqueror");
- if (WEXITSTATUS (r) == 0) {
- r = system (String::compose ("konqueror \"%1\"", _film->directory()->string()).c_str());
- if (WEXITSTATUS (r)) {
- error_dialog (this, _("Could not show DCP"), _("Could not run konqueror"));
- }
- }
+ if (show_in_file_manager(_film->directory().get(), _film->dir(_film->dcp_name(false)))) {
+ error_dialog (this, _("Could not show DCP."));
}
-#endif
-
-#ifdef DCPOMATIC_OSX
- int r = system (String::compose ("open -R \"%1\"", _film->dir (_film->dcp_name(false)).string()).c_str());
- if (WEXITSTATUS (r)) {
- error_dialog (this, _("Could not show DCP"));
- }
-#endif
}
void view_closed_captions ()