parent
65f407e926
commit
1f12b4c1c1
@ -694,30 +694,17 @@ class CssColor(BaseType):
|
||||
|
||||
class QssColor(CssColor):
|
||||
|
||||
"""Base class for a color value.
|
||||
|
||||
Class attributes:
|
||||
color_func_regexes: Valid function regexes.
|
||||
"""
|
||||
|
||||
num = r'[0-9]{1,3}%?'
|
||||
|
||||
color_func_regexes = [
|
||||
r'rgb\({num},\s*{num},\s*{num}\)'.format(num=num),
|
||||
r'rgba\({num},\s*{num},\s*{num},\s*{num}\)'.format(num=num),
|
||||
r'hsv\({num},\s*{num},\s*{num}\)'.format(num=num),
|
||||
r'hsva\({num},\s*{num},\s*{num},\s*{num}\)'.format(num=num),
|
||||
r'qlineargradient\(.*\)',
|
||||
r'qradialgradient\(.*\)',
|
||||
r'qconicalgradient\(.*\)',
|
||||
]
|
||||
"""Color used in a Qt stylesheet."""
|
||||
|
||||
def validate(self, value):
|
||||
functions = ['rgb', 'rgba', 'hsv', 'hsva', 'qlineargradient',
|
||||
'qradialgradient', 'qconicalgradient']
|
||||
self._basic_validation(value)
|
||||
if not value:
|
||||
return
|
||||
elif any(re.match(r, value) for r in self.color_func_regexes):
|
||||
# QColor doesn't handle these, so we do the best we can easily
|
||||
elif (any(value.startswith(func + '(') for func in functions) and
|
||||
value.endswith(')')):
|
||||
# QColor doesn't handle these
|
||||
pass
|
||||
elif QColor.isValidColor(value):
|
||||
pass
|
||||
|
@ -879,19 +879,16 @@ class ColorTests:
|
||||
('#12', []),
|
||||
('foobar', []),
|
||||
('42', []),
|
||||
('rgb(1, 2, 3, 4)', []),
|
||||
('foo(1, 2, 3)', []),
|
||||
('rgb(1, 2, 3', []),
|
||||
|
||||
('rgb(0, 0, 0)', [configtypes.QssColor]),
|
||||
('rgb(0,0,0)', [configtypes.QssColor]),
|
||||
('-foobar(42)', [configtypes.CssColor]),
|
||||
|
||||
('rgba(255, 255, 255, 255)', [configtypes.QssColor]),
|
||||
('rgba(255,255,255,255)', [configtypes.QssColor]),
|
||||
('hsv(359, 255, 255)', [configtypes.QssColor]),
|
||||
('hsva(359, 255, 255, 255)', [configtypes.QssColor]),
|
||||
('hsv(10%, 10%, 10%)', [configtypes.QssColor]),
|
||||
('rgba(255, 255, 255, 1.0)', [configtypes.QssColor]),
|
||||
('hsv(10%,10%,10%)', [configtypes.QssColor]),
|
||||
|
||||
('qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 white, '
|
||||
'stop: 0.4 gray, stop:1 green)', [configtypes.QssColor]),
|
||||
('qconicalgradient(cx:0.5, cy:0.5, angle:30, stop:0 white, '
|
||||
|
Loading…
Reference in New Issue
Block a user