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"):