Source code for pyqtdb.DBServerDialog

# -*- coding: utf-8 -*-


from PyQt4.QtGui import QDialog, QVBoxLayout, QHBoxLayout, QGridLayout, \
                        QLabel, QComboBox, QLineEdit, QPushButton
from PyQt4.QtCore import Qt, SIGNAL

from img import Ico
import app_globals as G



[docs]class DBServerDialog(QDialog): """Edit a Server entry""" def __init__(self, parent=None, server=None): QDialog.__init__(self, parent) self.setWindowTitle("Server") self.setWindowIcon(Ico.icon(Ico.ServerEdit if server else Ico.ServerAdd)) m = 20 self.mainLayout = QVBoxLayout() self.mainLayout.setContentsMargins(m, m, m, m) #self.mainLayout.setSpacing(0) self.setLayout(self.mainLayout) self.grid = QGridLayout() self.mainLayout.addLayout(self.grid) #= Engine row = 0 self.grid.addWidget(QLabel("Engine:"), row, 0, Qt.AlignRight) self.comboEngine = QComboBox() """Datebase engine selector""" self.grid.addWidget(self.comboEngine, row, 1, 1, 3) self.comboEngine.addItem("QMYSQL") #= Server row += 1 self.grid.addWidget(QLabel("Server Host:"), row, 0, Qt.AlignRight) self.txtServer = QLineEdit() """Server host""" self.grid.addWidget(self.txtServer, row, 1, 1, 3) #= Port row += 1 self.grid.addWidget(QLabel("Server Port:"), row, 0, Qt.AlignRight) self.txtPort = QLineEdit() """Port No""" self.txtPort.setText("3306") self.grid.addWidget(self.txtPort, row, 1, 1, 1) # @todo make this only iintegers ? row += 1 self.grid.addWidget(QLabel("User Login:"), row, 0, Qt.AlignRight) self.txtUser = QLineEdit() """Username""" self.grid.addWidget(self.txtUser, row, 1, 1, 2) row += 1 self.grid.addWidget(QLabel("Password:"), row, 0, Qt.AlignRight) self.txtPasswd = QLineEdit() """Password""" self.grid.addWidget(self.txtPasswd, row, 1, 1, 2) row += 1 self.lblTest = QLabel("Test") self.grid.addWidget(self.lblTest, row, 0, 1, 2, Qt.AlignRight) self.buttTest = QPushButton() self.buttTest.setText("Test") self.buttTest.setIcon(Ico.icon(Ico.ServerConnect)) self.grid.addWidget(self.buttTest, row, 2, 1, 1) self.connect(self.buttTest, SIGNAL("clicked()"), self.on_test) buttonBox = QHBoxLayout() buttonBox.addStretch(10) self.mainLayout.addLayout(buttonBox) buttCancel = QPushButton() buttCancel.setText("Cancel") buttCancel.setIcon(Ico.icon(Ico.Cancel)) buttonBox.addWidget(buttCancel) self.connect(buttCancel, SIGNAL("clicked()"), self.reject) self.buttSave = QPushButton() self.buttSave.setText("Save") self.buttSave.setIcon(Ico.icon(Ico.Save)) buttonBox.addWidget(self.buttSave) self.connect(self.buttSave, SIGNAL("clicked()"), self.on_save) if server: data = G.settings.get_server(server) if data: self.txtServer.setText(data['server']) self.txtPort.setText(data['port']) self.txtUser.setText(data['user']) self.txtPasswd.setText(data['passwd'])
[docs] def on_test(self): print "TODO", "self.on_test"
[docs] def on_save(self): """Save server settings Creates a :py:func:`dict` and passes to :py:meth:`~pyqtdb.XSettings.XSettings.save_server` instance :py:`~pyqtdb.app_globals.settings` """ data_dic = dict(server = str(self.txtServer.text()), port=str(self.txtPort.text()), user=str(self.txtUser.text()), passwd=str(self.txtPasswd.text())) G.settings.save_server( data_dic ) self.accept()