from qt import * from Conf import * from Prelude import * from PopupDialog import popup_error, popup_info from Misc import disable_resize import string import os from ConnectionSetupForm import ConnectionSetupForm class ConnectionSetupDialog(ConnectionSetupForm): def __init__(self, mainWindowDialog, interface, *args): ConnectionSetupForm.__init__(self, mainWindowDialog, *args) self.connect(self.typeComboBox, SIGNAL("activated(const QString &)"), self.typeChanged) self.storeCheckBox.setChecked(True) disable_resize(self) self.mainWindowDialog = mainWindowDialog self.interface = interface conf = Conf() self.interface.conf = conf try: file = open(self.interface.directory + "/conf", "r") except IOError: return try: conf.load(file) self.loadConf() except ConfError: pass def loadConf(self): conf = self.interface.conf type = conf.getDBtype() if type == "mysql": self.typeComboBox.currentItem = 1 if type == "postgresql": self.typeComboBox.currentItem = 2 self.nameLineEdit.setText(conf.getDBname()) self.hostLineEdit.setText(conf.getDBhost()) self.userLineEdit.setText(conf.getDBuser()) self.passwordLineEdit.setText(conf.getDBpassword()) def typeChanged(self, value): type = string.lower(value) if type == "mysql": self.portLineEdit.setText("3306") if type == "postgresql": self.portLineEdit.setText("5432") def dbconnect(self): conf = self.interface.conf conf.setDBtype(str(self.typeComboBox.currentText())) conf.setDBhost(str(self.hostLineEdit.text())) conf.setDBname(str(self.nameLineEdit.text())) conf.setDBformat("classic") conf.setDBport(str(self.portLineEdit.text())) conf.setDBuser(str(self.userLineEdit.text())) conf.setDBpassword(str(self.passwordLineEdit.text())) try: db = DB(self.interface.conf) except (DBBadInterface, DBConnectionFailed): popup_error(self, "connection failed") return if self.storeCheckBox.isChecked(): file = open(self.interface.directory + "/conf", "w") self.interface.conf.save(file) self.hide() self.interface.app.processEvents() self.interface.db = db self.interface.setConnectionStatus(True) self.mainWindowDialog.updateAlerts(True)