Working on 1796971: Make dialog_save_as() return a bool saying whether it saved anyth...
[synfig.git] / synfig-studio / trunk / src / gtkmm / instance.cpp
index a67d7f7..fc45528 100644 (file)
@@ -198,21 +198,19 @@ studio::Instance::save_as(const synfig::String &file_name)
 bool
 studio::Instance::save()
 {
-       if(basename(get_file_name()).find("untitled")==0)
-       {
-               dialog_save_as();
-               return true;
-       }
+       // the filename will be set to "Synfig Animation 1" or some such when first created
+       // and will be changed to an absolute path once it has been saved
+       // so if it still begins with "Synfig Animation " then we need to ask where to save it
+       if(get_file_name().find(DEFAULT_FILENAME_PREFIX)==0)
+               return dialog_save_as();
 
        return synfigapp::Instance::save();
-
 }
 
-void
+bool
 studio::Instance::dialog_save_as()
 {
-       string filename="*.sif";
-
+       string filename=basename(get_file_name());
        Canvas::Handle canvas(get_canvas());
 
        {
@@ -233,7 +231,7 @@ studio::Instance::dialog_save_as()
                                                "other files first before trying to use \"SaveAs\"."
                                        );
 
-                                       return;
+                                       return false;
                                }
                                if(parent_layer)
                                        break;
@@ -286,10 +284,12 @@ studio::Instance::dialog_save_as()
                }
 
                if(save_as(filename))
-                       break;
+                       return true;
 
                App::dialog_error_blocking("SaveAs - Error","Unable to save file");
        }
+
+       return false;
 }
 
 void