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 PyQt4.QtCore import *
00029 from PyQt4.QtGui import *
00030 from PyQt4.uic import *
00031 import re
00032 from Koo.Common import Common
00033 from Koo.Common.Settings import *
00034 from Koo import Rpc
00035 
00036 
00037 def refreshDatabaseList(widget, url, dbtoload=None):
00038         if not dbtoload:
00039                 dbtoload = Settings.value('login.db')
00040         index = 0
00041         widget.clear()
00042                 
00043         result = Rpc.database.list(url)
00044         if result == False:
00045                 return -2
00046         if result == -1:
00047                 return -1
00048         if result:
00049                 for db_num, db_name in enumerate(result):
00050                         widget.addItem( db_name )
00051                         if db_name == dbtoload:
00052                                 index = db_num
00053         widget.setCurrentIndex(index)
00054         return widget.count()
00055 
00056 (ServerConfigurationDialogUi, ServerConfigurationDialogBase) = loadUiType( Common.uiPath('change_server.ui') )
00057 
00058 class ServerConfigurationDialog( QDialog, ServerConfigurationDialogUi ):
00059         url = ''
00060 
00061         def __init__(self, parent=None):
00062                 QDialog.__init__(self, parent)
00063                 ServerConfigurationDialogUi.__init__(self)
00064                 self.setupUi(self)
00065 
00066                 self.uiConnection.addItem( _("NET-RPC"), QVariant( 'socket' ) )
00067                 self.uiConnection.addItem( _("XML-RPC"), QVariant( 'http' ) )
00068                 self.uiConnection.addItem( _("Secure XML-RPC"), QVariant( 'https' ) )
00069                 self.uiConnection.addItem( _("Pyro (faster)"), QVariant( 'PYROLOC' ) )
00070                 result = False
00071                 self.connect(self.pushCancel,SIGNAL("clicked()"),self.reject )
00072                 self.connect(self.pushAccept,SIGNAL("clicked()"),self.slotAccept )
00073 
00074         def setUrl( self, url ):
00075                 self.url = url
00076                 url = QUrl( url )
00077                 if url.isValid():
00078                         self.uiConnection.setCurrentIndex( self.uiConnection.findData( QVariant( url.scheme() ) ) )
00079                         self.uiServer.setText( url.host() )
00080                         self.uiPort.setText( unicode( url.port() ) )
00081 
00082         def slotAccept(self):
00083                 url = QUrl( self.url )
00084                 protocol = unicode( self.uiConnection.itemData( self.uiConnection.currentIndex() ).toString() )
00085                 url.setScheme( protocol )
00086                 url.setHost( self.uiServer.text() )
00087                 url.setPort( int( self.uiPort.text().toInt()[0] ) )
00088                 if url.isValid():
00089                         
00090                         Settings.setValue('login.url', unicode( url.toString() ) )
00091                         Settings.saveToFile()
00092                 url.setUserName( '' )
00093                 self.url = unicode( url.toString() )
00094                 self.accept()
00095