Add progress bar functions in shared class and use it for index rebuild

This commit is contained in:
Veronica Berglyd Olsen
2025-07-17 16:56:28 +02:00
parent eb659a64bb
commit d027f218f8
2 changed files with 13 additions and 4 deletions
+3
View File
@@ -147,14 +147,17 @@ class Index:
def rebuild(self) -> None:
"""Rebuild the entire index from scratch."""
self.clear()
SHARED.initMainProgress(len(self._project.tree) - 1)
for nwItem in self._project.tree:
if nwItem.isFileType():
text = self._project.storage.getDocumentText(nwItem.itemHandle)
self.scanText(nwItem.itemHandle, text, blockSignal=True)
SHARED.incMainProgress()
self._indexBroken = False
SHARED.emitIndexAvailable(self._project)
for tHandle in self._novelModels:
self.refreshNovelModel(tHandle)
SHARED.clearMainProgress()
return
def deleteHandle(self, tHandle: str) -> None:
+10 -4
View File
@@ -269,10 +269,11 @@ class SharedData(QObject):
self._idleRefTime = currTime
return
def startMainProgress(self, maximum: int) -> None:
def initMainProgress(self, maximum: int) -> None:
"""Start a session for the main progress bar."""
if gui := self._gui:
gui.mainProgress.setMaximum(maximum)
gui.mainProgress.setValue(0)
return
def updateMainProgress(self, value: int) -> None:
@@ -281,11 +282,16 @@ class SharedData(QObject):
gui.mainProgress.setValue(value)
return
def clearMainProgress(self) -> None:
def incMainProgress(self) -> None:
"""Increment the value for the main progress bar."""
if gui := self._gui:
gui.mainProgress.setValue(gui.mainProgress.value() + 1)
return
def clearMainProgress(self, delay: float = 1.0) -> None:
"""Clear the main progress bar."""
if gui := self._gui:
gui.mainProgress.setMaximum(100)
gui.mainProgress.setValue(0)
QTimer.singleShot(int(delay*1000), gui.mainProgress.reset)
return
def newStatusMessage(self, message: str) -> None: