blob: 931e67aac9e3766bacc2f878efbb71af5166a6ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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)
|