| @@ -83,7 +83,7 @@ namespace | |||||
| << projectFile.getFullPathName() << std::endl; | << projectFile.getFullPathName() << std::endl; | ||||
| String error (justSaveResources ? proj.saveResourcesOnly (projectFile) | String error (justSaveResources ? proj.saveResourcesOnly (projectFile) | ||||
| : proj.saveDocument (projectFile)); | |||||
| : proj.saveProject (projectFile, false)); | |||||
| if (error.isNotEmpty()) | if (error.isNotEmpty()) | ||||
| { | { | ||||
| @@ -46,8 +46,34 @@ public: | |||||
| Project& getProject() noexcept { return project; } | Project& getProject() noexcept { return project; } | ||||
| String save() | |||||
| struct SaveThread : public ThreadWithProgressWindow | |||||
| { | { | ||||
| public: | |||||
| SaveThread (ProjectSaver& saver_) | |||||
| : ThreadWithProgressWindow ("Saving...", true, false), saver (saver_) | |||||
| {} | |||||
| void run() | |||||
| { | |||||
| setProgress (-1); | |||||
| result = saver.save (false); | |||||
| } | |||||
| ProjectSaver& saver; | |||||
| String result; | |||||
| JUCE_DECLARE_NON_COPYABLE (SaveThread); | |||||
| }; | |||||
| String save (bool showProgressBox) | |||||
| { | |||||
| if (showProgressBox) | |||||
| { | |||||
| SaveThread thread (*this); | |||||
| thread.runThread(); | |||||
| return thread.result; | |||||
| } | |||||
| if (generatedCodeFolder.exists()) | if (generatedCodeFolder.exists()) | ||||
| deleteNonHiddenFilesIn (generatedCodeFolder); | deleteNonHiddenFilesIn (generatedCodeFolder); | ||||
| @@ -235,6 +235,11 @@ const String Project::loadDocument (const File& file) | |||||
| } | } | ||||
| const String Project::saveDocument (const File& file) | const String Project::saveDocument (const File& file) | ||||
| { | |||||
| return saveProject (file, true); | |||||
| } | |||||
| String Project::saveProject (const File& file, bool showProgressBox) | |||||
| { | { | ||||
| updateProjectSettings(); | updateProjectSettings(); | ||||
| sanitiseConfigFlags(); | sanitiseConfigFlags(); | ||||
| @@ -242,7 +247,7 @@ const String Project::saveDocument (const File& file) | |||||
| StoredSettings::getInstance()->recentFiles.addFile (file); | StoredSettings::getInstance()->recentFiles.addFile (file); | ||||
| ProjectSaver saver (*this, file); | ProjectSaver saver (*this, file); | ||||
| return saver.save(); | |||||
| return saver.save (showProgressBox); | |||||
| } | } | ||||
| String Project::saveResourcesOnly (const File& file) | String Project::saveResourcesOnly (const File& file) | ||||
| @@ -46,6 +46,7 @@ public: | |||||
| const String getDocumentTitle(); | const String getDocumentTitle(); | ||||
| const String loadDocument (const File& file); | const String loadDocument (const File& file); | ||||
| const String saveDocument (const File& file); | const String saveDocument (const File& file); | ||||
| String saveProject (const File& file, bool showProgressBox); | |||||
| String saveResourcesOnly (const File& file); | String saveResourcesOnly (const File& file); | ||||
| const File getLastDocumentOpened(); | const File getLastDocumentOpened(); | ||||
| void setLastDocumentOpened (const File& file); | void setLastDocumentOpened (const File& file); | ||||