X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffile_picker_ctrl.cc;h=3eb05e44dcd966226fe2d0d582e41dfabfb980cc;hb=e72a69ac2ebf24df05ba4b6de65bfa338a58b0ec;hp=4cd843feb3755c710c08111416e9f9075206e2ab;hpb=6a11232620e0006f6a2b1e8d2b56e56d84229d5c;p=dcpomatic.git diff --git a/src/wx/file_picker_ctrl.cc b/src/wx/file_picker_ctrl.cc index 4cd843feb..3eb05e44d 100644 --- a/src/wx/file_picker_ctrl.cc +++ b/src/wx/file_picker_ctrl.cc @@ -20,19 +20,24 @@ #include "file_picker_ctrl.h" #include "wx_util.h" +#include "dcpomatic_button.h" +#include "lib/warnings.h" +DCPOMATIC_DISABLE_WARNINGS #include #include #include +DCPOMATIC_ENABLE_WARNINGS #include using namespace std; using namespace boost; -FilePickerCtrl::FilePickerCtrl (wxWindow* parent, wxString prompt, wxString wildcard, bool open) +FilePickerCtrl::FilePickerCtrl (wxWindow* parent, wxString prompt, wxString wildcard, bool open, bool warn_overwrite) : wxPanel (parent) , _prompt (prompt) , _wildcard (wildcard) , _open (open) + , _warn_overwrite (warn_overwrite) { _sizer = new wxBoxSizer (wxHORIZONTAL); @@ -40,7 +45,7 @@ FilePickerCtrl::FilePickerCtrl (wxWindow* parent, wxString prompt, wxString wild wxSize size = dc.GetTextExtent (wxT ("This is the length of the file label it should be quite long")); size.SetHeight (-1); - _file = new wxButton (this, wxID_ANY, _("(None)"), wxDefaultPosition, size, wxBU_LEFT); + _file = new Button (this, _("(None)"), wxDefaultPosition, size, wxBU_LEFT); _sizer->Add (_file, 1, wxEXPAND, 0); SetSizerAndFit (_sizer); @@ -71,7 +76,11 @@ FilePickerCtrl::GetPath () const void FilePickerCtrl::browse_clicked () { - wxFileDialog* d = new wxFileDialog (this, _prompt, wxEmptyString, wxEmptyString, _wildcard, _open ? wxFD_OPEN : wxFD_SAVE | wxFD_OVERWRITE_PROMPT); + long style = _open ? wxFD_OPEN : wxFD_SAVE; + if (_warn_overwrite) { + style |= wxFD_OVERWRITE_PROMPT; + } + wxFileDialog* d = new wxFileDialog (this, _prompt, wxEmptyString, wxEmptyString, _wildcard, style); d->SetPath (_path); if (d->ShowModal () == wxID_OK) { SetPath (d->GetPath ());