diff --git a/novelwriter/core/item.py b/novelwriter/core/item.py index 88650475..95418079 100644 --- a/novelwriter/core/item.py +++ b/novelwriter/core/item.py @@ -292,6 +292,22 @@ class NWItem(): return trConst(nwLabels.ITEM_DESCRIPTION.get(descKey, "")) + def getImportStatus(self): + """Return the relevant importance or status label and icon for + the current item based on its class. + """ + if self.isNovelLike(): + stName = self.theProject.statusItems.name(self._status) + stIcon = self.theProject.statusItems.icon(self._status) + else: + stName = self.theProject.importItems.name(self._import) + stIcon = self.theProject.importItems.icon(self._import) + return stName, stIcon + + ## + # Checker Methods + ## + def isNovelLike(self): """Returns true if the item is of a novel-like class. """ @@ -307,17 +323,20 @@ class NWItem(): """ return self._class in (nwItemClass.NO_CLASS, nwItemClass.ARCHIVE, nwItemClass.TRASH) - def getImportStatus(self): - """Return the relevant importance or status label and icon for - the current item based on its class. - """ - if self.isNovelLike(): - stName = self.theProject.statusItems.name(self._status) - stIcon = self.theProject.statusItems.icon(self._status) - else: - stName = self.theProject.importItems.name(self._import) - stIcon = self.theProject.importItems.icon(self._import) - return stName, stIcon + def isRootType(self): + return self._type == nwItemType.ROOT + + def isFolderType(self): + return self._type == nwItemType.FOLDER + + def isFileType(self): + return self._type == nwItemType.FILE + + def isNoteLayout(self): + return self._layout == nwItemLayout.NOTE + + def isDocumentLayout(self): + return self._layout == nwItemLayout.DOCUMENT ## # Special Setters diff --git a/tests/test_core/test_core_item.py b/tests/test_core/test_core_item.py index fbc0ded3..e2fa75e0 100644 --- a/tests/test_core/test_core_item.py +++ b/tests/test_core/test_core_item.py @@ -203,12 +203,16 @@ def testCoreItem_Methods(mockGUI): theItem.setType("ROOT") assert theItem.describeMe() == "Root Folder" + assert theItem.isRootType() is True theItem.setType("FOLDER") assert theItem.describeMe() == "Folder" + assert theItem.isFolderType() is True theItem.setType("FILE") theItem.setLayout("DOCUMENT") + assert theItem.isFileType() is True + assert theItem.isDocumentLayout() is True assert theItem.describeMe() == "Novel Document" assert theItem.describeMe("H0") == "Novel Document" assert theItem.describeMe("H1") == "Novel Title Page" @@ -217,6 +221,7 @@ def testCoreItem_Methods(mockGUI): assert theItem.describeMe("H4") == "Novel Document" theItem.setLayout("NOTE") + assert theItem.isNoteLayout() is True assert theItem.describeMe() == "Project Note" # Status + Icon