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
00030 from Koo.Common.Numeric import *
00031 from Koo.Search.AbstractSearchWidget import *
00032 from PyQt4.QtGui import *
00033 from PyQt4.QtCore import *
00034 from PyQt4.uic import *
00035
00036 class FloatSearchWidget(AbstractSearchWidget):
00037 def __init__(self, name, parent, attrs={}):
00038 AbstractSearchWidget.__init__(self, name, parent, attrs)
00039 layout = QHBoxLayout( self )
00040 layout.setSpacing( 0 )
00041 layout.setContentsMargins( 0, 0, 0, 0 )
00042 self.uiStart = QLineEdit( self )
00043 label = QLabel( '-', self )
00044 self.uiEnd = QLineEdit( self )
00045 layout.addWidget( self.uiStart )
00046 layout.addWidget( label )
00047 layout.addWidget( self.uiEnd )
00048
00049
00050 self.uiStart.installEventFilter( self )
00051 self.uiEnd.installEventFilter( self )
00052
00053 self.connect( self.uiStart, SIGNAL('returnPressed()'), self.calculate )
00054 self.connect( self.uiEnd, SIGNAL('returnPressed()'), self.calculate )
00055
00056 self.focusWidget = self.uiStart
00057
00058 def calculate(self):
00059 widget = self.sender()
00060 val = textToFloat( str(widget.text() ) )
00061 if val:
00062 widget.setText( str(val) )
00063 else:
00064 widget.setText('')
00065
00066 def value(self):
00067 res = []
00068 start = textToFloat( str(self.uiStart.text()) )
00069 end = textToFloat( str(self.uiEnd.text()) )
00070 if start and not end:
00071 res.append((self.name, '=', start))
00072 return res
00073 if start:
00074 res.append((self.name, '>=', start))
00075 if end:
00076 res.append((self.name, '<=', end))
00077 return res
00078
00079 def clear(self):
00080 self.uiStart.clear()
00081 self.uiEnd.clear()
00082
00083 def setValue(self, value):
00084 if value:
00085 self.uiStart.setText( str(value) )
00086 self.uiEnd.setText( str(value) )
00087 else:
00088 self.uiStart.clear()
00089 self.uiEnd.clear()
00090