Complete the needed GUI class changes for the new NWStatus class

This commit is contained in:
Veronica Berglyd Olsen
2022-04-05 23:13:39 +02:00
parent 40e7055f16
commit ddd8b60816
6 changed files with 135 additions and 83 deletions
+28 -16
View File
@@ -4,7 +4,8 @@ novelWriter Project Item Status Class
Data class for the status/importance settings of a project item
File History:
Created: 2019-05-19 [0.1.3]
Created: 2019-05-19 [0.1.3]
Rewritten: 2022-04-05 [1.7a0]
This file is a part of novelWriter
Copyright 20182022, Veronica Berglyd Olsen
@@ -31,7 +32,7 @@ from lxml import etree
from PyQt5.QtGui import QIcon, QPixmap, QColor
from novelwriter.common import checkInt, getMinMax, simplified
from novelwriter.common import checkInt, minmax, simplified
logger = logging.getLogger(__name__)
@@ -52,7 +53,7 @@ class NWStatus():
return
def write(self, key, name, cols):
def write(self, key, name, cols, count=None):
"""Add or update a status entry. If the key is invalid, a new
key is generated.
"""
@@ -67,7 +68,8 @@ class NWStatus():
pixmap.fill(QColor(*cols))
name = simplified(name)
count = self._store[key]["count"] if key in self._store else 0
if count is None:
count = self._store[key]["count"] if key in self._store else 0
self._store[key] = {
"name": name,
@@ -82,6 +84,20 @@ class NWStatus():
return key
def remove(self, key):
"""Remove an entry in the list, but not if the count is larger
than 0.
"""
if key not in self._store:
return False
if self._store[key]["count"] > 0:
return False
del self._reverse[self._store[key]["name"]]
del self._store[key]
return True
def check(self, value):
"""Check the key against the stored status names.
"""
@@ -134,12 +150,6 @@ class NWStatus():
else:
return self._defaultIcon
def setNewEntries(self, newList):
"""Update the list of entries after they have been modified by
the GUI tool.
"""
return {}
def resetCounts(self):
"""Clear the counts of references to the status entries.
"""
@@ -161,6 +171,7 @@ class NWStatus():
for key, data in self._store.items():
xSub = etree.SubElement(xParent, "entry", attrib={
"key": key,
"count": str(data["count"]),
"red": str(data["cols"][0]),
"green": str(data["cols"][1]),
"blue": str(data["cols"][2]),
@@ -177,12 +188,13 @@ class NWStatus():
self._default = None
for xChild in xParent:
name = xChild.text.strip()
key = xChild.attrib.get("key", None)
cR = getMinMax(checkInt(xChild.attrib.get("red", 100), 100), 0, 255)
cG = getMinMax(checkInt(xChild.attrib.get("green", 100), 100), 0, 255)
cB = getMinMax(checkInt(xChild.attrib.get("blue", 100), 100), 0, 255)
self.write(key, name, (cR, cG, cB))
key = xChild.attrib.get("key", None)
name = xChild.text.strip()
count = max(checkInt(xChild.attrib.get("count", 0), 0), 0)
red = minmax(checkInt(xChild.attrib.get("red", 100), 100), 0, 255)
green = minmax(checkInt(xChild.attrib.get("green", 100), 100), 0, 255)
blue = minmax(checkInt(xChild.attrib.get("blue", 100), 100), 0, 255)
self.write(key, name, (red, green, blue), count)
return True