diff --git a/nw/core/project.py b/nw/core/project.py index 20ca89e9..517e10ef 100644 --- a/nw/core/project.py +++ b/nw/core/project.py @@ -179,6 +179,7 @@ class NWProject(): hScene = self.newFile("New Scene", nwItemClass.NOVEL, hChapt) self.projOpened = time() self.setProjectChanged(True) + self.saveProject(autoSave=True) return True def clearProject(self): @@ -674,7 +675,7 @@ class NWProject(): # Setters ## - def setProjectPath(self, projPath): + def setProjectPath(self, projPath, newProject=False): """Set the project storage path, and also expand ~ to the user directory using the path library. """ @@ -684,7 +685,18 @@ class NWProject(): if projPath.startswith("~"): projPath = path.expanduser(projPath) self.projPath = path.abspath(projPath) + + if newProject and self.mainConf.showGUI: + if listdir(self.projPath): + self.theParent.makeAlert(( + "New project folder is not empty. " + "Each project requires a dedicated project folder." + ), nwAlert.ERROR) + return False + + self.ensureFolderStructure() self.setProjectChanged(True) + return True def setProjectName(self, projName): diff --git a/nw/guimain.py b/nw/guimain.py index a3b7d46e..67bb9fe0 100644 --- a/nw/guimain.py +++ b/nw/guimain.py @@ -294,12 +294,14 @@ class GuiMain(QMainWindow): return False logger.info("Creating new project") - self.theProject.newProject() - self.theProject.setProjectPath(projPath) - self.rebuildTree() - self.saveProject() - self.hasProject = True - self.statusBar.setRefTime(self.theProject.projOpened) + if self.theProject.setProjectPath(projPath, newProject=True): + self.theProject.newProject() + self.rebuildTree() + self.saveProject() + self.hasProject = True + self.statusBar.setRefTime(self.theProject.projOpened) + else: + return False return True