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 import base64
00030 import os
00031 import tempfile
00032
00033 from Koo.Fields.AbstractFieldWidget import *
00034 from PyQt4.QtCore import *
00035 from PyQt4.QtGui import *
00036 from PyQt4.uic import *
00037
00038 from Koo.Common import Common
00039
00040 (LinkFieldWidgetUi, LinkFieldWidgetBase) = loadUiType( Common.uiPath('link.ui') )
00041
00042 class LinkFieldWidget(AbstractFieldWidget, LinkFieldWidgetUi):
00043 def __init__(self, parent, model, attrs={}):
00044 AbstractFieldWidget.__init__(self, parent, model, attrs)
00045 LinkFieldWidgetUi.__init__(self)
00046 self.setupUi(self)
00047 self.connect( self.pushOpen, SIGNAL('clicked()'), self.open )
00048 self.installPopupMenu( self.uiText )
00049
00050 def setReadOnly(self, value):
00051 AbstractFieldWidget.setReadOnly(self, value)
00052 self.uiText.setReadOnly( value )
00053 self.pushOpen.setEnabled( not value )
00054
00055 def menuEntries(self):
00056 pix = QPixmap()
00057 if self.record.value(self.name):
00058 enableApplication = True
00059 else:
00060 enableApplication = False
00061
00062 return [ (_('Open...'), self.openApplication, enableApplication) ]
00063
00064 def openApplication(self):
00065 fileName = self.record.value(self.name)
00066 if not fileName:
00067 return
00068 Common.openFile( fileName )
00069
00070 def open(self):
00071 filename = QFileDialog.getOpenFileName(self, _('Select the file to link to'))
00072 if filename.isNull():
00073 return
00074 self.record.setValue(self.name, unicode(filename) )
00075
00076 def showValue(self):
00077 value = self.record.value( self.name )
00078 if value:
00079 self.uiText.setText( value )
00080 else:
00081 self.clear()
00082
00083 def clear(self):
00084 self.uiText.clear()
00085
00086
00087 def storeValue(self):
00088 pass
00089
00090 def colorWidget(self):
00091 return self.uiText
00092