Add monetary to float cellrenderer
issue10988 review380001002
This commit is contained in:
1 parent
eb31ae3634
commit
decd7a8ca1
2 files changed
+7
-3
No files matched your search
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user