Add some fixes to keep novel tree active handle up to date
This commit is contained in:
@@ -345,6 +345,7 @@ class GuiNovelTree(QTreeWidget):
|
|||||||
self._treeMap = {}
|
self._treeMap = {}
|
||||||
self._lastBuild = 0
|
self._lastBuild = 0
|
||||||
self._lastCol = NovelTreeColumn.POV
|
self._lastCol = NovelTreeColumn.POV
|
||||||
|
self._actHandle = None
|
||||||
|
|
||||||
# Cached Strings
|
# Cached Strings
|
||||||
self._povLabel = trConst(nwLabels.KEY_NAME[nwKeyWords.POV_KEY])
|
self._povLabel = trConst(nwLabels.KEY_NAME[nwKeyWords.POV_KEY])
|
||||||
@@ -509,6 +510,9 @@ class GuiNovelTree(QTreeWidget):
|
|||||||
def setActiveHandle(self, tHandle):
|
def setActiveHandle(self, tHandle):
|
||||||
"""Highlight the rows associated with a given handle.
|
"""Highlight the rows associated with a given handle.
|
||||||
"""
|
"""
|
||||||
|
tStart = time()
|
||||||
|
|
||||||
|
self._actHandle = tHandle
|
||||||
for i in range(self.topLevelItemCount()):
|
for i in range(self.topLevelItemCount()):
|
||||||
tItem = self.topLevelItem(i)
|
tItem = self.topLevelItem(i)
|
||||||
if tItem.data(self.C_TITLE, self.D_HANDLE) == tHandle:
|
if tItem.data(self.C_TITLE, self.D_HANDLE) == tHandle:
|
||||||
@@ -521,6 +525,9 @@ class GuiNovelTree(QTreeWidget):
|
|||||||
tItem.setBackground(self.C_WORDS, self.palette().base())
|
tItem.setBackground(self.C_WORDS, self.palette().base())
|
||||||
tItem.setBackground(self.C_EXTRA, self.palette().base())
|
tItem.setBackground(self.C_EXTRA, self.palette().base())
|
||||||
tItem.setBackground(self.C_MORE, self.palette().base())
|
tItem.setBackground(self.C_MORE, self.palette().base())
|
||||||
|
|
||||||
|
logger.verbose("Highlighted Novel Tree in %.3f ms", (time() - tStart)*1000)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -632,6 +639,8 @@ class GuiNovelTree(QTreeWidget):
|
|||||||
self._treeMap[tKey] = newItem
|
self._treeMap[tKey] = newItem
|
||||||
self.addTopLevelItem(newItem)
|
self.addTopLevelItem(newItem)
|
||||||
|
|
||||||
|
self.setActiveHandle(self._actHandle)
|
||||||
|
|
||||||
logger.verbose("Novel Tree built in %.3f ms", (time() - tStart)*1000)
|
logger.verbose("Novel Tree built in %.3f ms", (time() - tStart)*1000)
|
||||||
self._lastBuild = time()
|
self._lastBuild = time()
|
||||||
|
|
||||||
|
|||||||
@@ -558,7 +558,7 @@ class GuiMain(QMainWindow):
|
|||||||
# Document Actions
|
# Document Actions
|
||||||
##
|
##
|
||||||
|
|
||||||
def closeDocument(self):
|
def closeDocument(self, beforeOpen=False):
|
||||||
"""Close the document and clear the editor and title field.
|
"""Close the document and clear the editor and title field.
|
||||||
"""
|
"""
|
||||||
if not self.hasProject:
|
if not self.hasProject:
|
||||||
@@ -573,7 +573,8 @@ class GuiMain(QMainWindow):
|
|||||||
if self.docEditor.docChanged():
|
if self.docEditor.docChanged():
|
||||||
self.saveDocument()
|
self.saveDocument()
|
||||||
self.docEditor.clearEditor()
|
self.docEditor.clearEditor()
|
||||||
self.novelView.setActiveHandle(None)
|
if not beforeOpen:
|
||||||
|
self.novelView.setActiveHandle(None)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -588,7 +589,7 @@ class GuiMain(QMainWindow):
|
|||||||
logger.debug("Requested item '%s' is not a document", tHandle)
|
logger.debug("Requested item '%s' is not a document", tHandle)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self.closeDocument()
|
self.closeDocument(beforeOpen=True)
|
||||||
self._changeView(nwView.EDITOR)
|
self._changeView(nwView.EDITOR)
|
||||||
if self.docEditor.loadText(tHandle, tLine):
|
if self.docEditor.loadText(tHandle, tLine):
|
||||||
if changeFocus:
|
if changeFocus:
|
||||||
|
|||||||
Reference in New Issue
Block a user