diff --git a/rare/components/tabs/settings/about.py b/rare/components/tabs/settings/about.py index 67d33993..c00775f1 100644 --- a/rare/components/tabs/settings/about.py +++ b/rare/components/tabs/settings/about.py @@ -1,9 +1,10 @@ import webbrowser -from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton +from PyQt5.QtWidgets import QWidget from rare import __version__ from rare.utils.utils import get_latest_version +from .about_ui import Ui_About def versiontuple(v): @@ -13,45 +14,27 @@ def versiontuple(v): return tuple((9, 9, 9)) # It is a beta version and newer -class About(QWidget): +class About(QWidget, Ui_About): def __init__(self): super(About, self).__init__() - self.layout = QVBoxLayout() + self.setupUi(self) - self.title = QLabel("

About

") - self.layout.addWidget(self.title) + self.version.setText(__version__) + + self.update_lbl.setVisible(False) + self.update.setVisible(False) + self.open_browser.setVisible(False) - self.version = QLabel("Version: " + __version__) - self.layout.addWidget(self.version) latest_tag = get_latest_version() self.update_available = versiontuple(latest_tag) > versiontuple(__version__) + + self.update.setText("{} -> {}".format(__version__, latest_tag)) + + self.open_browser.clicked.connect( + lambda: webbrowser.open("https://github.com/Dummerle/Rare/releases/latest")) + if self.update_available: print(f"Update available: {__version__} -> {latest_tag}") - self.update_available = QLabel(self.tr("Update available: {} -> {}").format(__version__, latest_tag)) - self.layout.addWidget(self.update_available) - self.open_browser = QPushButton(self.tr("Download latest release")) - self.layout.addWidget(self.open_browser) - self.open_browser.clicked.connect( - lambda: webbrowser.open("https://github.com/Dummerle/Rare/releases/latest")) - - self.dev = QLabel(self.tr("Developer:") + "Dummerle") - self.dev.setToolTip("Github") - self.dev.setOpenExternalLinks(True) - self.dev.setWordWrap(True) - self.layout.addWidget(self.dev) - self.lgd_dev = QLabel(self.tr("Legendary developer:") + "derrod") - self.lgd_dev.setOpenExternalLinks(True) - self.lgd_dev.setToolTip("Github") - self.layout.addWidget(self.lgd_dev) - self.license = QLabel("License: GNU General Public License v3.0") - self.layout.addWidget(self.license) - self.info_text = QLabel( - self.tr("This is a beta version, so you can get bugs. If you get a bug, please report it by creating a " - "Issue on Github. You can also contact me " - "on Discord (Dummerle#7419). Or you can join the Discord server")) - self.info_text.setWordWrap(True) - self.info_text.setOpenExternalLinks(True) - self.layout.addWidget(self.info_text) - - self.layout.addStretch() - self.setLayout(self.layout) + self.update_lbl.setVisible(True) + self.update.setVisible(True) + self.open_browser.setVisible(True) diff --git a/rare/components/tabs/settings/about_ui.py b/rare/components/tabs/settings/about_ui.py new file mode 100644 index 00000000..351b103f --- /dev/null +++ b/rare/components/tabs/settings/about_ui.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'about.ui' +# +# Created by: PyQt5 UI code generator 5.15.4 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_About(object): + def setupUi(self, About): + About.setObjectName("About") + About.resize(499, 396) + self.gridLayout = QtWidgets.QGridLayout(About) + self.gridLayout.setObjectName("gridLayout") + self.title = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.title.sizePolicy().hasHeightForWidth()) + self.title.setSizePolicy(sizePolicy) + self.title.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.title.setObjectName("title") + self.gridLayout.addWidget(self.title, 0, 0, 1, 3) + self.version_lbl = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.version_lbl.sizePolicy().hasHeightForWidth()) + self.version_lbl.setSizePolicy(sizePolicy) + self.version_lbl.setObjectName("version_lbl") + self.gridLayout.addWidget(self.version_lbl, 1, 0, 1, 1) + self.license = QtWidgets.QLabel(About) + self.license.setObjectName("license") + self.gridLayout.addWidget(self.license, 7, 1, 1, 3) + self.license_lbl = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.license_lbl.sizePolicy().hasHeightForWidth()) + self.license_lbl.setSizePolicy(sizePolicy) + self.license_lbl.setObjectName("license_lbl") + self.gridLayout.addWidget(self.license_lbl, 7, 0, 1, 1) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.gridLayout.addItem(spacerItem, 14, 0, 1, 4) + self.dev_lbl = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dev_lbl.sizePolicy().hasHeightForWidth()) + self.dev_lbl.setSizePolicy(sizePolicy) + self.dev_lbl.setObjectName("dev_lbl") + self.gridLayout.addWidget(self.dev_lbl, 5, 0, 1, 1) + self.lgd_dev_lbl = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lgd_dev_lbl.sizePolicy().hasHeightForWidth()) + self.lgd_dev_lbl.setSizePolicy(sizePolicy) + self.lgd_dev_lbl.setObjectName("lgd_dev_lbl") + self.gridLayout.addWidget(self.lgd_dev_lbl, 6, 0, 1, 1) + self.update_lbl = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.update_lbl.sizePolicy().hasHeightForWidth()) + self.update_lbl.setSizePolicy(sizePolicy) + self.update_lbl.setObjectName("update_lbl") + self.gridLayout.addWidget(self.update_lbl, 2, 0, 1, 1) + self.lgd_dev = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lgd_dev.sizePolicy().hasHeightForWidth()) + self.lgd_dev.setSizePolicy(sizePolicy) + self.lgd_dev.setOpenExternalLinks(True) + self.lgd_dev.setObjectName("lgd_dev") + self.gridLayout.addWidget(self.lgd_dev, 6, 1, 1, 3) + self.dev = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dev.sizePolicy().hasHeightForWidth()) + self.dev.setSizePolicy(sizePolicy) + self.dev.setOpenExternalLinks(True) + self.dev.setObjectName("dev") + self.gridLayout.addWidget(self.dev, 5, 1, 1, 3) + self.update = QtWidgets.QLabel(About) + self.update.setObjectName("update") + self.gridLayout.addWidget(self.update, 2, 1, 1, 3) + self.version = QtWidgets.QLabel(About) + self.version.setObjectName("version") + self.gridLayout.addWidget(self.version, 1, 1, 1, 3) + self.open_browser = QtWidgets.QPushButton(About) + self.open_browser.setObjectName("open_browser") + self.gridLayout.addWidget(self.open_browser, 4, 0, 1, 4) + self.info_text = QtWidgets.QLabel(About) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.info_text.sizePolicy().hasHeightForWidth()) + self.info_text.setSizePolicy(sizePolicy) + self.info_text.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.info_text.setWordWrap(True) + self.info_text.setOpenExternalLinks(True) + self.info_text.setObjectName("info_text") + self.gridLayout.addWidget(self.info_text, 8, 0, 1, 4) + + self.retranslateUi(About) + QtCore.QMetaObject.connectSlotsByName(About) + + def retranslateUi(self, About): + _translate = QtCore.QCoreApplication.translate + About.setWindowTitle(_translate("About", "Form")) + self.title.setText(_translate("About", "

About

")) + self.version_lbl.setText(_translate("About", "Version: ")) + self.license.setText(_translate("About", "GNU General Public License v3.0")) + self.license_lbl.setText(_translate("About", "License:")) + self.dev_lbl.setText(_translate("About", "Rare Developer:")) + self.lgd_dev_lbl.setText(_translate("About", "Legendary Developer:")) + self.update_lbl.setText(_translate("About", "Update available: ")) + self.lgd_dev.setText(_translate("About", "derrod")) + self.dev.setText(_translate("About", "Dummerle")) + self.update.setText(_translate("About", "update")) + self.version.setText(_translate("About", "version")) + self.open_browser.setText(_translate("About", "Download latest release")) + self.info_text.setText(_translate("About", "This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on Github. You can also contact me on Discord (Dummerle#7419). Or you can join the Discord server")) + + +if __name__ == "__main__": + import sys + app = QtWidgets.QApplication(sys.argv) + About = QtWidgets.QWidget() + ui = Ui_About() + ui.setupUi(About) + About.show() + sys.exit(app.exec_())