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 PyQt4.QtCore import *
00030 from PyQt4.QtGui import *
00031 from PyQt4.uic import *
00032
00033 from Koo.Common import Common
00034 from Koo.Common import Shortcuts
00035 from Koo.Fields.AbstractFieldWidget import *
00036
00037 (UrlFieldWidgetUi, UrlFieldWidgetBase ) = loadUiType( Common.uiPath('url.ui') )
00038
00039 class UrlFieldWidget(AbstractFieldWidget, UrlFieldWidgetUi):
00040 def __init__(self, parent, model, attrs={}):
00041 AbstractFieldWidget.__init__(self, parent, model, attrs)
00042 UrlFieldWidgetUi.__init__(self)
00043 self.setupUi(self)
00044
00045
00046 self.scSearch = QShortcut( self.uiUrl )
00047 self.scSearch.setKey( Shortcuts.SearchInField )
00048 self.scSearch.setContext( Qt.WidgetShortcut )
00049 self.connect( self.scSearch, SIGNAL('activated()'), self.openUrl )
00050
00051 self.uiUrl.setMaxLength( int( attrs.get('size',16)))
00052 self.connect( self.pushOpenUrl, SIGNAL('clicked()'), self.openUrl )
00053 self.connect( self.uiUrl, SIGNAL('editingFinished()'), self.modified )
00054 self.installPopupMenu( self.uiUrl )
00055
00056 def storeValue(self):
00057 return self.record.setValue(self.name, unicode( self.uiUrl.text() ) or False)
00058
00059 def clear( self ):
00060 self.uiUrl.clear()
00061 self.uiUrl.setToolTip('')
00062
00063 def showValue(self):
00064 self.uiUrl.setCursorPosition( 0 )
00065 self.uiUrl.setText(self.record.value(self.name) or '')
00066 self.uiUrl.setToolTip(self.record.value(self.name) or '')
00067
00068 def setReadOnly(self, value):
00069 AbstractFieldWidget.setReadOnly(self, value)
00070 self.uiUrl.setReadOnly( value )
00071
00072 def openUrl(self):
00073 value = unicode(self.uiUrl.text()).strip()
00074 if value != '':
00075 QDesktopServices.openUrl( QUrl(value) )
00076
00077 class EMailFieldWidget(UrlFieldWidget):
00078 def openUrl(self):
00079 value = unicode(self.uiUrl.text()).strip()
00080 if value != '':
00081 QDesktopServices.openUrl( QUrl('mailto:' + value) )
00082
00083 class CallToFieldWidget(UrlFieldWidget):
00084 def openUrl(self):
00085 value = unicode(self.uiUrl.text()).strip()
00086 if value != '':
00087 QDesktopServices.openUrl( QUrl('callto:%s' + value) )
00088
00089 class SipFieldWidget(UrlFieldWidget):
00090 def openUrl(self):
00091 value = unicode(self.uiUrl.text()).strip()
00092 if value != '':
00093 QDesktopServices.openUrl( QUrl('sip:%s' + value) )
00094
00095
00096