aboutsummaryrefslogtreecommitdiff
path: root/src/gui/tags/form/state.py
diff options
context:
space:
mode:
authorJoris2020-05-10 20:24:24 +0200
committerJoris2020-05-10 20:24:24 +0200
commit8a6e10d401eea8db0947f8c4b309b8a6256f9748 (patch)
tree6e2dc6956ce7825f0f1b6c3ed6f0b4171fe9c274 /src/gui/tags/form/state.py
parent3e1415c738facb8b0274adb50ae65f218fd59c9b (diff)
downloadtodo-8a6e10d401eea8db0947f8c4b309b8a6256f9748.tar.gz
todo-8a6e10d401eea8db0947f8c4b309b8a6256f9748.tar.bz2
todo-8a6e10d401eea8db0947f8c4b309b8a6256f9748.zip
Add tags panel
Diffstat (limited to 'src/gui/tags/form/state.py')
-rw-r--r--src/gui/tags/form/state.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/gui/tags/form/state.py b/src/gui/tags/form/state.py
new file mode 100644
index 0000000..931e67a
--- /dev/null
+++ b/src/gui/tags/form/state.py
@@ -0,0 +1,58 @@
+from PyQt5 import QtCore
+from typing import Optional
+
+from model.tag import ValidTagForm
+
+class TagFormEdition:
+ def __init__(
+ self,
+ name,
+ name_signal,
+ color,
+ color_signal):
+
+ self._name = name
+ self._color = color
+ self._signal = ValidTagFormSignal()
+
+ name_signal.connect(lambda n: self.on_name_signal(n))
+ color_signal.connect(lambda d: self.on_color_signal(d))
+
+ def get(self) -> Optional[ValidTagForm]:
+ name = self._name.strip()
+ color = self._color.strip()
+
+ if name and color:
+ return ValidTagForm(
+ name = name,
+ color = color)
+ else:
+ return None
+
+ def on_name_signal(self, name: str):
+ self._name = name
+ self.emit()
+
+ def on_color_signal(self, color: str):
+ self._color = color
+ self.emit()
+
+ def emit(self):
+ validForm = self.get()
+ if validForm:
+ self._signal.emit(validForm)
+
+ def signal(self):
+ return self._signal
+
+class ValidTagFormSignal(QtCore.QObject):
+ _signal = QtCore.pyqtSignal(ValidTagForm, name = 'validTagForm')
+
+ def __init__(self):
+ QtCore.QObject.__init__(self)
+
+ def emit(self, form: Optional[ValidTagForm]):
+ self._signal.emit(form)
+
+ def connect(self, f):
+ self._signal.connect(f)