Successfully fixed speling mistakes.
[synfig.git] / synfig-studio / trunk / src / gtkmm / instance.cpp
index e067af9..09fc936 100644 (file)
@@ -1,8 +1,8 @@
 /* === S Y N F I G ========================================================= */
-/*!    \file instance.cpp
+/*!    \file gtkmm/instance.cpp
 **     \brief writeme
 **
-**     $Id: instance.cpp,v 1.2 2005/01/13 18:37:30 darco Exp $
+**     $Id$
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
@@ -50,6 +50,8 @@
 #include "widget_waypointmodel.h"
 #include <gtkmm/actiongroup.h>
 #include "iconcontroler.h"
+#include <sys/stat.h>
+#include <errno.h>
 
 #endif
 
@@ -250,7 +252,13 @@ studio::Instance::dialog_save_as()
                }
        }
 
-       while(App::dialog_saveas_file("SaveAs", filename))
+       // show the canvas' name if it has one, else its ID
+       while(App::dialog_saveas_file(_("Choose a Filename to Save As") +
+                                                                 String(" (") +
+                                                                 (canvas->get_name().empty()
+                                                                  ? canvas->get_id()
+                                                                  : canvas->get_name()) +
+                                                                 ") ...", filename))
        {
                // If the filename still has wildcards, then we should
                // continue looking for the file we want
@@ -274,6 +282,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;
 
@@ -602,7 +623,7 @@ bool
 Instance::safe_revert()
 {
        if(synfigapp::Instance::get_action_count())
-               if(!App::dialog_yes_no(_("Revert to saved"), _("You will loose any changes you have made since your last save.\nAre you sure?")))
+               if(!App::dialog_yes_no(_("Revert to saved"), _("You will lose any changes you have made since your last save.\nAre you sure?")))
                        return false;
        revert();
        return true;