Improve how the novel tree is refreshed
This commit is contained in:
@@ -90,7 +90,6 @@ class GuiDocEditor(QTextEdit):
|
||||
|
||||
self._docChanged = False # Flag for changed status of document
|
||||
self._docHandle = None # The handle of the open file
|
||||
self._docHeaders = [] # Record of headers in the file
|
||||
|
||||
self._spellCheck = False # Flag for spell checking enabled
|
||||
self._nonWord = "\"'" # Characters to not include in spell checking
|
||||
@@ -417,8 +416,8 @@ class GuiDocEditor(QTextEdit):
|
||||
self._queuePos = self._nwItem.cursorPos
|
||||
else:
|
||||
self.setCursorPosition(self._nwItem.cursorPos)
|
||||
else:
|
||||
self.setCursorLine(tLine)
|
||||
elif isinstance(tLine, int):
|
||||
self.setCursorLine(tLine - 1)
|
||||
|
||||
if self.mainConf.scrollPastEnd > 0:
|
||||
fSize = QFontMetrics(self.font()).lineSpacing()
|
||||
@@ -427,7 +426,6 @@ class GuiDocEditor(QTextEdit):
|
||||
self.document().rootFrame().setFrameFormat(docFrame)
|
||||
|
||||
self.docFooter.updateLineCount()
|
||||
self._docHeaders = self.theProject.index.getHandleHeaders(self._docHandle)
|
||||
|
||||
qApp.processEvents()
|
||||
self.document().clearUndoRedoStacks()
|
||||
@@ -533,14 +531,16 @@ class GuiDocEditor(QTextEdit):
|
||||
self.setDocumentChanged(False)
|
||||
|
||||
oldHeader = self._nwItem.mainHeading
|
||||
oldCount = self.theProject.index.getHandleHeaderCount(tHandle)
|
||||
self.theProject.index.scanText(tHandle, docText)
|
||||
newHeader = self._nwItem.mainHeading
|
||||
newCount = self.theProject.index.getHandleHeaderCount(tHandle)
|
||||
|
||||
if self._nwItem.itemClass == nwItemClass.NOVEL:
|
||||
if self._updateHeaders():
|
||||
self.novelStructureChanged.emit()
|
||||
else:
|
||||
if oldCount == newCount:
|
||||
self.novelItemMetaChanged.emit(tHandle)
|
||||
else:
|
||||
self.novelStructureChanged.emit()
|
||||
|
||||
# ToDo: This should be a signal
|
||||
if oldHeader != newHeader:
|
||||
@@ -2067,21 +2067,6 @@ class GuiDocEditor(QTextEdit):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _updateHeaders(self):
|
||||
"""Update the headers record and return True if anything
|
||||
changed, if a check flag was provided.
|
||||
"""
|
||||
if self._docHandle is None:
|
||||
return False
|
||||
|
||||
newHeaders = self.theProject.index.getHandleHeaders(self._docHandle)
|
||||
newLev = [x[1] for x in newHeaders]
|
||||
oldLev = [x[1] for x in self._docHeaders]
|
||||
|
||||
self._docHeaders = newHeaders
|
||||
|
||||
return newLev != oldLev
|
||||
|
||||
def _checkDocSize(self, theSize):
|
||||
"""Check if document size crosses the big document limit set in
|
||||
config. If so, we will set the big document flag to True.
|
||||
|
||||
Reference in New Issue
Block a user