From 53b97e83998bf1b3557625efef371ad546e9998d Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" Date: Sun, 12 May 2019 21:54:21 +0200 Subject: [PATCH] Importance colours added to the GUI --- nw/gui/docdetails.py | 14 +++++++++++--- nw/gui/doctree.py | 18 +++++++++++++----- nw/gui/itemeditor.py | 14 ++++++++++---- nw/gui/winmain.py | 14 ++++++++++++++ nw/project/project.py | 9 ++++++++- 5 files changed, 56 insertions(+), 13 deletions(-) diff --git a/nw/gui/docdetails.py b/nw/gui/docdetails.py index c8b6a078..1552640a 100644 --- a/nw/gui/docdetails.py +++ b/nw/gui/docdetails.py @@ -71,11 +71,19 @@ class GuiDocDetails(QFrame): colTwo = [""]*4 else: itemStatus = nwItem.itemStatus - if itemStatus < 0 or itemStatus >= len(self.theParent.statusLabels): - itemStatus = 0 + if nwItem.itemClass == nwItemClass.NOVEL: + if itemStatus < 0 or itemStatus >= len(self.theParent.statusLabels): + statusLabel = self.theParent.statusLabels[0] + else: + statusLabel = self.theParent.statusLabels[itemStatus] + else: + if itemStatus < 0 or itemStatus >= len(self.theParent.importLabels): + statusLabel = self.theParent.importLabels[0] + else: + statusLabel = self.theParent.importLabels[itemStatus] colTwo = [ nwItem.itemName, - self.theParent.statusLabels[itemStatus], + statusLabel, nwLabels.CLASS_NAME[nwItem.itemClass], nwLabels.LAYOUT_NAME[nwItem.itemLayout], ] diff --git a/nw/gui/doctree.py b/nw/gui/doctree.py index 0893ad07..ef80d98a 100644 --- a/nw/gui/doctree.py +++ b/nw/gui/doctree.py @@ -19,9 +19,8 @@ from PyQt5.QtGui import QIcon, QFont, QColor from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView, QInputDialog, QLineEdit, QApplication from nw.project.item import NWItem -from nw.enum import nwItemType, nwItemClass +from nw.enum import nwItemType, nwItemClass, nwAlert from nw.constants import nwLabels -from nw.enum import nwAlert logger = logging.getLogger(__name__) @@ -256,6 +255,7 @@ class GuiDocTree(QTreeWidget): trItem = self._getTreeItem(tHandle) nwItem = self.theProject.getItem(tHandle) tName = nwItem.itemName + tClass = nwItem.itemClass tHandle = nwItem.itemHandle pHandle = nwItem.parHandle @@ -263,12 +263,20 @@ class GuiDocTree(QTreeWidget): if nwItem.itemType == nwItemType.FILE: tStatus += "."+nwLabels.LAYOUT_FLAG[nwItem.itemLayout] nStatus = nwItem.itemStatus - if nStatus < 0 or nStatus >= len(self.theParent.statusIcons): - nStatus = 0 + if tClass == nwItemClass.NOVEL: + if nStatus < 0 or nStatus >= len(self.theParent.statusIcons): + flagIcon = self.theParent.statusIcons[0] + else: + flagIcon = self.theParent.statusIcons[nStatus] + else: + if nStatus < 0 or nStatus >= len(self.theParent.importIcons): + flagIcon = self.theParent.importIcons[0] + else: + flagIcon = self.theParent.importIcons[nStatus] trItem.setText(self.C_NAME,tName) trItem.setText(self.C_FLAGS,tStatus) - trItem.setIcon(self.C_FLAGS,self.theParent.statusIcons[nStatus]) + trItem.setIcon(self.C_FLAGS,flagIcon) return diff --git a/nw/gui/itemeditor.py b/nw/gui/itemeditor.py index 5ebbcfe1..3cc48140 100644 --- a/nw/gui/itemeditor.py +++ b/nw/gui/itemeditor.py @@ -54,10 +54,16 @@ class GuiItemEditor(QDialog): self.editStatus = QComboBox() self.editLayout = QComboBox() - for n in range(len(self.theParent.statusLabels)): - self.editStatus.addItem( - self.theParent.statusIcons[n], self.theParent.statusLabels[n], n - ) + if self.theItem.itemClass == nwItemClass.NOVEL: + for n in range(len(self.theParent.statusLabels)): + self.editStatus.addItem( + self.theParent.statusIcons[n], self.theParent.statusLabels[n], n + ) + else: + for n in range(len(self.theParent.statusLabels)): + self.editStatus.addItem( + self.theParent.importIcons[n], self.theParent.importLabels[n], n + ) self.validLayouts = [] if self.theItem.itemType == nwItemType.FILE: diff --git a/nw/gui/winmain.py b/nw/gui/winmain.py index 1fbdd5ab..8b1b3357 100644 --- a/nw/gui/winmain.py +++ b/nw/gui/winmain.py @@ -60,6 +60,8 @@ class GuiMain(QMainWindow): # Minor Gui Elements self.statusIcons = [] self.statusLabels = [] + self.importIcons = [] + self.importLabels = [] # Assemble Main Window self.stackPane = QStackedWidget() @@ -87,6 +89,7 @@ class GuiMain(QMainWindow): self.treeView.itemDoubleClicked.connect(self._treeDoubleClick) self.treeView.buildTree() self._makeStatusIcons() + self._makeImportIcons() # Set Main Window Elements self.setMenuBar(self.mainMenu) @@ -179,6 +182,7 @@ class GuiMain(QMainWindow): self.treeView.buildTree() self._setWindowTitle(self.theProject.projName) self._makeStatusIcons() + self._makeImportIcons() self.docEditor.setPwl(path.join(self.theProject.projMeta,"wordlist.txt")) self.docEditor.setSpellCheck(self.theProject.spellCheck) self.mainMenu.updateMenu() @@ -370,6 +374,16 @@ class GuiMain(QMainWindow): self.statusLabels.append(sLabel) return + def _makeImportIcons(self): + self.importIcons = [] + self.importLabels = [] + for sLabel, sR, sG, sB in self.theProject.importCols: + theIcon = QPixmap(32,32) + theIcon.fill(QColor(sR,sG,sB)) + self.importIcons.append(QIcon(theIcon)) + self.importLabels.append(sLabel) + return + ## # Events ## diff --git a/nw/project/project.py b/nw/project/project.py index 1c193b95..14a964c2 100644 --- a/nw/project/project.py +++ b/nw/project/project.py @@ -46,7 +46,6 @@ class NWProject(): self.projMeta = None self.projCache = None self.projFile = None - self.statusCols = None # Project Meta self.projName = None @@ -55,6 +54,8 @@ class NWProject(): # Project Settings self.spellCheck = False + self.statusCols = None + self.importCols = None # Set Defaults self.clearProject() @@ -147,6 +148,12 @@ class NWProject(): ("Draft", 200,150, 0), ("Finished", 50,200, 0), ] + self.importCols = [ + ("None", 100,100,100), + ("Minor", 200, 45, 60), + ("Major", 160, 67,130), + ("Main", 120, 90,200), + ] return