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