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