mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-29 09:09:40 +12:00
Autosave implemented.
This commit is contained in:
parent
9a76d0b3ee
commit
293fac017f
|
@ -40,13 +40,13 @@ def saveStandardItemModelXML(mdl, xml):
|
||||||
if mdl.data(mdl.index(x, y)) != "":
|
if mdl.data(mdl.index(x, y)) != "":
|
||||||
col.text = mdl.data(mdl.index(x, y))
|
col.text = mdl.data(mdl.index(x, y))
|
||||||
|
|
||||||
print(qApp.tr("Saving to {}.").format(xml))
|
#print(qApp.tr("Saving to {}.").format(xml))
|
||||||
ET.ElementTree(root).write(xml, encoding="UTF-8", xml_declaration=True, pretty_print=True)
|
ET.ElementTree(root).write(xml, encoding="UTF-8", xml_declaration=True, pretty_print=True)
|
||||||
|
|
||||||
|
|
||||||
def loadStandardItemModelXML(mdl, xml):
|
def loadStandardItemModelXML(mdl, xml):
|
||||||
|
|
||||||
print(qApp.tr("Loading {}... ").format(xml), end="")
|
#print(qApp.tr("Loading {}... ").format(xml), end="")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tree = ET.parse(xml)
|
tree = ET.parse(xml)
|
||||||
|
@ -79,4 +79,4 @@ def loadStandardItemModelXML(mdl, xml):
|
||||||
if "color" in col.attrib:
|
if "color" in col.attrib:
|
||||||
mdl.item(r, c).setIcon(iconFromColorString(col.attrib["color"]))
|
mdl.item(r, c).setIcon(iconFromColorString(col.attrib["color"]))
|
||||||
|
|
||||||
print("OK")
|
#print("OK")
|
|
@ -207,6 +207,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
self.btnRedacFolderOutline.clicked.connect(lambda v: self.redacEditor.setFolderView("outline"))
|
self.btnRedacFolderOutline.clicked.connect(lambda v: self.redacEditor.setFolderView("outline"))
|
||||||
|
|
||||||
# Main Menu
|
# Main Menu
|
||||||
|
self.actSave.setEnabled(False)
|
||||||
|
self.actSaveAs.setEnabled(False)
|
||||||
|
self.actSave.triggered.connect(self.saveDatas)
|
||||||
self.actLabels.triggered.connect(self.settingsLabel)
|
self.actLabels.triggered.connect(self.settingsLabel)
|
||||||
self.actStatus.triggered.connect(self.settingsStatus)
|
self.actStatus.triggered.connect(self.settingsStatus)
|
||||||
self.actSettings.triggered.connect(self.settingsWindow)
|
self.actSettings.triggered.connect(self.settingsWindow)
|
||||||
|
@ -367,15 +370,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
|
|
||||||
def loadProject(self, project):
|
def loadProject(self, project):
|
||||||
self.currentProject = project
|
self.currentProject = project
|
||||||
loadStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(project))
|
|
||||||
loadStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(project))
|
|
||||||
loadStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(project))
|
|
||||||
loadStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(project))
|
|
||||||
loadStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(project))
|
|
||||||
self.mdlOutline.loadFromXML("{}/outline.xml".format(project))
|
|
||||||
settings.load("{}/settings.pickle".format(project))
|
|
||||||
|
|
||||||
# Stuff from settings
|
# Load data
|
||||||
|
self.loadDatas()
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings.load("{}/settings.pickle".format(project))
|
||||||
self.generateViewMenu()
|
self.generateViewMenu()
|
||||||
self.sldCorkSizeFactor.setValue(settings.corkSizeFactor)
|
self.sldCorkSizeFactor.setValue(settings.corkSizeFactor)
|
||||||
self.actSpellcheck.setChecked(settings.spellcheck)
|
self.actSpellcheck.setChecked(settings.spellcheck)
|
||||||
|
@ -391,8 +391,22 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
self.tabMain.setCurrentIndex(settings.lastTab)
|
self.tabMain.setCurrentIndex(settings.lastTab)
|
||||||
self.treeRedacOutline.setCurrentIndex(self.mdlOutline.indexFromPath(settings.lastIndex))
|
self.treeRedacOutline.setCurrentIndex(self.mdlOutline.indexFromPath(settings.lastIndex))
|
||||||
|
|
||||||
|
# Set autosave
|
||||||
|
if settings.autoSave:
|
||||||
|
self.saveTimer = QTimer()
|
||||||
|
self.saveTimer.setInterval(settings.autoSaveDelay * 60 * 1000)
|
||||||
|
self.saveTimer.setSingleShot(False)
|
||||||
|
self.saveTimer.timeout.connect(self.saveDatas)
|
||||||
|
self.saveTimer.start()
|
||||||
|
|
||||||
|
# UI
|
||||||
|
self.actSave.setEnabled(True)
|
||||||
|
self.actSaveAs.setEnabled(True)
|
||||||
|
#FIXME: set Window's name: project name
|
||||||
|
|
||||||
# Stuff
|
# Stuff
|
||||||
self.checkPersosID()
|
self.checkPersosID()
|
||||||
|
|
||||||
# Adds header labels
|
# Adds header labels
|
||||||
self.mdlPersos.setHorizontalHeaderLabels(
|
self.mdlPersos.setHorizontalHeaderLabels(
|
||||||
[i.name for i in Perso])
|
[i.name for i in Perso])
|
||||||
|
@ -419,19 +433,34 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
|
|
||||||
# Save data from models
|
# Save data from models
|
||||||
if settings.saveOnQuit:
|
if settings.saveOnQuit:
|
||||||
saveStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
|
self.saveDatas()
|
||||||
saveStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(self.currentProject))
|
|
||||||
saveStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(self.currentProject))
|
|
||||||
saveStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(self.currentProject))
|
|
||||||
saveStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(self.currentProject))
|
|
||||||
self.mdlOutline.saveToXML("{}/outline.xml".format(self.currentProject))
|
|
||||||
|
|
||||||
# Save settings
|
# Save settings
|
||||||
settings.save("{}/settings.pickle".format(self.currentProject))
|
settings.save("{}/settings.pickle".format(self.currentProject))
|
||||||
|
|
||||||
# closeEvent
|
# closeEvent
|
||||||
QMainWindow.closeEvent(self, event)
|
QMainWindow.closeEvent(self, event)
|
||||||
|
|
||||||
|
def saveDatas(self):
|
||||||
|
saveStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
|
||||||
|
saveStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(self.currentProject))
|
||||||
|
saveStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(self.currentProject))
|
||||||
|
saveStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(self.currentProject))
|
||||||
|
saveStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(self.currentProject))
|
||||||
|
self.mdlOutline.saveToXML("{}/outline.xml".format(self.currentProject))
|
||||||
|
print(self.tr("Project {} saved.").format(self.currentProject))
|
||||||
|
self.statusBar().showMessage(self.tr("Project {} saved.").format(self.currentProject), 5000)
|
||||||
|
|
||||||
|
def loadDatas(self):
|
||||||
|
loadStandardItemModelXML(self.mdlFlatData, "{}/flatModel.xml".format(self.currentProject))
|
||||||
|
loadStandardItemModelXML(self.mdlPersos, "{}/perso.xml".format(self.currentProject))
|
||||||
|
loadStandardItemModelXML(self.mdlPersosInfos, "{}/persoInfos.xml".format(self.currentProject))
|
||||||
|
loadStandardItemModelXML(self.mdlLabels, "{}/labels.xml".format(self.currentProject))
|
||||||
|
loadStandardItemModelXML(self.mdlStatus, "{}/status.xml".format(self.currentProject))
|
||||||
|
self.mdlOutline.loadFromXML("{}/outline.xml".format(self.currentProject))
|
||||||
|
print(self.tr("Project {} loaded.").format(self.currentProject))
|
||||||
|
self.statusBar().showMessage(self.tr("Project {} loaded.").format(self.currentProject), 5000)
|
||||||
|
|
||||||
def clickCycle(self, i):
|
def clickCycle(self, i):
|
||||||
if i == 0: # step 2 - paragraph summary
|
if i == 0: # step 2 - paragraph summary
|
||||||
self.tabMain.setCurrentIndex(1)
|
self.tabMain.setCurrentIndex(1)
|
||||||
|
|
|
@ -60,7 +60,7 @@ class settingsWindow(QWidget, Ui_Settings):
|
||||||
settings.autoSave = True if self.chkAutoSave.checkState() else False
|
settings.autoSave = True if self.chkAutoSave.checkState() else False
|
||||||
settings.saveOnQuit = True if self.chkSaveOnQuit.checkState() else False
|
settings.saveOnQuit = True if self.chkSaveOnQuit.checkState() else False
|
||||||
settings.autoSaveDelay = int(self.txtAutoSave.text())
|
settings.autoSaveDelay = int(self.txtAutoSave.text())
|
||||||
|
self.mw.saveTimer.setInterval(settings.autoSaveDelay * 60 * 1000)
|
||||||
|
|
||||||
def addStatus(self):
|
def addStatus(self):
|
||||||
self.mw.mdlStatus.appendRow(QStandardItem(self.tr("New status")))
|
self.mw.mdlStatus.appendRow(QStandardItem(self.tr("New status")))
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue