diff options
| author | Carl Hetherington <cth@carlh.net> | 2017-05-04 10:55:53 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2017-05-04 10:55:53 +0100 |
| commit | bb80004d3201047a33dd251ea6c3f6de2b47cb3b (patch) | |
| tree | 8b2520011c7d5f346c2725bb23a551b872850050 /src/wx | |
| parent | 9b1fb6530563dfd8f32a8568d26c768b1006de90 (diff) | |
Nag users to backup config.xml if they make a DKDM.
Diffstat (limited to 'src/wx')
| -rw-r--r-- | src/wx/nag_dialog.cc | 68 | ||||
| -rw-r--r-- | src/wx/nag_dialog.h | 37 | ||||
| -rw-r--r-- | src/wx/wscript | 1 |
3 files changed, 106 insertions, 0 deletions
diff --git a/src/wx/nag_dialog.cc b/src/wx/nag_dialog.cc new file mode 100644 index 000000000..69b64cb40 --- /dev/null +++ b/src/wx/nag_dialog.cc @@ -0,0 +1,68 @@ +/* + Copyright (C) 2017 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 "nag_dialog.h" +#include "wx_util.h" +#include <wx/richtext/richtextctrl.h> +#include <boost/foreach.hpp> + +using boost::shared_ptr; + +NagDialog::NagDialog (wxWindow* parent, Config::Nag nag, wxString message) + : wxDialog (parent, wxID_ANY, _("Important notice")) + , _nag (nag) +{ + wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + _text = new wxStaticText (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (400, 300)); + sizer->Add (_text, 1, wxEXPAND | wxALL, 6); + + wxCheckBox* b = new wxCheckBox (this, wxID_ANY, _("Don't show this message again")); + b->SetValue (true); + Config::instance()->set_nagged (_nag, true); + sizer->Add (b, 0, wxALL, 6); + b->Bind (wxEVT_CHECKBOX, bind (&NagDialog::shut_up, this, _1)); + + wxStdDialogButtonSizer* buttons = CreateStdDialogButtonSizer (0); + sizer->Add (CreateSeparatedSizer(buttons), wxSizerFlags().Expand().DoubleBorder()); + buttons->SetAffirmativeButton (new wxButton (this, wxID_OK)); + buttons->Realize (); + + SetSizer (sizer); + sizer->Layout (); + sizer->SetSizeHints (this); + + _text->SetLabelMarkup (message); +} + +void +NagDialog::shut_up (wxCommandEvent& ev) +{ + Config::instance()->set_nagged (_nag, ev.IsChecked()); +} + +void +NagDialog::maybe_nag (wxWindow* parent, Config::Nag nag, wxString message) +{ + if (!Config::instance()->nagged (nag)) { + NagDialog* d = new NagDialog (parent, nag, message); + d->ShowModal (); + d->Destroy (); + } +} diff --git a/src/wx/nag_dialog.h b/src/wx/nag_dialog.h new file mode 100644 index 000000000..06f98d967 --- /dev/null +++ b/src/wx/nag_dialog.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2017 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 "lib/config.h" +#include <wx/wx.h> + +class wxRichTextCtrl; + +class NagDialog : public wxDialog +{ +public: + static void maybe_nag (wxWindow* parent, Config::Nag nag, wxString message); + +private: + NagDialog (wxWindow* parent, Config::Nag nag, wxString message); + void shut_up (wxCommandEvent& ev); + + wxStaticText* _text; + Config::Nag _nag; +}; diff --git a/src/wx/wscript b/src/wx/wscript index c545bf482..332a04ac5 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -68,6 +68,7 @@ sources = """ key_dialog.cc make_chain_dialog.cc move_to_dialog.cc + nag_dialog.cc name_format_editor.cc new_film_dialog.cc normal_job_view.cc |
