Add monetary to float cellrenderer

issue10988
review380001002
This commit is contained in:
Cédric Krier committed 2022-01-11 23:01:26 +01:00
1 parent eb31ae3634
commit decd7a8ca1
2 files changed
+7 -3

No files matched your search

+6 -3
View File
@@ -12,6 +12,8 @@ class CellRendererFloat(CellRendererInteger):
def __init__(self):
super(CellRendererFloat, self).__init__()
self.digits = None
self.monetary = False
self.convert = float
def on_editing_started(self, editable, path):
super().on_editing_started(editable, path)
@@ -43,11 +45,12 @@ class CellRendererFloat(CellRendererInteger):
new_value = value[:position] + new_text + value[position:]
if new_value not in {'-', self.__decimal_point, self.__thousands_sep}:
try:
value = locale.atof(new_value)
value = self.convert(
locale.delocalize(new_value, self.monetary))
except ValueError:
return False
if (self.digits
and not (round(value, self.digits[1]) == float(value))):
if (value and self.digits is not None
and round(value, self.digits[1]) != value):
return False
return True
@@ -506,6 +506,7 @@ class Float(Int):
if renderer is None:
renderer = CellRendererFloat
super(Float, self).__init__(view, attrs, renderer=renderer)
self.renderer.monetary = attrs.get('monetary', False)
@realized
def setter(self, column, cell, store, iter_, user_data=None):