From 2c0e3074ce7d12b5dc7229f76738b6599fda463d Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Tue, 29 Mar 2016 19:13:51 +0200 Subject: [PATCH] Adds: UI setting to change project format (single file, or directory) --- manuskript/loadSave.py | 2 -- manuskript/load_save/version_1.py | 6 ++++-- manuskript/settings.py | 8 +++++++- manuskript/settingsWindow.py | 4 ++++ manuskript/ui/settings_ui.py | 13 ++++++++++++- manuskript/ui/settings_ui.ui | 24 +++++++++++++++++++++++- manuskript/ui/welcome.py | 2 +- 7 files changed, 51 insertions(+), 8 deletions(-) diff --git a/manuskript/loadSave.py b/manuskript/loadSave.py index a7b336b..908bc37 100644 --- a/manuskript/loadSave.py +++ b/manuskript/loadSave.py @@ -20,8 +20,6 @@ def saveProject(version=None): else: v1.saveProject() - # FIXME: add settings to chose between saving as zip or not. - def clearSaveCache(): v1.cache = {} diff --git a/manuskript/load_save/version_1.py b/manuskript/load_save/version_1.py index b1281c7..07d9bd0 100644 --- a/manuskript/load_save/version_1.py +++ b/manuskript/load_save/version_1.py @@ -105,8 +105,7 @@ def saveProject(zip=None): @return: Nothing """ if zip is None: - zip = False - # FIXME: use value from settings + zip = settings.saveToZip log("\n\nSaving to:", "zip" if zip else "folder") @@ -651,6 +650,9 @@ def loadProject(project, zip=None): else: errors.append("settings.txt") + # Just to be sure + settings.saveToZip = zip + #################################################################################################################### # Labels diff --git a/manuskript/settings.py b/manuskript/settings.py index 9bff120..c0cc2ed 100644 --- a/manuskript/settings.py +++ b/manuskript/settings.py @@ -87,12 +87,14 @@ frequencyAnalyzer = { } viewMode = "fiction" +saveToZip = True def save(filename=None, protocol=None): global spellcheck, dict, corkSliderFactor, viewSettings, corkSizeFactor, folderView, lastTab, openIndexes, \ autoSave, autoSaveDelay, saveOnQuit, autoSaveNoChanges, autoSaveNoChangesDelay, outlineViewColumns, \ - corkBackground, fullScreenTheme, defaultTextType, textEditor, revisions, frequencyAnalyzer, viewMode + corkBackground, fullScreenTheme, defaultTextType, textEditor, revisions, frequencyAnalyzer, viewMode, \ + saveToZip allSettings = { "viewSettings": viewSettings, @@ -115,6 +117,7 @@ def save(filename=None, protocol=None): "revisions":revisions, "frequencyAnalyzer": frequencyAnalyzer, "viewMode": viewMode, + "saveToZip": saveToZip, } #pp=pprint.PrettyPrinter(indent=4, compact=False) @@ -251,3 +254,6 @@ def load(string, fromString=False, protocol=None): global viewMode viewMode = allSettings["viewMode"] + if "saveToZip" in allSettings: + global saveToZip + saveToZip = allSettings["saveToZip"] \ No newline at end of file diff --git a/manuskript/settingsWindow.py b/manuskript/settingsWindow.py index 76571e8..59f4151 100644 --- a/manuskript/settingsWindow.py +++ b/manuskript/settingsWindow.py @@ -68,9 +68,11 @@ class settingsWindow(QWidget, Ui_Settings): self.txtAutoSave.setText(str(settings.autoSaveDelay)) self.txtAutoSaveNoChanges.setText(str(settings.autoSaveNoChangesDelay)) self.chkSaveOnQuit.setChecked(settings.saveOnQuit) + self.chkSaveToZip.setChecked(settings.saveToZip) self.chkAutoSave.stateChanged.connect(self.saveSettingsChanged) self.chkAutoSaveNoChanges.stateChanged.connect(self.saveSettingsChanged) self.chkSaveOnQuit.stateChanged.connect(self.saveSettingsChanged) + self.chkSaveToZip.stateChanged.connect(self.saveSettingsChanged) self.txtAutoSave.textEdited.connect(self.saveSettingsChanged) self.txtAutoSaveNoChanges.textEdited.connect(self.saveSettingsChanged) autoLoad, last = self.mw.welcome.getAutoLoadValues() @@ -241,11 +243,13 @@ class settingsWindow(QWidget, Ui_Settings): sttgs = QSettings() sttgs.setValue("autoLoad", True if self.chkAutoLoad.checkState() else False) + print("Setting Value:", True if self.chkAutoLoad.checkState() else False) sttgs.sync() settings.autoSave = True if self.chkAutoSave.checkState() else False settings.autoSaveNoChanges = True if self.chkAutoSaveNoChanges.checkState() else False settings.saveOnQuit = True if self.chkSaveOnQuit.checkState() else False + settings.saveToZip = True if self.chkSaveToZip.checkState() else False settings.autoSaveDelay = int(self.txtAutoSave.text()) settings.autoSaveNoChangesDelay = int(self.txtAutoSaveNoChanges.text()) self.mw.saveTimer.setInterval(settings.autoSaveDelay * 60 * 1000) diff --git a/manuskript/ui/settings_ui.py b/manuskript/ui/settings_ui.py index 75dfd05..44bb809 100644 --- a/manuskript/ui/settings_ui.py +++ b/manuskript/ui/settings_ui.py @@ -11,7 +11,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Settings(object): def setupUi(self, Settings): Settings.setObjectName("Settings") - Settings.resize(658, 561) + Settings.resize(658, 585) self.horizontalLayout_8 = QtWidgets.QHBoxLayout(Settings) self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.lstMenu = QtWidgets.QListWidget(Settings) @@ -205,6 +205,15 @@ class Ui_Settings(object): self.chkSaveOnQuit.setChecked(True) self.chkSaveOnQuit.setObjectName("chkSaveOnQuit") self.verticalLayout_6.addWidget(self.chkSaveOnQuit) + self.chkSaveToZip = QtWidgets.QCheckBox(self.groupBox) + font = QtGui.QFont() + font.setBold(False) + font.setWeight(50) + self.chkSaveToZip.setFont(font) + self.chkSaveToZip.setStatusTip("") + self.chkSaveToZip.setChecked(True) + self.chkSaveToZip.setObjectName("chkSaveToZip") + self.verticalLayout_6.addWidget(self.chkSaveToZip) self.verticalLayout_7.addWidget(self.groupBox) self.groupBox_11 = QtWidgets.QGroupBox(self.stackedWidgetPage1) font = QtGui.QFont() @@ -1662,6 +1671,8 @@ class Ui_Settings(object): self.chkAutoSaveNoChanges.setText(_translate("Settings", "If no changes during")) self.label_14.setText(_translate("Settings", "seconds.")) self.chkSaveOnQuit.setText(_translate("Settings", "Save on quit")) + self.chkSaveToZip.setToolTip(_translate("Settings", "

If you check this option, your project will be save as one single file. Easier to copy or backup, but does not allow collaborative editing, or versionning.
If this is unchecked, your project will be save as a folder containing many small files.

")) + self.chkSaveToZip.setText(_translate("Settings", "Save to one single file")) self.groupBox_11.setTitle(_translate("Settings", "Default text format")) self.label_35.setText(_translate("Settings", "The format set by default when you create a new text item. You can change this on a per item basis.")) self.lblTitleGeneral_2.setText(_translate("Settings", "Revisions")) diff --git a/manuskript/ui/settings_ui.ui b/manuskript/ui/settings_ui.ui index fd5bc9a..7991b0e 100644 --- a/manuskript/ui/settings_ui.ui +++ b/manuskript/ui/settings_ui.ui @@ -7,7 +7,7 @@ 0 0 658 - 561 + 585 @@ -399,6 +399,28 @@ text-align:center; + + + + + 50 + false + + + + <html><head/><body><p>If you check this option, your project will be save as one single file. Easier to copy or backup, but does not allow collaborative editing, or versionning.<br/>If this is unchecked, your project will be save as a folder containing many small files.</p></body></html> + + + + + + Save to one single file + + + true + + + diff --git a/manuskript/ui/welcome.py b/manuskript/ui/welcome.py index 3331438..86da882 100644 --- a/manuskript/ui/welcome.py +++ b/manuskript/ui/welcome.py @@ -66,7 +66,7 @@ class welcome(QWidget, Ui_welcome): def getAutoLoadValues(self): sttgns = QSettings() if sttgns.contains("autoLoad"): - autoLoad = True if sttgns.value("autoLoad") == "true" else False + autoLoad = True if sttgns.value("autoLoad") in ["true", True] else False else: autoLoad = False if autoLoad and sttgns.contains("lastProject"):