From 19631b035e9dcc250e1eb3b1bcf969785f42ef07 Mon Sep 17 00:00:00 2001 From: crennis Date: Tue, 9 May 2023 15:12:11 +0200 Subject: [PATCH] AAAAAAAAAAAAAAA --- gui/gui/connection.py | 45 ++++++++++++++++++++------------------ gui/gui/connection.ui | 14 ++++++------ gui/main.py | 50 +++++++++++++++++++++++++++++-------------- webgui/main.py | 24 +++++++++++++++++++++ 4 files changed, 89 insertions(+), 44 deletions(-) create mode 100644 webgui/main.py diff --git a/gui/gui/connection.py b/gui/gui/connection.py index 6ade67a..da11a73 100644 --- a/gui/gui/connection.py +++ b/gui/gui/connection.py @@ -14,22 +14,22 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Connection(object): def setupUi(self, Connection): Connection.setObjectName("Connection") - Connection.resize(249, 252) + Connection.resize(245, 243) self.label = QtWidgets.QLabel(Connection) self.label.setGeometry(QtCore.QRect(20, 10, 101, 16)) self.label.setObjectName("label") - self.label_2 = QtWidgets.QLabel(Connection) - self.label_2.setGeometry(QtCore.QRect(20, 70, 49, 16)) - self.label_2.setObjectName("label_2") - self.label_3 = QtWidgets.QLabel(Connection) - self.label_3.setGeometry(QtCore.QRect(20, 100, 61, 16)) - self.label_3.setObjectName("label_3") - self.label_4 = QtWidgets.QLabel(Connection) - self.label_4.setGeometry(QtCore.QRect(20, 130, 81, 16)) - self.label_4.setObjectName("label_4") - self.label_5 = QtWidgets.QLabel(Connection) - self.label_5.setGeometry(QtCore.QRect(20, 160, 61, 16)) - self.label_5.setObjectName("label_5") + self.portLabel = QtWidgets.QLabel(Connection) + self.portLabel.setGeometry(QtCore.QRect(20, 70, 49, 16)) + self.portLabel.setObjectName("portLabel") + self.userLabel = QtWidgets.QLabel(Connection) + self.userLabel.setGeometry(QtCore.QRect(20, 100, 61, 16)) + self.userLabel.setObjectName("userLabel") + self.passLabel = QtWidgets.QLabel(Connection) + self.passLabel.setGeometry(QtCore.QRect(20, 130, 81, 16)) + self.passLabel.setObjectName("passLabel") + self.databaseLabel = QtWidgets.QLabel(Connection) + self.databaseLabel.setGeometry(QtCore.QRect(20, 160, 61, 16)) + self.databaseLabel.setObjectName("databaseLabel") self.portInput = QtWidgets.QLineEdit(Connection) self.portInput.setGeometry(QtCore.QRect(100, 70, 131, 21)) self.portInput.setText("") @@ -56,9 +56,9 @@ class Ui_Connection(object): self.returnLabel = QtWidgets.QLabel(Connection) self.returnLabel.setGeometry(QtCore.QRect(20, 220, 211, 16)) self.returnLabel.setObjectName("returnLabel") - self.label_6 = QtWidgets.QLabel(Connection) - self.label_6.setGeometry(QtCore.QRect(20, 40, 101, 16)) - self.label_6.setObjectName("label_6") + self.ipLabel = QtWidgets.QLabel(Connection) + self.ipLabel.setGeometry(QtCore.QRect(20, 40, 101, 16)) + self.ipLabel.setObjectName("ipLabel") self.ipInput = QtWidgets.QLineEdit(Connection) self.ipInput.setGeometry(QtCore.QRect(100, 40, 131, 21)) self.ipInput.setText("") @@ -66,6 +66,9 @@ class Ui_Connection(object): self.dbtypeCombo = QtWidgets.QComboBox(Connection) self.dbtypeCombo.setGeometry(QtCore.QRect(100, 10, 131, 22)) self.dbtypeCombo.setObjectName("dbtypeCombo") + self.dbPath = QtWidgets.QFileDialog(Connection) + self.dbPath.setGeometry(QtCore.QRect(100, 15, 131, 22)) + self.dbPath.setObjectName("dbPath") self.retranslateUi(Connection) self.ipInput.returnPressed.connect(self.portInput.setFocus) # type: ignore @@ -86,11 +89,11 @@ class Ui_Connection(object): _translate = QtCore.QCoreApplication.translate Connection.setWindowTitle(_translate("Connection", "Form")) self.label.setText(_translate("Connection", "Database")) - self.label_2.setText(_translate("Connection", "Port")) - self.label_3.setText(_translate("Connection", "Username")) - self.label_4.setText(_translate("Connection", "Password")) - self.label_5.setText(_translate("Connection", "Database")) + self.portLabel.setText(_translate("Connection", "Port")) + self.userLabel.setText(_translate("Connection", "Username")) + self.passLabel.setText(_translate("Connection", "Password")) + self.databaseLabel.setText(_translate("Connection", "Database")) self.testButton.setText(_translate("Connection", "Test Connection")) self.saveButton.setText(_translate("Connection", "Save")) self.returnLabel.setText(_translate("Connection", "Connection ... / Saved...")) - self.label_6.setText(_translate("Connection", "IP")) + self.ipLabel.setText(_translate("Connection", "IP")) diff --git a/gui/gui/connection.ui b/gui/gui/connection.ui index 7c827fc..5763bdd 100644 --- a/gui/gui/connection.ui +++ b/gui/gui/connection.ui @@ -6,8 +6,8 @@ 0 0 - 249 - 252 + 245 + 243 @@ -26,7 +26,7 @@ Database - + 20 @@ -39,7 +39,7 @@ Port - + 20 @@ -52,7 +52,7 @@ Username - + 20 @@ -65,7 +65,7 @@ Password - + 20 @@ -172,7 +172,7 @@ Connection ... / Saved... - + 20 diff --git a/gui/main.py b/gui/main.py index 6d08429..ebc900d 100644 --- a/gui/main.py +++ b/gui/main.py @@ -3,7 +3,7 @@ import os import sys from PyQt5.QtCore import QObject, QThread, pyqtSignal -from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QTableWidgetItem, QTableWidget +from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QTableWidgetItem, QTableWidget, QFileDialog import modules.aisql as aisql @@ -16,8 +16,8 @@ configfile = "config.json" dbtypes = { 0: "PostgreSQL", - 1: "MySQL", - 2: "SQLite" + 1: "SQLite", + 2: "MySQL" } # Load DB Config from file but check if file exists and create if not @@ -267,14 +267,7 @@ class ConnectionWindow(QDialog): # Load DB Config from file - with open(os.path.join(configfolder, configfile), "r") as f: - self.config = json.load(f) - self.dbtype = self.config["database"]["dbtype"] - self.dbip = self.config["database"]["ip"] - self.dbport = self.config["database"]["port"] - self.dbuser = self.config["database"]["user"] - self.dbpass = self.config["database"]["password"] - self.dbname = self.config["database"]["database"] + self.dbtype, self.dbip, self.dbport, self.dbuser, self.dbpass, self.dbname, apikey = load_config() self.ui.dbtypeCombo.addItems(dbtypes.values()) self.ui.dbtypeCombo.setCurrentIndex(self.dbtype) @@ -284,17 +277,15 @@ class ConnectionWindow(QDialog): self.ui.passwordInput.setText(self.dbpass) self.ui.databaseInput.setText(self.dbname) - if (self.ui.ipInput or self.ui.portInput or self.ui.databaseInput) == "": + if self.ui.ipInput == "": self.ui.saveButton.setEnabled(False) self.ui.testButton.setEnabled(False) else: self.ui.saveButton.setEnabled(True) self.ui.testButton.setEnabled(True) - # Unlock Buttons if ip, port and database is not empty + # Unlock Buttons if ip, port and database is not empty self.ui.ipInput.textChanged.connect(self.on_text_changed) - self.ui.portInput.textChanged.connect(self.on_text_changed) - self.ui.databaseInput.textChanged.connect(self.on_text_changed) # Pressed Save Button self.ui.saveButton.clicked.connect(self.on_save_button_clicked) @@ -302,14 +293,41 @@ class ConnectionWindow(QDialog): # Pressed Test Button self.ui.testButton.clicked.connect(self.start_db_test_thread) + # If SQLite3 is selected, disable ip, port, username and password + self.ui.dbtypeCombo.currentIndexChanged.connect(self.on_dbtype_changed) + def on_text_changed(self): - if self.ui.ipInput.text() == "" or self.ui.portInput.text() == "" or self.ui.databaseInput.text() == "": + if self.ui.ipInput.text() == "": self.ui.saveButton.setEnabled(False) self.ui.testButton.setEnabled(False) else: self.ui.saveButton.setEnabled(True) self.ui.testButton.setEnabled(True) + def on_dbtype_changed(self): + if self.ui.dbtypeCombo.currentIndex() == 1: + self.ui.ipInput.hide() + self.ui.portInput.hide() + self.ui.usernameInput.hide() + self.ui.passwordInput.hide() + self.ui.databaseInput.hide() + self.ui.ipLabel.hide() + self.ui.portLabel.hide() + self.ui.userLabel.hide() + self.ui.passLabel.hide() + self.ui.databaseLabel.hide() + else: + self.ui.ipInput.show() + self.ui.portInput.show() + self.ui.usernameInput.show() + self.ui.passwordInput.show() + self.ui.databaseInput.show() + self.ui.ipLabel.show() + self.ui.portLabel.show() + self.ui.userLabel.show() + self.ui.passLabel.show() + self.ui.databaseLabel.show() + def on_save_button_clicked(self): self.dbtype = self.ui.dbtypeCombo.currentIndex() self.dbip = self.ui.ipInput.text() diff --git a/webgui/main.py b/webgui/main.py new file mode 100644 index 0000000..e61a5a0 --- /dev/null +++ b/webgui/main.py @@ -0,0 +1,24 @@ +import justpy as jp + +class ButtonDiv(jp.Div): + + def __init__(self, **kwargs): + + super().__init__(**kwargs) + for i in range(1,6): + b = jp.Button(text=f'Button {i}', a=self, classes=f' m-{i} p-{i} border text-blue text-lg') + b.num = i + b.on('click', self.button_clicked) + self.info_div = jp.Div(text='info will go here', classes='m-2 p-2 border', a=self) + + def button_clicked(self, msg): + print(self) + print(msg.target) + self.info_div.text = f'Button {msg.target.num} was clicked' + +def target_test(): + wp = jp.WebPage() + ButtonDiv(a=wp) + return wp + +jp.justpy(target_test)