Open last edited and viewed document when opening project
This commit is contained in:
+3
-3
@@ -251,10 +251,10 @@ class GuiMainMenu(QMenuBar):
|
|||||||
self.docuMenu.addSeparator()
|
self.docuMenu.addSeparator()
|
||||||
|
|
||||||
# Document > Preview
|
# Document > Preview
|
||||||
menuItem = QAction(QIcon.fromTheme("text-html"), "Preview Document", self)
|
menuItem = QAction(QIcon.fromTheme("text-html"), "View Document", self)
|
||||||
menuItem.setStatusTip("Preview Document")
|
menuItem.setStatusTip("View Document in HTML")
|
||||||
menuItem.setShortcut("Ctrl+R")
|
menuItem.setShortcut("Ctrl+R")
|
||||||
menuItem.triggered.connect(self.theParent._previewDocument)
|
menuItem.triggered.connect(self.theParent.viewDocument)
|
||||||
self.docuMenu.addAction(menuItem)
|
self.docuMenu.addAction(menuItem)
|
||||||
|
|
||||||
# # Document > Separator
|
# # Document > Separator
|
||||||
|
|||||||
+11
-3
@@ -200,6 +200,10 @@ class GuiMain(QMainWindow):
|
|||||||
self.docEditor.setPwl(path.join(self.theProject.projMeta,"wordlist.txt"))
|
self.docEditor.setPwl(path.join(self.theProject.projMeta,"wordlist.txt"))
|
||||||
self.docEditor.setSpellCheck(self.theProject.spellCheck)
|
self.docEditor.setSpellCheck(self.theProject.spellCheck)
|
||||||
self.mainMenu.updateMenu()
|
self.mainMenu.updateMenu()
|
||||||
|
if self.theProject.lastEdited is not None:
|
||||||
|
self.openDocument(self.theProject.lastEdited)
|
||||||
|
if self.theProject.lastViewed is not None:
|
||||||
|
self.viewDocument(self.theProject.lastViewed)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def saveProject(self):
|
def saveProject(self):
|
||||||
@@ -224,6 +228,7 @@ class GuiMain(QMainWindow):
|
|||||||
self.docEditor.setCursorPosition(self.theDocument.theItem.cursorPos)
|
self.docEditor.setCursorPosition(self.theDocument.theItem.cursorPos)
|
||||||
self.docEditor.changeWidth()
|
self.docEditor.changeWidth()
|
||||||
self.docEditor.setFocus()
|
self.docEditor.setFocus()
|
||||||
|
self.theProject.setLastEdited(tHandle)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def saveDocument(self):
|
def saveDocument(self):
|
||||||
@@ -238,9 +243,10 @@ class GuiMain(QMainWindow):
|
|||||||
self.docEditor.setDocumentChanged(False)
|
self.docEditor.setDocumentChanged(False)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _previewDocument(self):
|
def viewDocument(self, tHandle=None):
|
||||||
|
|
||||||
tHandle = self.treeView.getSelectedHandle()
|
if tHandle is None:
|
||||||
|
tHandle = self.treeView.getSelectedHandle()
|
||||||
if tHandle is None:
|
if tHandle is None:
|
||||||
logger.warning("No document selected")
|
logger.warning("No document selected")
|
||||||
return
|
return
|
||||||
@@ -254,6 +260,8 @@ class GuiMain(QMainWindow):
|
|||||||
aDoc.tokenizeText()
|
aDoc.tokenizeText()
|
||||||
aDoc.doConvert()
|
aDoc.doConvert()
|
||||||
self.docViewer.setHtml(aDoc.theResult)
|
self.docViewer.setHtml(aDoc.theResult)
|
||||||
|
self.theProject.setLastViewed(tHandle)
|
||||||
|
|
||||||
bPos = self.splitMain.sizes()
|
bPos = self.splitMain.sizes()
|
||||||
self.docViewer.setVisible(True)
|
self.docViewer.setVisible(True)
|
||||||
if bPos[2] == 0:
|
if bPos[2] == 0:
|
||||||
@@ -261,7 +269,7 @@ class GuiMain(QMainWindow):
|
|||||||
bPos[1] = int(bWidth/2)
|
bPos[1] = int(bWidth/2)
|
||||||
bPos[2] = bWidth-bPos[1]
|
bPos[2] = bWidth-bPos[1]
|
||||||
self.splitMain.setSizes(bPos)
|
self.splitMain.setSizes(bPos)
|
||||||
self.docEditor.changeWidth()
|
self.docEditor.changeWidth()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
+19
-1
@@ -56,6 +56,8 @@ class NWProject():
|
|||||||
self.spellCheck = False
|
self.spellCheck = False
|
||||||
self.statusCols = None
|
self.statusCols = None
|
||||||
self.importCols = None
|
self.importCols = None
|
||||||
|
self.lastEdited = None
|
||||||
|
self.lastViewed = None
|
||||||
|
|
||||||
# Set Defaults
|
# Set Defaults
|
||||||
self.clearProject()
|
self.clearProject()
|
||||||
@@ -209,6 +211,10 @@ class NWProject():
|
|||||||
if xItem.text is None: continue
|
if xItem.text is None: continue
|
||||||
if xItem.tag == "spellCheck":
|
if xItem.tag == "spellCheck":
|
||||||
self.spellCheck = checkBool(xItem.text,False)
|
self.spellCheck = checkBool(xItem.text,False)
|
||||||
|
if xItem.tag == "lastEdited":
|
||||||
|
self.lastEdited = checkString(xItem.text,None,True)
|
||||||
|
if xItem.tag == "lastViewed":
|
||||||
|
self.lastViewed = checkString(xItem.text,None,True)
|
||||||
elif xChild.tag == "content":
|
elif xChild.tag == "content":
|
||||||
logger.debug("Found project content")
|
logger.debug("Found project content")
|
||||||
for xItem in xChild:
|
for xItem in xChild:
|
||||||
@@ -267,6 +273,8 @@ class NWProject():
|
|||||||
# Save Project Settings
|
# Save Project Settings
|
||||||
xSettings = etree.SubElement(nwXML,"settings")
|
xSettings = etree.SubElement(nwXML,"settings")
|
||||||
self._saveProjectValue(xSettings,"spellCheck",self.spellCheck)
|
self._saveProjectValue(xSettings,"spellCheck",self.spellCheck)
|
||||||
|
self._saveProjectValue(xSettings,"lastEdited",self.lastEdited)
|
||||||
|
self._saveProjectValue(xSettings,"lastViewed",self.lastViewed)
|
||||||
|
|
||||||
# Save Tree Content
|
# Save Tree Content
|
||||||
logger.debug("Writing project content")
|
logger.debug("Writing project content")
|
||||||
@@ -335,10 +343,20 @@ class NWProject():
|
|||||||
self.setProjectChanged(True)
|
self.setProjectChanged(True)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def setLastEdited(self, tHandle):
|
||||||
|
self.lastEdited = tHandle
|
||||||
|
self.setProjectChanged(True)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def setLastViewed(self, tHandle):
|
||||||
|
self.lastViewed = tHandle
|
||||||
|
self.setProjectChanged(True)
|
||||||
|
return True
|
||||||
|
|
||||||
def setProjectChanged(self, bValue):
|
def setProjectChanged(self, bValue):
|
||||||
self.projChanged = bValue
|
self.projChanged = bValue
|
||||||
self.theParent.setProjectStatus(self.projChanged)
|
self.theParent.setProjectStatus(self.projChanged)
|
||||||
return
|
return self.projChanged
|
||||||
|
|
||||||
##
|
##
|
||||||
# Get Functions
|
# Get Functions
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<novelWriterXML appVersion="0.1.2" fileVersion="1.0" timeStamp="2019-05-18 13:47:34">
|
<novelWriterXML appVersion="0.1.3" fileVersion="1.0" timeStamp="2019-05-18 18:02:55">
|
||||||
<project>
|
<project>
|
||||||
<name>Sample Project</name>
|
<name>Sample Project</name>
|
||||||
<title>Sample Project</title>
|
<title>Sample Project</title>
|
||||||
@@ -8,6 +8,8 @@
|
|||||||
</project>
|
</project>
|
||||||
<settings>
|
<settings>
|
||||||
<spellCheck>False</spellCheck>
|
<spellCheck>False</spellCheck>
|
||||||
|
<lastEdited>96b68994dfa3d</lastEdited>
|
||||||
|
<lastViewed>96b68994dfa3d</lastViewed>
|
||||||
</settings>
|
</settings>
|
||||||
<content count="15">
|
<content count="15">
|
||||||
<item handle="7031beac91f75" order="0" parent="None">
|
<item handle="7031beac91f75" order="0" parent="None">
|
||||||
|
|||||||
Reference in New Issue
Block a user