diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-04-24 22:30:05 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-04-24 22:30:05 +0100 |
| commit | ccc07eebc492d74c351c235584fd708c46b5b656 (patch) | |
| tree | 69e4efeb452b6b20cb123fbb582a1538d660eb6f /src | |
| parent | 8805ae23ce2c3a19fc6a1fd341cff899bfb61128 (diff) | |
Fix #124 (allow use of existing directories for new films).
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/dvdomatic.cc | 14 | ||||
| -rw-r--r-- | src/wx/wx_util.cc | 10 | ||||
| -rw-r--r-- | src/wx/wx_util.h | 1 |
3 files changed, 22 insertions, 3 deletions
diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index 2a995bee8..b161ac7e3 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -301,9 +301,17 @@ private: if (r == wxID_OK) { - if (boost::filesystem::exists (d->get_path())) { - error_dialog (this, std_to_wx (String::compose (wx_to_std (_("The directory %1 already exists.")), d->get_path().c_str()))); - return; + if (boost::filesystem::exists (d->get_path()) && !boost::filesystem::is_empty(d->get_path())) { + if (!confirm_dialog ( + this, + std_to_wx ( + String::compose (wx_to_std (_("The directory %1 already exists and is not empty. " + "Are you sure you want to use it?")), + d->get_path().c_str()) + ) + )) { + return; + } } maybe_save_then_delete_film (); diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index 720a058cb..77f5da293 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -63,6 +63,16 @@ error_dialog (wxWindow* parent, wxString m) d->Destroy (); } +bool +confirm_dialog (wxWindow* parent, wxString m) +{ + wxMessageDialog* d = new wxMessageDialog (parent, m, _("DVD-o-matic"), wxYES_NO | wxICON_QUESTION); + int const r = d->ShowModal (); + d->Destroy (); + return r == wxID_YES; +} + + /** @param s wxWidgets string. * @return Corresponding STL string. */ diff --git a/src/wx/wx_util.h b/src/wx/wx_util.h index bff3d7982..b3ab706df 100644 --- a/src/wx/wx_util.h +++ b/src/wx/wx_util.h @@ -31,6 +31,7 @@ class wxGridBagSizer; */ extern void error_dialog (wxWindow *, wxString); +extern bool confirm_dialog (wxWindow *, wxString); extern wxStaticText* add_label_to_sizer (wxSizer *, wxWindow *, wxString, int prop = 0); extern wxStaticText* add_label_to_grid_bag_sizer (wxGridBagSizer *, wxWindow *, wxString, wxGBPosition, wxGBSpan span = wxDefaultSpan); extern std::string wx_to_std (wxString); |
