Merge release 2.7.1 into 2.8a0
This commit is contained in:
+16
-10
@@ -131,12 +131,6 @@ class Index:
|
||||
self._novelExtra = extra
|
||||
return
|
||||
|
||||
def setItemClass(self, tHandle: str, itemClass: nwItemClass) -> None:
|
||||
"""Update the class for all tags of a handle."""
|
||||
logger.info("Updating class for '%s'", tHandle)
|
||||
self._tagsIndex.updateClass(tHandle, itemClass.name)
|
||||
return
|
||||
|
||||
##
|
||||
# Public Methods
|
||||
##
|
||||
@@ -183,6 +177,16 @@ class Index:
|
||||
self.scanText(tHandle, self._project.storage.getDocumentText(tHandle))
|
||||
return
|
||||
|
||||
def refreshHandle(self, tHandle: str) -> None:
|
||||
"""Update the class for all tags of a handle."""
|
||||
if item := self._project.tree[tHandle]:
|
||||
logger.info("Updating class for '%s'", tHandle)
|
||||
if item.isInactiveClass():
|
||||
self.deleteHandle(tHandle)
|
||||
else:
|
||||
self._tagsIndex.updateClass(tHandle, item.itemClass.name)
|
||||
return
|
||||
|
||||
def indexChangedSince(self, checkTime: int | float) -> bool:
|
||||
"""Check if the index has changed since a given time."""
|
||||
return self._indexChange > float(checkTime)
|
||||
@@ -753,10 +757,12 @@ class Index:
|
||||
"""Return all tags used by a specific document."""
|
||||
return self._itemIndex.allItemTags(tHandle) if tHandle else []
|
||||
|
||||
def getClassTags(self, itemClass: nwItemClass | None) -> list[str]:
|
||||
"""Return all tags based on itemClass."""
|
||||
name = None if itemClass is None else itemClass.name
|
||||
return self._tagsIndex.filterTagNames(name)
|
||||
def getKeyWordTags(self, keyWord: str) -> list[str]:
|
||||
"""Return all tags usable for a specific keyword."""
|
||||
if keyWord in nwKeyWords.CAN_LOOKUP:
|
||||
itemClass = nwKeyWords.KEY_CLASS.get(keyWord)
|
||||
return self._tagsIndex.filterTagNames(itemClass.name if itemClass else None)
|
||||
return []
|
||||
|
||||
def getTagsData(
|
||||
self, activeOnly: bool = True
|
||||
|
||||
@@ -439,7 +439,7 @@ class NWItem:
|
||||
self.setClass(itemClass)
|
||||
if self._type == nwItemType.FILE:
|
||||
# Notify the index of the class change
|
||||
self._project.index.setItemClass(self._handle, itemClass)
|
||||
self._project.index.refreshHandle(self._handle)
|
||||
|
||||
if self._layout == nwItemLayout.NO_LAYOUT:
|
||||
# If no layout is set, pick one
|
||||
|
||||
Reference in New Issue
Block a user