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 185acca..fc45528 100644 (file)
@@ -185,17 +185,6 @@ Instance::set_redo_status(bool x)
 }
 
 bool
-studio::Instance::save_as(const synfig::String &file_name)const
-{
-       if(synfigapp::Instance::save_as(file_name))
-       {
-               App::add_recent_file(file_name);
-               return true;
-       }
-       return false;
-}
-
-bool
 studio::Instance::save_as(const synfig::String &file_name)
 {
        if(synfigapp::Instance::save_as(file_name))
@@ -209,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());
 
        {
@@ -244,7 +231,7 @@ studio::Instance::dialog_save_as()
                                                "other files first before trying to use \"SaveAs\"."
                                        );
 
-                                       return;
+                                       return false;
                                }
                                if(parent_layer)
                                        break;
@@ -297,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