diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-04-24 00:37:31 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-04-24 00:37:31 +0200 |
| commit | 6b0a17aa9e87e914666e696b251555b934cfb811 (patch) | |
| tree | a363c6110827777659942fb30ca3197499de2bc1 /src | |
| parent | f83e23c59f4684fae3453e13bcc569ee94aa2a9e (diff) | |
Add pre-running warning to disk writer.
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/dcpomatic_disk.cc | 8 | ||||
| -rw-r--r-- | src/wx/disk_warning_dialog.cc | 55 | ||||
| -rw-r--r-- | src/wx/disk_warning_dialog.h | 32 | ||||
| -rw-r--r-- | src/wx/wscript | 1 |
4 files changed, 96 insertions, 0 deletions
diff --git a/src/tools/dcpomatic_disk.cc b/src/tools/dcpomatic_disk.cc index bf4d45e20..1d8fac83a 100644 --- a/src/tools/dcpomatic_disk.cc +++ b/src/tools/dcpomatic_disk.cc @@ -24,6 +24,7 @@ #include "wx/drive_wipe_warning_dialog.h" #include "wx/try_unmount_dialog.h" #include "wx/message_dialog.h" +#include "wx/disk_warning_dialog.h" #include "lib/file_log.h" #include "lib/dcpomatic_log.h" #include "lib/util.h" @@ -300,6 +301,12 @@ public: */ Config::drop (); + DiskWarningDialog* warning = new DiskWarningDialog (); + warning->ShowModal (); + if (!warning->confirmed()) { + return false; + } + _frame = new DOMFrame (_("DCP-o-matic Disk Writer")); SetTopWindow (_frame); @@ -311,6 +318,7 @@ public: catch (exception& e) { error_dialog (0, wxString::Format ("DCP-o-matic could not start."), std_to_wx(e.what())); + return false; } return true; diff --git a/src/wx/disk_warning_dialog.cc b/src/wx/disk_warning_dialog.cc new file mode 100644 index 000000000..46483f4a5 --- /dev/null +++ b/src/wx/disk_warning_dialog.cc @@ -0,0 +1,55 @@ +/* + Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "disk_warning_dialog.h" +#include "static_text.h" +#include "wx_util.h" + +DiskWarningDialog::DiskWarningDialog () + : wxDialog (0, wxID_ANY, _("Important notice")) +{ + wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + wxStaticText* text = new StaticText (this, wxEmptyString, wxDefaultPosition, wxSize(400, 300)); + sizer->Add (text, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER); + _yes = new wxTextCtrl (this, wxID_ANY); + sizer->Add (_yes, 0, wxALL, DCPOMATIC_DIALOG_BORDER); + + wxSizer* buttons = CreateSeparatedButtonSizer (wxOK | wxCANCEL); + if (buttons) { + sizer->Add(buttons, wxSizerFlags().Expand().DoubleBorder()); + } + + SetSizer (sizer); + sizer->Layout (); + sizer->SetSizeHints (this); + + text->SetLabelMarkup ( + _("The <b>DCP-o-matic Disk Writer</b> is\n\n<span weight=\"bold\" size=\"20480\" foreground=\"red\">ALPHA-GRADE TEST SOFTWARE</span>\n\n" + "and can\n\n<span weight=\"bold\" size=\"20480\" foreground=\"red\">DESTROY DATA!</span>\n\n" + "Please do not continue unless Carl has asked you to test the software. " + "If you are sure you want to continue please type\n\n<tt>I am sure</tt>\n\ninto the box below, then click OK.") + ); +} + +bool +DiskWarningDialog::confirmed () const +{ + return _yes->GetValue() == "I am sure"; +} diff --git a/src/wx/disk_warning_dialog.h b/src/wx/disk_warning_dialog.h new file mode 100644 index 000000000..869092faa --- /dev/null +++ b/src/wx/disk_warning_dialog.h @@ -0,0 +1,32 @@ +/* + Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include <wx/wx.h> + +class DiskWarningDialog : public wxDialog +{ +public: + DiskWarningDialog (); + + bool confirmed () const; + +private: + wxTextCtrl* _yes; +}; diff --git a/src/wx/wscript b/src/wx/wscript index 6a9003ef1..f78a8c617 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -51,6 +51,7 @@ sources = """ credentials_download_certificate_panel.cc dcp_panel.cc dcpomatic_button.cc + disk_warning_dialog.cc drive_wipe_warning_dialog.cc email_dialog.cc image_sequence_dialog.cc |
