diff --git a/novelwriter/core/index.py b/novelwriter/core/index.py index 7ea713b6..e9491027 100644 --- a/novelwriter/core/index.py +++ b/novelwriter/core/index.py @@ -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: diff --git a/tests/test_core/test_core_index.py b/tests/test_core/test_core_index.py index 8f126e56..14aaa9be 100644 --- a/tests/test_core/test_core_index.py +++ b/tests/test_core/test_core_index.py @@ -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),