Add a new dialog to get database settings. Fixes: #5
Added a new dialog for database settings. Updated dbConfig to use QSettings.
This commit is contained in:
67
setupDialog.py
Normal file
67
setupDialog.py
Normal file
@@ -0,0 +1,67 @@
|
||||
from PySide6.QtCore import Slot, Qt
|
||||
from PySide6.QtGui import QPalette
|
||||
from PySide6.QtWidgets import QDialog, QStatusBar, QVBoxLayout, QWidget
|
||||
|
||||
from lib.utils import openSettings
|
||||
from ui.dbSetup import Ui_setupDialog
|
||||
|
||||
class setupDialog(QDialog,Ui_setupDialog):
|
||||
def __init__(self, parent: QWidget | None = None):
|
||||
super(setupDialog,self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
self.sqliteEdit.setEnabled(False)
|
||||
|
||||
layout = self.layout()
|
||||
assert isinstance(layout, QVBoxLayout)
|
||||
self.statusBar = QStatusBar(self)
|
||||
self.statusBar.setObjectName('statusBar')
|
||||
where = layout.indexOf(self.buttonBox)
|
||||
layout.insertWidget(where, self.statusBar)
|
||||
self.pwEdit.editingFinished.connect(self.pwDone)
|
||||
self.pwConfirmEdit.editingFinished.connect(self.pwDone)
|
||||
return
|
||||
|
||||
@Slot()
|
||||
def pwDone(self):
|
||||
pw = self.pwEdit.text()
|
||||
confirm = self.pwConfirmEdit.text()
|
||||
|
||||
if pw != confirm:
|
||||
palette = self.statusBar.palette()
|
||||
palette.setColor(QPalette.ColorRole.WindowText, Qt.GlobalColor.red)
|
||||
self.statusBar.setPalette(palette)
|
||||
self.statusBar.showMessage("Password doesn't match")
|
||||
self.pwGood = False
|
||||
else:
|
||||
self.statusBar.clearMessage()
|
||||
self.pwGood = True
|
||||
return
|
||||
|
||||
@Slot(int) # type: ignore
|
||||
def done(self, r:int) -> None:
|
||||
if r == QDialog.DialogCode.Rejected:
|
||||
super(setupDialog,self).done(r)
|
||||
return
|
||||
self.pwDone()
|
||||
if not self.pwGood:
|
||||
return
|
||||
super(setupDialog,self).done(r)
|
||||
return
|
||||
|
||||
@Slot()
|
||||
def accept(self) -> None:
|
||||
settings=openSettings('database')
|
||||
settings.setValue('hostname', self.hostEdit.text())
|
||||
settings.setValue('databasename', self.dbEdit.text())
|
||||
settings.setValue('user',self.userEdit.text())
|
||||
settings.setValue('password', self.pwEdit.text())
|
||||
settings.setValue('port', self.portEdit.text())
|
||||
if self.comboBox.currentIndex() == 0:
|
||||
settings.setValue('engine', 'QMYSQL')
|
||||
elif self.comboBox.currentIndex() == 1:
|
||||
settings.setValue('engine', 'QSQLITE')
|
||||
# Other types: QDB2, QIBASE, QOCI, QODBC, QPSQL, QMIMER
|
||||
else:
|
||||
print("Bad Database Type")
|
||||
settings.sync()
|
||||
return super().accept()
|
||||
Reference in New Issue
Block a user