Update the index to generate a ToC for a specific root folder
This commit is contained in:
@@ -498,13 +498,15 @@ class NWIndex:
|
||||
"""
|
||||
return self._itemIndex.mainItemHeader(tHandle)
|
||||
|
||||
def getTableOfContents(self, maxDepth, skipExcl=True):
|
||||
def getTableOfContents(self, rootHandle, maxDepth, skipExcl=True):
|
||||
"""Generate a table of contents up to a maximum depth.
|
||||
"""
|
||||
tOrder = []
|
||||
tData = {}
|
||||
pKey = None
|
||||
for tHandle, sTitle, hItem in self._itemIndex.iterNovelStructure(skipExcl=skipExcl):
|
||||
for tHandle, sTitle, hItem in self._itemIndex.iterNovelStructure(
|
||||
rootHandle=rootHandle, skipExcl=skipExcl
|
||||
):
|
||||
tKey = f"{tHandle}:{sTitle}"
|
||||
iLevel = nwHeaders.H_LEVEL.get(hItem.level, 0)
|
||||
if iLevel > maxDepth:
|
||||
|
||||
@@ -709,16 +709,16 @@ def testCoreIndex_ExtractData(mockGUI, fncDir, mockRnd):
|
||||
assert theIndex.getNovelTitleCounts(skipExcl=True) == [0, 1, 2, 3, 0]
|
||||
|
||||
# Table of Contents
|
||||
assert theIndex.getTableOfContents(0, skipExcl=True) == []
|
||||
assert theIndex.getTableOfContents(1, skipExcl=True) == [
|
||||
assert theIndex.getTableOfContents("0000000000010", 0, skipExcl=True) == []
|
||||
assert theIndex.getTableOfContents("0000000000010", 1, skipExcl=True) == [
|
||||
("0000000000014:T000001", 1, "New Novel", 15),
|
||||
]
|
||||
assert theIndex.getTableOfContents(2, skipExcl=True) == [
|
||||
assert theIndex.getTableOfContents("0000000000010", 2, skipExcl=True) == [
|
||||
("0000000000014:T000001", 1, "New Novel", 5),
|
||||
("0000000000016:T000001", 2, "New Chapter", 4),
|
||||
("%s:T000001" % hHandle, 2, "Chapter One", 6),
|
||||
]
|
||||
assert theIndex.getTableOfContents(3, skipExcl=True) == [
|
||||
assert theIndex.getTableOfContents("0000000000010", 3, skipExcl=True) == [
|
||||
("0000000000014:T000001", 1, "New Novel", 5),
|
||||
("0000000000016:T000001", 2, "New Chapter", 2),
|
||||
("0000000000017:T000001", 3, "New Scene", 2),
|
||||
@@ -727,8 +727,8 @@ def testCoreIndex_ExtractData(mockGUI, fncDir, mockRnd):
|
||||
("%s:T000001" % tHandle, 3, "Scene Two", 2),
|
||||
]
|
||||
|
||||
assert theIndex.getTableOfContents(0, skipExcl=False) == []
|
||||
assert theIndex.getTableOfContents(1, skipExcl=False) == [
|
||||
assert theIndex.getTableOfContents("0000000000010", 0, skipExcl=False) == []
|
||||
assert theIndex.getTableOfContents("0000000000010", 1, skipExcl=False) == [
|
||||
("0000000000014:T000001", 1, "New Novel", 9),
|
||||
("%s:T000001" % nHandle, 1, "Hello World!", 12),
|
||||
("%s:T000011" % nHandle, 1, "Hello World!", 22),
|
||||
|
||||
Reference in New Issue
Block a user