mirror of
https://github.com/283375/arcaea-offline-pyside-ui.git
synced 2025-04-20 17:50:17 +00:00
refactor: DatabaseChecker
This commit is contained in:
parent
e341b788fa
commit
a9941e9c87
@ -1,13 +1,18 @@
|
||||
import logging
|
||||
import traceback
|
||||
from typing import Literal, Optional, Union
|
||||
|
||||
from arcaea_offline.database import Database
|
||||
from PySide6.QtCore import QDir, QFile, Qt, QTimer, Slot
|
||||
from PySide6.QtCore import QCoreApplication, QDir, QFileInfo, Qt, QTimer, QUrl, Slot
|
||||
from PySide6.QtWidgets import QDialog, QMessageBox
|
||||
|
||||
from ui.extends.shared.database import create_engine
|
||||
from ui.extends.shared.settings import Settings
|
||||
|
||||
from .databaseChecker_ui import Ui_DatabaseChecker
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DatabaseChecker(Ui_DatabaseChecker, QDialog):
|
||||
def __init__(self, parent=None):
|
||||
@ -16,67 +21,98 @@ class DatabaseChecker(Ui_DatabaseChecker, QDialog):
|
||||
self.setWindowFlag(Qt.WindowType.WindowMinimizeButtonHint, False)
|
||||
self.setWindowFlag(Qt.WindowType.WindowMaximizeButtonHint, False)
|
||||
self.setWindowFlag(Qt.WindowType.WindowCloseButtonHint, True)
|
||||
self.dbFileSelector.setMode(self.dbFileSelector.getExistingDirectory)
|
||||
self.dbFileSelector.filesSelected.connect(self.fileSelected)
|
||||
self.dbDirSelector.setMode(self.dbDirSelector.getExistingDirectory)
|
||||
|
||||
self.confirmDbByExistingSettings = False
|
||||
self.settings = Settings(self)
|
||||
dbDir = self.settings.value("Default/DbDir", None, str)
|
||||
if dbDir and QFile(QDir(dbDir).filePath(Database.dbFilename)).exists():
|
||||
self.dbFileSelector.selectFile(dbDir)
|
||||
result = self.checkDbVersion()
|
||||
if result:
|
||||
QTimer.singleShot(50, self.accept)
|
||||
dbUrlString = self.settings.databaseUrl()
|
||||
|
||||
if dbUrlString:
|
||||
dbFileUrl = QUrl(dbUrlString.replace("sqlite://", "file://"))
|
||||
dbFileInfo = QFileInfo(dbFileUrl.toLocalFile())
|
||||
if dbFileInfo.exists():
|
||||
self.dbDirSelector.selectFile(dbFileInfo.path())
|
||||
self.dbFilenameLineEdit.setText(dbFileInfo.fileName())
|
||||
self.confirmDbByExistingSettings = True
|
||||
self.confirmDbPathButton.click()
|
||||
else:
|
||||
self.dbFileSelector.selectFile(QDir.currentPath())
|
||||
self.dbDirSelector.selectFile(QDir.currentPath())
|
||||
self.dbFilenameLineEdit.setText("arcaea_offline.db")
|
||||
else:
|
||||
self.dbDirSelector.selectFile(QDir.currentPath())
|
||||
self.dbFilenameLineEdit.setText("arcaea_offline.db")
|
||||
|
||||
def fileSelected(self):
|
||||
self.checkDbVersion()
|
||||
|
||||
def checkDbVersion(self) -> str | None:
|
||||
dbQDir = QDir(self.dbFileSelector.selectedFiles()[0])
|
||||
dbDir = dbQDir.absolutePath()
|
||||
|
||||
dbDir = self.dbFileSelector.selectedFiles()[0]
|
||||
dbQFile = QFile(QDir(dbDir).filePath(Database.dbFilename))
|
||||
if not dbQFile.exists():
|
||||
result = QMessageBox.question(self, "Database", "Create database file now?")
|
||||
if result != QMessageBox.StandardButton.Yes:
|
||||
return
|
||||
dbQFile.open(QFile.OpenModeFlag.WriteOnly)
|
||||
dbQFile.close()
|
||||
|
||||
Database.dbDir = dbDir
|
||||
|
||||
try:
|
||||
with Database().conn as conn:
|
||||
version = conn.execute(
|
||||
"SELECT value FROM properties WHERE key = 'db_version'"
|
||||
).fetchone()[0]
|
||||
self.dbVersionLabel.setText(version)
|
||||
self.continueButton.setEnabled(True)
|
||||
def updateLabels(
|
||||
self,
|
||||
version: Union[Optional[int], Literal["reset"]],
|
||||
init_status: Union[Optional[bool], Literal["reset"]],
|
||||
):
|
||||
if version is not None:
|
||||
self.dbVersionLabel.setText(str(version))
|
||||
elif version == "reset":
|
||||
self.dbVersionLabel.setText("-")
|
||||
|
||||
if init_status is not None:
|
||||
if init_status:
|
||||
self.dbCheckConnLabel.setText('<font color="green">OK</font>')
|
||||
self.settings.setValue("Default/DbDir", dbDir)
|
||||
return version
|
||||
except Exception as e:
|
||||
QMessageBox.critical(
|
||||
self, "Database Error", "\n".join(traceback.format_exception(e))
|
||||
)
|
||||
self.dbInitButton.setEnabled(True)
|
||||
self.continueButton.setEnabled(False)
|
||||
self.continueButton.setEnabled(True)
|
||||
else:
|
||||
self.dbCheckConnLabel.setText('<font color="red">Error</font>')
|
||||
return False
|
||||
self.continueButton.setEnabled(False)
|
||||
elif init_status == "reset":
|
||||
self.dbCheckConnLabel.setText("-")
|
||||
self.continueButton.setEnabled(False)
|
||||
|
||||
@Slot()
|
||||
def on_dbInitButton_clicked(self):
|
||||
try:
|
||||
Database().init()
|
||||
except Exception as e:
|
||||
QMessageBox.critical(
|
||||
self, "Database Error", "\n".join(traceback.format_exception(e))
|
||||
def on_confirmDbPathButton_clicked(self):
|
||||
dbPath = QDir(self.dbDirSelector.selectedFiles()[0])
|
||||
dbFileInfo = QFileInfo(
|
||||
QDir.cleanPath(dbPath.absoluteFilePath(self.dbFilenameLineEdit.text()))
|
||||
)
|
||||
dbFileUrl = QUrl.fromLocalFile(dbFileInfo.filePath())
|
||||
# dbSqliteUrl.setScheme("sqlite")
|
||||
dbSqliteUrl = QUrl(dbFileUrl.toString().replace("file://", "sqlite://"))
|
||||
if not dbFileInfo.exists():
|
||||
confirm_new_database = QMessageBox.question(
|
||||
self,
|
||||
None,
|
||||
# fmt: off
|
||||
QCoreApplication.translate("DatabaseChecker", "dialog.confirmNewDatabase"),
|
||||
# fmt: on
|
||||
)
|
||||
if confirm_new_database == QMessageBox.StandardButton.Yes:
|
||||
db = Database(create_engine(dbSqliteUrl))
|
||||
db.init()
|
||||
self.on_confirmDbPathButton_clicked()
|
||||
else:
|
||||
db = Database(create_engine(dbSqliteUrl))
|
||||
if db.check_init():
|
||||
self.updateLabels(db.version(), True)
|
||||
if self.confirmDbByExistingSettings:
|
||||
QTimer.singleShot(25, self.accept)
|
||||
else:
|
||||
self.settings.setDatabaseUrl(dbSqliteUrl.toString())
|
||||
else:
|
||||
confirm_try_init = QMessageBox.question(
|
||||
self,
|
||||
None,
|
||||
# fmt: off
|
||||
QCoreApplication.translate("DatabaseChecker", "dialog.tryInit"),
|
||||
# fmt: on
|
||||
)
|
||||
if confirm_try_init == QMessageBox.StandardButton.Yes:
|
||||
try:
|
||||
db.init(checkfirst=True)
|
||||
except Exception as e:
|
||||
logger.exception(
|
||||
"Error while initializing an existing database"
|
||||
)
|
||||
QMessageBox.critical(
|
||||
self, None, "\n".join(traceback.format_exception(e))
|
||||
)
|
||||
self.updateLabels("reset", False)
|
||||
finally:
|
||||
self.checkDbVersion()
|
||||
self.on_confirmDbPathButton_clicked()
|
||||
|
||||
@Slot()
|
||||
def on_continueButton_clicked(self):
|
||||
|
@ -25,51 +25,56 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="FileSelector" name="dbFileSelector" native="true"/>
|
||||
<widget class="FileSelector" name="dbDirSelector" native="true"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>dbVersionLabel</string>
|
||||
<string>dbFilenameLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="dbFilenameLineEdit"/>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="confirmDbPathButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>confirmDbPathButton</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="dbVersionLabel">
|
||||
<property name="text">
|
||||
<string notr="true">-</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>dbInitLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>dbCheckConnLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="dbInitButton">
|
||||
<property name="text">
|
||||
<string>dbInitButton</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="dbCheckConnLabel">
|
||||
<property name="text">
|
||||
<string notr="true">...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="6" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@ -82,7 +87,21 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>dbCheckConnLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLabel" name="dbCheckConnLabel">
|
||||
<property name="text">
|
||||
<string notr="true">...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="continueButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
@ -92,6 +111,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>dbVersionLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
|
@ -3,146 +3,124 @@
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'databaseChecker.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.5.0
|
||||
## Created by: Qt User Interface Compiler version 6.5.2
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import (
|
||||
QCoreApplication,
|
||||
QDate,
|
||||
QDateTime,
|
||||
QLocale,
|
||||
QMetaObject,
|
||||
QObject,
|
||||
QPoint,
|
||||
QRect,
|
||||
QSize,
|
||||
Qt,
|
||||
QTime,
|
||||
QUrl,
|
||||
)
|
||||
from PySide6.QtGui import (
|
||||
QBrush,
|
||||
QColor,
|
||||
QConicalGradient,
|
||||
QCursor,
|
||||
QFont,
|
||||
QFontDatabase,
|
||||
QGradient,
|
||||
QIcon,
|
||||
QImage,
|
||||
QKeySequence,
|
||||
QLinearGradient,
|
||||
QPainter,
|
||||
QPalette,
|
||||
QPixmap,
|
||||
QRadialGradient,
|
||||
QTransform,
|
||||
)
|
||||
from PySide6.QtWidgets import (
|
||||
QApplication,
|
||||
QFormLayout,
|
||||
QLabel,
|
||||
QPushButton,
|
||||
QSizePolicy,
|
||||
QSpacerItem,
|
||||
QWidget,
|
||||
)
|
||||
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
||||
QMetaObject, QObject, QPoint, QRect,
|
||||
QSize, QTime, QUrl, Qt)
|
||||
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||
QFont, QFontDatabase, QGradient, QIcon,
|
||||
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||
from PySide6.QtWidgets import (QApplication, QFormLayout, QFrame, QHBoxLayout,
|
||||
QLabel, QLineEdit, QPushButton, QSizePolicy,
|
||||
QSpacerItem, QWidget)
|
||||
|
||||
from ui.implements.components.fileSelector import FileSelector
|
||||
|
||||
|
||||
class Ui_DatabaseChecker(object):
|
||||
def setupUi(self, DatabaseChecker):
|
||||
if not DatabaseChecker.objectName():
|
||||
DatabaseChecker.setObjectName("DatabaseChecker")
|
||||
DatabaseChecker.setObjectName(u"DatabaseChecker")
|
||||
DatabaseChecker.resize(350, 250)
|
||||
DatabaseChecker.setWindowTitle("DatabaseChecker")
|
||||
DatabaseChecker.setWindowTitle(u"DatabaseChecker")
|
||||
self.formLayout = QFormLayout(DatabaseChecker)
|
||||
self.formLayout.setObjectName("formLayout")
|
||||
self.formLayout.setLabelAlignment(
|
||||
Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter
|
||||
)
|
||||
self.formLayout.setObjectName(u"formLayout")
|
||||
self.formLayout.setLabelAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
|
||||
self.label = QLabel(DatabaseChecker)
|
||||
self.label.setObjectName("label")
|
||||
self.label.setObjectName(u"label")
|
||||
|
||||
self.formLayout.setWidget(0, QFormLayout.LabelRole, self.label)
|
||||
|
||||
self.dbFileSelector = FileSelector(DatabaseChecker)
|
||||
self.dbFileSelector.setObjectName("dbFileSelector")
|
||||
self.dbDirSelector = FileSelector(DatabaseChecker)
|
||||
self.dbDirSelector.setObjectName(u"dbDirSelector")
|
||||
|
||||
self.formLayout.setWidget(0, QFormLayout.FieldRole, self.dbFileSelector)
|
||||
self.formLayout.setWidget(0, QFormLayout.FieldRole, self.dbDirSelector)
|
||||
|
||||
self.label_2 = QLabel(DatabaseChecker)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.label_3 = QLabel(DatabaseChecker)
|
||||
self.label_3.setObjectName(u"label_3")
|
||||
|
||||
self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_2)
|
||||
self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_3)
|
||||
|
||||
self.dbFilenameLineEdit = QLineEdit(DatabaseChecker)
|
||||
self.dbFilenameLineEdit.setObjectName(u"dbFilenameLineEdit")
|
||||
|
||||
self.formLayout.setWidget(1, QFormLayout.FieldRole, self.dbFilenameLineEdit)
|
||||
|
||||
self.horizontalLayout = QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
||||
|
||||
self.horizontalLayout.addItem(self.horizontalSpacer)
|
||||
|
||||
self.confirmDbPathButton = QPushButton(DatabaseChecker)
|
||||
self.confirmDbPathButton.setObjectName(u"confirmDbPathButton")
|
||||
sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.confirmDbPathButton.sizePolicy().hasHeightForWidth())
|
||||
self.confirmDbPathButton.setSizePolicy(sizePolicy)
|
||||
|
||||
self.horizontalLayout.addWidget(self.confirmDbPathButton)
|
||||
|
||||
|
||||
self.formLayout.setLayout(2, QFormLayout.FieldRole, self.horizontalLayout)
|
||||
|
||||
self.dbVersionLabel = QLabel(DatabaseChecker)
|
||||
self.dbVersionLabel.setObjectName("dbVersionLabel")
|
||||
self.dbVersionLabel.setText("-")
|
||||
self.dbVersionLabel.setObjectName(u"dbVersionLabel")
|
||||
self.dbVersionLabel.setText(u"-")
|
||||
|
||||
self.formLayout.setWidget(1, QFormLayout.FieldRole, self.dbVersionLabel)
|
||||
self.formLayout.setWidget(4, QFormLayout.FieldRole, self.dbVersionLabel)
|
||||
|
||||
self.label_4 = QLabel(DatabaseChecker)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
|
||||
|
||||
self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_4)
|
||||
self.formLayout.setItem(6, QFormLayout.FieldRole, self.verticalSpacer)
|
||||
|
||||
self.label_5 = QLabel(DatabaseChecker)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.label_5.setObjectName(u"label_5")
|
||||
|
||||
self.formLayout.setWidget(4, QFormLayout.LabelRole, self.label_5)
|
||||
|
||||
self.dbInitButton = QPushButton(DatabaseChecker)
|
||||
self.dbInitButton.setObjectName("dbInitButton")
|
||||
|
||||
self.formLayout.setWidget(2, QFormLayout.FieldRole, self.dbInitButton)
|
||||
self.formLayout.setWidget(7, QFormLayout.LabelRole, self.label_5)
|
||||
|
||||
self.dbCheckConnLabel = QLabel(DatabaseChecker)
|
||||
self.dbCheckConnLabel.setObjectName("dbCheckConnLabel")
|
||||
self.dbCheckConnLabel.setText("...")
|
||||
self.dbCheckConnLabel.setObjectName(u"dbCheckConnLabel")
|
||||
self.dbCheckConnLabel.setText(u"...")
|
||||
|
||||
self.formLayout.setWidget(4, QFormLayout.FieldRole, self.dbCheckConnLabel)
|
||||
|
||||
self.verticalSpacer = QSpacerItem(
|
||||
20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
|
||||
)
|
||||
|
||||
self.formLayout.setItem(3, QFormLayout.FieldRole, self.verticalSpacer)
|
||||
self.formLayout.setWidget(7, QFormLayout.FieldRole, self.dbCheckConnLabel)
|
||||
|
||||
self.continueButton = QPushButton(DatabaseChecker)
|
||||
self.continueButton.setObjectName("continueButton")
|
||||
self.continueButton.setObjectName(u"continueButton")
|
||||
self.continueButton.setEnabled(False)
|
||||
|
||||
self.formLayout.setWidget(5, QFormLayout.SpanningRole, self.continueButton)
|
||||
self.formLayout.setWidget(8, QFormLayout.SpanningRole, self.continueButton)
|
||||
|
||||
self.label_2 = QLabel(DatabaseChecker)
|
||||
self.label_2.setObjectName(u"label_2")
|
||||
|
||||
self.formLayout.setWidget(4, QFormLayout.LabelRole, self.label_2)
|
||||
|
||||
self.line = QFrame(DatabaseChecker)
|
||||
self.line.setObjectName(u"line")
|
||||
self.line.setFrameShape(QFrame.HLine)
|
||||
self.line.setFrameShadow(QFrame.Sunken)
|
||||
|
||||
self.formLayout.setWidget(3, QFormLayout.SpanningRole, self.line)
|
||||
|
||||
|
||||
self.retranslateUi(DatabaseChecker)
|
||||
|
||||
QMetaObject.connectSlotsByName(DatabaseChecker)
|
||||
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, DatabaseChecker):
|
||||
self.label.setText(
|
||||
QCoreApplication.translate("DatabaseChecker", "dbPathLabel", None)
|
||||
)
|
||||
self.label_2.setText(
|
||||
QCoreApplication.translate("DatabaseChecker", "dbVersionLabel", None)
|
||||
)
|
||||
self.label_4.setText(
|
||||
QCoreApplication.translate("DatabaseChecker", "dbInitLabel", None)
|
||||
)
|
||||
self.label_5.setText(
|
||||
QCoreApplication.translate("DatabaseChecker", "dbCheckConnLabel", None)
|
||||
)
|
||||
self.dbInitButton.setText(
|
||||
QCoreApplication.translate("DatabaseChecker", "dbInitButton", None)
|
||||
)
|
||||
self.continueButton.setText(
|
||||
QCoreApplication.translate("DatabaseChecker", "continueButton", None)
|
||||
)
|
||||
self.label.setText(QCoreApplication.translate("DatabaseChecker", u"dbPathLabel", None))
|
||||
self.label_3.setText(QCoreApplication.translate("DatabaseChecker", u"dbFilenameLabel", None))
|
||||
self.confirmDbPathButton.setText(QCoreApplication.translate("DatabaseChecker", u"confirmDbPathButton", None))
|
||||
self.label_5.setText(QCoreApplication.translate("DatabaseChecker", u"dbCheckConnLabel", None))
|
||||
self.continueButton.setText(QCoreApplication.translate("DatabaseChecker", u"continueButton", None))
|
||||
self.label_2.setText(QCoreApplication.translate("DatabaseChecker", u"dbVersionLabel", None))
|
||||
pass
|
||||
|
||||
# retranslateUi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user