00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 from Koo.Fields.AbstractFieldWidget import *
00030 from Koo.Fields.AbstractFieldDelegate import *
00031 from Koo.Common.Numeric import *
00032 from PyQt4.QtGui import *
00033 from PyQt4.QtCore import *
00034
00035 class IntegerFieldWidget(AbstractFieldWidget):
00036 def __init__(self, parent, model, attrs={}):
00037 AbstractFieldWidget.__init__(self, parent, model, attrs)
00038 self.widget = QLineEdit( self )
00039 layout = QHBoxLayout( self )
00040 layout.setContentsMargins( 0, 0, 0, 0 )
00041 layout.addWidget( self.widget )
00042 self.connect( self.widget, SIGNAL('editingFinished()'), self.calculate )
00043 self.installPopupMenu( self.widget )
00044
00045 def calculate(self):
00046 val = textToInteger( unicode(self.widget.text() ) )
00047 if val:
00048 self.widget.setText( str(val) )
00049 else:
00050 self.widget.setText('')
00051 self.modified()
00052
00053 def value(self):
00054 return textToInteger( unicode(self.widget.text()) )
00055
00056 def store(self):
00057 self.record.setValue(self.name, self.value() )
00058
00059 def clear(self):
00060 self.widget.setText('0')
00061
00062 def showValue(self):
00063 value = self.record.value( self.name )
00064 self.widget.setText( str(value) )
00065
00066 def setReadOnly(self, value):
00067 self.widget.setEnabled( not value )
00068
00069 def colorWidget(self):
00070 return self.widget
00071
00072 class IntegerFieldDelegate( AbstractFieldDelegate ):
00073 def setModelData(self, editor, model, index):
00074 value = textToInteger( unicode( editor.text() ) )
00075 model.setData( index, QVariant( value ), Qt.EditRole )
00076