summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-04-24 22:30:05 +0100
committerCarl Hetherington <cth@carlh.net>2013-04-24 22:30:05 +0100
commitccc07eebc492d74c351c235584fd708c46b5b656 (patch)
tree69e4efeb452b6b20cb123fbb582a1538d660eb6f /src
parent8805ae23ce2c3a19fc6a1fd341cff899bfb61128 (diff)
Fix #124 (allow use of existing directories for new films).
Diffstat (limited to 'src')
-rw-r--r--src/tools/dvdomatic.cc14
-rw-r--r--src/wx/wx_util.cc10
-rw-r--r--src/wx/wx_util.h1
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);