diff --git a/manuskript/loadSave.py b/manuskript/loadSave.py index 93ede03..0903fb4 100644 --- a/manuskript/loadSave.py +++ b/manuskript/loadSave.py @@ -16,9 +16,9 @@ def saveProject(version=None): # return if version == 0: - v0.saveProject() + return v0.saveProject() else: - v1.saveProject() + return v1.saveProject() def clearSaveCache(): diff --git a/manuskript/load_save/version_1.py b/manuskript/load_save/version_1.py index b28c6fc..df059db 100644 --- a/manuskript/load_save/version_1.py +++ b/manuskript/load_save/version_1.py @@ -103,7 +103,7 @@ def saveProject(zip=None): collaborative work, versionning, or third-party editing. @param zip: if True, saves as a single file. If False, saves as plain-text. If None, tries to determine based on settings. - @return: Nothing + @return: True if successful, False otherwise. """ if zip is None: zip = settings.saveToZip @@ -295,6 +295,10 @@ def saveProject(zip=None): files.append(("settings.txt", settings.save(protocol=0))) project = mw.currentProject + + if not os.access(project, os.W_OK): + print("Error: you don't have write access to save this project there.") + return False #################################################################################################################### # Save to zip @@ -311,6 +315,7 @@ def saveProject(zip=None): zf.writestr(filename, content, compress_type=compression) zf.close() + return True #################################################################################################################### # Save to plain text @@ -403,6 +408,8 @@ def saveProject(zip=None): # Write the project file's content with open(project, "w", encoding='utf8') as f: f.write("1") # Format number + + return True def addWorldItem(root, mdl, parent=QModelIndex()): diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py index 2117296..bc85a6f 100644 --- a/manuskript/mainWindow.py +++ b/manuskript/mainWindow.py @@ -502,13 +502,17 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.currentProject = projectName QSettings().setValue("lastProject", projectName) - loadSave.saveProject() # version=0 + r = loadSave.saveProject() # version=0 self.saveTimerNoChanges.stop() + + if r: + feedback = self.tr("Project {} saved.").format(self.currentProject) + else: + feedback = self.tr("WARNING: Project {} not saved.").format(self.currentProject) # Giving some feedback - print(self.tr("Project {} saved.").format(self.currentProject)) - self.statusBar().showMessage( - self.tr("Project {} saved.").format(self.currentProject), 5000) + print(feedback) + self.statusBar().showMessage(feedback, 5000) def loadEmptyDatas(self): self.mdlFlatData = QStandardItemModel(self)