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 store(self):
00057 return self.record.setValue(self.name, unicode( self.uiUrl.text() ) or False)
00058
00059 def clear( self ):
00060 self.uiUrl.clear()
00061
00062 def showValue(self):
00063 self.uiUrl.setText(self.record.value(self.name) or '')
00064 self.uiUrl.setCursorPosition( 0 )
00065
00066 def setReadOnly(self, value):
00067 AbstractFieldWidget.setReadOnly(self, value)
00068 self.uiUrl.setReadOnly( value )
00069
00070 def openUrl(self):
00071 value = unicode(self.uiUrl.text()).strip()
00072 if value != '':
00073 QDesktopServices.openUrl( QUrl(value) )
00074
00075 class EMailFieldWidget(UrlFieldWidget):
00076 def openUrl(self):
00077 value = unicode(self.uiUrl.text()).strip()
00078 if value != '':
00079 QDesktopServices.openUrl( QUrl('mailto:' + value) )
00080
00081 class CallToFieldWidget(UrlFieldWidget):
00082 def openUrl(self):
00083 value = unicode(self.uiUrl.text()).strip()
00084 if value != '':
00085 QDesktopServices.openUrl( QUrl('callto:%s' + value) )
00086
00087 class SipFieldWidget(UrlFieldWidget):
00088 def openUrl(self):
00089 value = unicode(self.uiUrl.text()).strip()
00090 if value != '':
00091 QDesktopServices.openUrl( QUrl('sip:%s' + value) )
00092
00093
00094