Refresh model when document heading count changes
This commit is contained in:
@@ -115,7 +115,6 @@ class GuiDocEditor(QPlainTextEdit):
|
||||
editedStatusChanged = pyqtSignal(bool)
|
||||
itemHandleChanged = pyqtSignal(str)
|
||||
loadDocumentTagRequest = pyqtSignal(str, Enum)
|
||||
novelItemMetaChanged = pyqtSignal(str)
|
||||
novelStructureChanged = pyqtSignal()
|
||||
openDocumentRequest = pyqtSignal(str, Enum, str, bool)
|
||||
requestNewNoteCreation = pyqtSignal(str, nwItemClass)
|
||||
@@ -498,18 +497,8 @@ class GuiDocEditor(QPlainTextEdit):
|
||||
|
||||
self.setDocumentChanged(False)
|
||||
self.docTextChanged.emit(self._docHandle, self._lastEdit)
|
||||
|
||||
oldCount = SHARED.project.index.getHandleHeaderCount(tHandle)
|
||||
SHARED.project.index.scanText(tHandle, text)
|
||||
newCount = SHARED.project.index.getHandleHeaderCount(tHandle)
|
||||
|
||||
if self._nwItem.itemClass == nwItemClass.NOVEL:
|
||||
if oldCount == newCount:
|
||||
self.novelItemMetaChanged.emit(tHandle)
|
||||
else:
|
||||
self.novelStructureChanged.emit()
|
||||
|
||||
# Update the status bar
|
||||
self.updateStatusMessage.emit(self.tr("Saved Document: {0}").format(self._nwItem.itemName))
|
||||
|
||||
return True
|
||||
|
||||
@@ -96,7 +96,6 @@ class GuiNovelView(QWidget):
|
||||
def updateTheme(self) -> None:
|
||||
"""Update theme elements."""
|
||||
self.novelBar.updateTheme()
|
||||
self.refreshTree()
|
||||
return
|
||||
|
||||
def initSettings(self) -> None:
|
||||
@@ -174,12 +173,6 @@ class GuiNovelView(QWidget):
|
||||
self.novelTree.setActiveHandle(tHandle)
|
||||
return
|
||||
|
||||
@pyqtSlot()
|
||||
def refreshTree(self) -> None:
|
||||
"""Refresh the current tree."""
|
||||
# self.novelTree.refreshTree(rootHandle=SHARED.project.data.getLastHandle("novelTree"))
|
||||
return
|
||||
|
||||
@pyqtSlot(str, Enum)
|
||||
def updateRootItem(self, tHandle: str, change: nwChange) -> None:
|
||||
"""If any root item changes, rebuild the novel root menu."""
|
||||
@@ -296,6 +289,8 @@ class GuiNovelToolBar(QWidget):
|
||||
self.novelValue.refreshNovelList()
|
||||
self.tbNovel.setVisible(self.novelValue.count() > 1)
|
||||
|
||||
self._forceRefreshNovelTree()
|
||||
|
||||
return
|
||||
|
||||
def clearContent(self) -> None:
|
||||
@@ -328,7 +323,7 @@ class GuiNovelToolBar(QWidget):
|
||||
refresh when content structure changes.
|
||||
"""
|
||||
self._active = state
|
||||
if self._active:
|
||||
if self._active and self._refresh.get(self.novelValue.handle, False):
|
||||
self._refreshNovelTree(self.novelValue.handle)
|
||||
return
|
||||
|
||||
@@ -339,21 +334,19 @@ class GuiNovelToolBar(QWidget):
|
||||
@pyqtSlot()
|
||||
def _forceRefreshNovelTree(self) -> None:
|
||||
"""Rebuild the current tree."""
|
||||
self._refresh[self.novelValue.handle] = True
|
||||
self._refreshNovelTree(self.novelValue.handle)
|
||||
if tHandle := self.novelValue.handle:
|
||||
SHARED.project.index.refreshNovelModel(tHandle)
|
||||
self._refresh[tHandle] = False
|
||||
return
|
||||
|
||||
@pyqtSlot(str)
|
||||
def _refreshNovelTree(self, tHandle: str) -> None:
|
||||
"""Refresh or schedule refresh of a novel tree."""
|
||||
if tHandle:
|
||||
if self._active:
|
||||
if self._refresh.get(tHandle, False):
|
||||
SHARED.project.index.refreshNovelModel(tHandle)
|
||||
self._refresh[tHandle] = False
|
||||
else:
|
||||
self._refresh[tHandle] = True
|
||||
print(self._refresh)
|
||||
if self._active:
|
||||
SHARED.project.index.refreshNovelModel(tHandle)
|
||||
self._refresh[tHandle] = False
|
||||
else:
|
||||
self._refresh[tHandle] = True
|
||||
return
|
||||
|
||||
@pyqtSlot()
|
||||
|
||||
@@ -694,7 +694,7 @@ class GuiIcons:
|
||||
else:
|
||||
icon = self._loadIcon(name, color, w, h)
|
||||
self._qIcons[key] = icon
|
||||
logger.info("Icon: %s", key)
|
||||
logger.debug("Icon: %s", key)
|
||||
return icon
|
||||
|
||||
def getToggleIcon(self, name: str, size: tuple[int, int], color: str | None = None) -> QIcon:
|
||||
|
||||
Reference in New Issue
Block a user