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 from Koo.Search.AbstractSearchWidget import *
00029 from PyQt4.QtGui import *
00030 from PyQt4.uic import *
00031 from Koo.Common import Common
00032
00033 (ReferenceSearchWidgetUi, ReferenceSearchWidgetBase) = loadUiType( Common.uiPath('searchreference.ui') )
00034
00035 class ReferenceSearchWidget(AbstractSearchWidget, ReferenceSearchWidgetUi):
00036 def __init__(self, name, parent, attrs={}):
00037 AbstractSearchWidget.__init__(self, name, parent, attrs)
00038 ReferenceSearchWidgetUi.__init__(self)
00039 self.setupUi( self )
00040
00041 self.setPopdown( attrs.get('selection',[]) )
00042 self.focusWidget = self.uiModel
00043
00044 self.focusWidget.installEventFilter( self )
00045
00046 def setPopdown(self, selection):
00047 self.invertedModels = {}
00048 for (i,j) in [('','')] + selection:
00049 self.uiModel.addItem( j, QVariant(i) )
00050 self.invertedModels[i] = j
00051
00052
00053 def value(self):
00054 resource = unicode(self.uiModel.itemData(self.uiModel.currentIndex()).toString())
00055 if resource:
00056 return [(self.name, 'like', resource + ',')]
00057 else:
00058 return []
00059
00060 def setValue(self, value):
00061 model, (id, name) = value
00062 self.uiModel.setCurrentIndex( self.uiModel.findText(self.invertedModels[model]) )
00063
00064 def clear(self):
00065 self.setValue( '' )
00066