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
00032 from Koo.Common import Common
00033 from Koo.Common import Url
00034 from DatabaseDialog import *
00035 import ServerConfigurationDialog
00036 from DatabaseCreationDialog import DatabaseCreationDialog
00037
00038 (LoginDialogUi, LoginDialogBase) = loadUiType( Common.uiPath('login.ui') )
00039
00040
00041
00042
00043
00044
00045 class LoginDialog( QDialog, LoginDialogUi ):
00046 defaultHost = ''
00047 defaultPort = 0
00048 defaultProtocol = ''
00049 defaultUserName = ''
00050
00051 def __init__(self, parent=None ):
00052 QDialog.__init__(self, parent)
00053 LoginDialogUi.__init__(self)
00054 self.setupUi( self )
00055
00056 self.pushCreateDatabase.hide()
00057 self.pushRestoreDatabase.hide()
00058 self.uiTextDatabase.hide()
00059 self.databaseName = ''
00060
00061 QTimer.singleShot( 0, self.initGui )
00062
00063 def setDatabaseName( self, name ):
00064 self.databaseName = name
00065
00066 def initGui(self):
00067 self.connect( self.pushCancel, SIGNAL("clicked()"), self.slotCancel )
00068 self.connect( self.pushAccept, SIGNAL("clicked()"), self.slotAccept )
00069 self.connect( self.pushChange, SIGNAL("clicked()"), self.slotChange )
00070 self.connect( self.pushCreateDatabase, SIGNAL("clicked()"), self.createDatabase )
00071 self.connect( self.pushRestoreDatabase, SIGNAL("clicked()"), self.restoreDatabase )
00072
00073 uid = 0
00074 self.uiNoConnection.hide()
00075
00076 url = QUrl( Settings.value( 'login.url' ) )
00077 self.uiUserName.setText( url.userName() )
00078 url.setUserName( '' )
00079 self.uiServer.setText( url.toString() )
00080 res = self.refreshList()
00081
00082 def refreshList(self):
00083 res = ServerConfigurationDialog.refreshDatabaseList(self.uiDatabase, str( self.uiServer.text() ), self.databaseName )
00084 if res == -1:
00085 self.uiNoConnection.setText('<b>'+_('Could not connect to server !')+'</b>')
00086 self.uiNoConnection.show()
00087 self.uiDatabase.hide()
00088 self.uiTextDatabase.hide()
00089 self.pushCreateDatabase.hide()
00090 self.pushRestoreDatabase.hide()
00091 self.pushAccept.setEnabled(False)
00092 elif res == 0:
00093 self.uiNoConnection.setText('<b>'+_('No database found, you must create one !')+'</b>')
00094 self.uiNoConnection.show()
00095 self.uiDatabase.hide()
00096 self.uiTextDatabase.hide()
00097 self.pushCreateDatabase.show()
00098 self.pushRestoreDatabase.show()
00099 self.pushAccept.setEnabled(False)
00100 else:
00101 self.uiNoConnection.hide()
00102 if res == -2:
00103 self.uiDatabase.hide()
00104 self.uiTextDatabase.show()
00105 else:
00106 self.uiDatabase.show()
00107 self.uiTextDatabase.hide()
00108 self.pushCreateDatabase.hide()
00109 self.pushRestoreDatabase.hide()
00110 self.pushAccept.setEnabled(True)
00111 return res
00112
00113 def slotChange(self):
00114 dialog = ServerConfigurationDialog.ServerConfigurationDialog( self )
00115 dialog.setUrl( Settings.value( 'login.url' ) )
00116 if dialog.exec_() == QDialog.Accepted:
00117 QApplication.setOverrideCursor( Qt.WaitCursor )
00118 self.uiServer.setText( dialog.url )
00119 self.refreshList()
00120 QApplication.restoreOverrideCursor()
00121
00122 def slotAccept( self ):
00123 m = QUrl( self.uiServer.text() )
00124 m.setUserName( Url.encodeForUrl( self.uiUserName.text() ) )
00125 m.setPassword( Url.encodeForUrl( self.uiPassword.text() ) )
00126 if m.isValid():
00127 self.url = unicode( m.toString() )
00128 if self.uiDatabase.isVisible():
00129 self.databaseName = unicode( self.uiDatabase.currentText() )
00130 else:
00131 self.databaseName = unicode( self.uiTextDatabase.text() )
00132 m.setPassword( '' )
00133 Settings.setValue( 'login.url', unicode( m.toString() ) )
00134 Settings.setValue( 'login.db', self.databaseName )
00135 Settings.saveToFile()
00136 self.accept()
00137 else:
00138 self.reject()
00139
00140 def slotCancel(self):
00141 self.reject()
00142
00143 def createDatabase(self):
00144 dialog = DatabaseCreationDialog(self)
00145 if dialog.exec_() == QDialog.Accepted:
00146 self.url = dialog.url
00147 self.databaseName = dialog.databaseName
00148 self.accept()
00149
00150 def restoreDatabase(self):
00151 restoreDatabase( self )
00152 QApplication.setOverrideCursor( Qt.WaitCursor )
00153 self.refreshList()
00154 QApplication.restoreOverrideCursor()
00155