Fix 1686425: prompt before overwriting an existing file with 'save as'.
authordooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Sun, 1 Apr 2007 15:28:30 +0000 (15:28 +0000)
committerdooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Sun, 1 Apr 2007 15:28:30 +0000 (15:28 +0000)
git-svn-id: http://svn.voria.com/code@407 1f10aa63-cdf2-0310-b900-c93c546f37ac

synfig-studio/trunk/src/gtkmm/instance.cpp

index 378c7c2..58ef103 100644 (file)
@@ -50,6 +50,8 @@
 #include "widget_waypointmodel.h"
 #include <gtkmm/actiongroup.h>
 #include "iconcontroler.h"
+#include <sys/stat.h>
+#include <errno.h>
 
 #endif
 
@@ -274,6 +276,19 @@ studio::Instance::dialog_save_as()
                        continue;
                }
 
+               {
+                       struct stat     s;
+                       // if stat() succeeds, or it fails with something other than 'file doesn't exist', the file exists
+                       // if the file exists and the user doesn't want to overwrite it, keep prompting for a filename
+                       if ((stat(filename.c_str(), &s) != -1 || errno != ENOENT) &&
+                               !App::dialog_yes_no("File exists",
+                                                                       "A file named '" +
+                                                                       filename +
+                                                                       "' already exists.\n\n"
+                                                                       "Do you want to replace it with the file you are saving?"))
+                               continue;
+               }
+
                if(save_as(filename))
                        break;