Refresh novel view on count method change

This commit is contained in:
Veronica Berglyd Olsen
2025-04-29 23:45:05 +02:00
parent 53e60c7b59
commit 6d2e9d8a04
4 changed files with 15 additions and 7 deletions
+10 -5
View File
@@ -80,6 +80,7 @@ class GuiNovelView(QWidget):
# Function Mappings # Function Mappings
self.setActive = self.novelBar.setActive self.setActive = self.novelBar.setActive
self.getSelectedHandle = self.novelTree.getSelectedHandle self.getSelectedHandle = self.novelTree.getSelectedHandle
self.refreshCurrentTree = self.novelBar.forceRefreshNovelTree
return return
@@ -209,7 +210,7 @@ class GuiNovelToolBar(QWidget):
# Refresh Button # Refresh Button
self.tbRefresh = NIconToolButton(self, iSz) self.tbRefresh = NIconToolButton(self, iSz)
self.tbRefresh.setToolTip(self.tr("Refresh")) self.tbRefresh.setToolTip(self.tr("Refresh"))
self.tbRefresh.clicked.connect(self._forceRefreshNovelTree) self.tbRefresh.clicked.connect(self.forceRefreshNovelTree)
# More Options Menu # More Options Menu
self.mMore = QMenu(self) self.mMore = QMenu(self)
@@ -274,7 +275,7 @@ class GuiNovelToolBar(QWidget):
self.novelValue.updateTheme() self.novelValue.updateTheme()
self.tbNovel.setVisible(self.novelValue.count() > 1) self.tbNovel.setVisible(self.novelValue.count() > 1)
self._forceRefreshNovelTree() self.forceRefreshNovelTree()
return return
@@ -305,7 +306,7 @@ class GuiNovelToolBar(QWidget):
self.aLastCol[colType].setChecked(True) self.aLastCol[colType].setChecked(True)
self.novelView.novelTree.setLastColType(colType) self.novelView.novelTree.setLastColType(colType)
if doRefresh: if doRefresh:
self._forceRefreshNovelTree() self.forceRefreshNovelTree()
self.novelView.novelTree.resizeColumns() self.novelView.novelTree.resizeColumns()
return return
@@ -323,11 +324,11 @@ class GuiNovelToolBar(QWidget):
return return
## ##
# Private Slots # Public Slots
## ##
@pyqtSlot() @pyqtSlot()
def _forceRefreshNovelTree(self) -> None: def forceRefreshNovelTree(self) -> None:
"""Rebuild the current tree.""" """Rebuild the current tree."""
if tHandle := self.novelValue.handle: if tHandle := self.novelValue.handle:
self.novelView.setCurrentNovel(tHandle) self.novelView.setCurrentNovel(tHandle)
@@ -335,6 +336,10 @@ class GuiNovelToolBar(QWidget):
self._refresh[tHandle] = False self._refresh[tHandle] = False
return return
##
# Private Slots
##
@pyqtSlot(str) @pyqtSlot(str)
def _refreshNovelTree(self, tHandle: str) -> None: def _refreshNovelTree(self, tHandle: str) -> None:
"""Refresh or schedule refresh of a novel tree.""" """Refresh or schedule refresh of a novel tree."""
+3 -1
View File
@@ -1048,8 +1048,10 @@ class GuiMain(QMainWindow):
self.initMain() self.initMain()
self.saveDocument() self.saveDocument()
if tree: if tree and not theme:
# These are also updated by a theme refresh
SHARED.project.tree.refreshAllItems() SHARED.project.tree.refreshAllItems()
self.novelView.refreshCurrentTree()
if theme: if theme:
SHARED.theme.loadTheme() SHARED.theme.loadTheme()
+1
View File
@@ -184,6 +184,7 @@ def testGuiMain_UpdateTheme(qtbot, nwGUI):
CONFIG.guiSyntax = "default_dark" CONFIG.guiSyntax = "default_dark"
mainTheme.loadTheme() mainTheme.loadTheme()
mainTheme.loadSyntax() mainTheme.loadSyntax()
nwGUI._processConfigChanges(False, True, False, False)
nwGUI._processConfigChanges(True, True, True, True) nwGUI._processConfigChanges(True, True, True, True)
syntax = SHARED.theme.syntaxTheme syntax = SHARED.theme.syntaxTheme
+1 -1
View File
@@ -93,7 +93,7 @@ def testGuiNovelView_Content(qtbot, monkeypatch, nwGUI, projPath, mockRnd):
assert novelTree._getModel() is None assert novelTree._getModel() is None
# Reload # Reload
novelBar._forceRefreshNovelTree() novelView.refreshCurrentTree()
model = novelTree._getModel() model = novelTree._getModel()
assert isinstance(model, NovelModel) assert isinstance(model, NovelModel)