summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-10-24 20:44:24 +0200
committerCarl Hetherington <cth@carlh.net>2020-10-27 21:45:32 +0100
commitbed96d486f85a9fa5171e2cdaa3858581d631b3a (patch)
tree3762b496ef7180a3569c72b3626822e2fefa55c0 /src
parent1dfb125a8e07f5185c229260ac0643e47eee5026 (diff)
Add uninstaller for the .pkg part of the disk writer on macOS (#1740).
Diffstat (limited to 'src')
-rw-r--r--src/tools/dcpomatic_disk.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/tools/dcpomatic_disk.cc b/src/tools/dcpomatic_disk.cc
index 92429aa53..1a3c3d5fe 100644
--- a/src/tools/dcpomatic_disk.cc
+++ b/src/tools/dcpomatic_disk.cc
@@ -58,6 +58,13 @@ using namespace boost::placeholders;
#endif
+#ifdef DCPOMATIC_OSX
+enum {
+ ID_tools_uninstall = 1,
+};
+#endif
+
+
class DOMFrame : public wxFrame
{
public:
@@ -66,6 +73,15 @@ public:
, _nanomsg (true)
, _sizer (new wxBoxSizer(wxVERTICAL))
{
+#ifdef DCPOMATIC_OSX
+ wxMenuBar* bar = new wxMenuBar;
+ wxMenu* tools = new wxMenu;
+ tools->Append(ID_tools_uninstall, _("Uninstall..."));
+ bar->Append(tools, _("Tools"));
+ SetMenuBar (bar);
+ Bind (wxEVT_MENU, boost::bind(&DOMFrame::uninstall, this), ID_tools_uninstall);
+#endif
+
/* Use a panel as the only child of the Frame so that we avoid
the dark-grey background on Windows.
*/
@@ -163,6 +179,14 @@ private:
}
+#ifdef DCPOMATIC_OSX
+ void uninstall()
+ {
+ system(String::compose("osascript \"%1/uninstall_disk.applescript\"", resources_path().string()).c_str());
+ }
+#endif
+
+
bool should_close ()
{
if (!JobManager::instance()->work_to_do()) {
@@ -349,6 +373,7 @@ public:
#endif
#ifdef DCPOMATIC_OSX
+ dcpomatic_sleep_seconds (1);
make_foreground_application ();
#endif