rscder-pub/rscder/gui/license.py
2023-07-29 16:51:51 +08:00

77 lines
3.1 KiB
Python

import shutil
from PyQt5 import QtWidgets
from PyQt5 import QtCore
from PyQt5.QtGui import QIcon
import os
from rscder.utils.icons import IconInstance
from rscder.utils.license import LicenseHelper
from rscder.utils.setting import Settings
class License(QtWidgets.QDialog):
def __init__(self, parent = None, flags = QtCore.Qt.WindowFlags() ) -> None:
super().__init__(parent, flags)
self.setWindowTitle("证书")
self.setWindowIcon(IconInstance(parent).LOGO)
self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint)
self.setFixedSize(600, 400)
self.text = QtWidgets.QLineEdit()
self.text.setReadOnly(False)
self.label = QtWidgets.QLabel()
self.label.setText("证书文件路径: ")
self.setModal(True)
self.btn_open = QtWidgets.QPushButton("打开")
self.btn_open.clicked.connect(self.open_file)
hlayout = QtWidgets.QHBoxLayout()
hlayout.addWidget(self.label, 0, alignment=QtCore.Qt.AlignTop)
hlayout.addWidget(self.text, 0, alignment=QtCore.Qt.AlignTop)
hlayout.addWidget(self.btn_open, 0, alignment=QtCore.Qt.AlignTop)
self.btn_ok = QtWidgets.QPushButton("确定")
self.btn_ok.clicked.connect(self.ok_clicked)
hlayout2 = QtWidgets.QHBoxLayout()
hlayout2.addWidget(self.btn_ok, alignment = QtCore.Qt.AlignRight, stretch= 0)
vlayout = QtWidgets.QVBoxLayout()
infobox = QtWidgets.QTextEdit(self)
infobox.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
infobox.setPlainText("""
This program is NOT free software: you can NOT redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Copy the MAC address to the clipboard and send it to the developer.
MAC address: {}""".format(LicenseHelper().get_mac_address()))
vlayout.addLayout(hlayout)
vlayout.addWidget(infobox)
vlayout.addLayout(hlayout2)
self.setLayout(vlayout)
def open_file(self) -> None:
file_path = QtWidgets.QFileDialog.getOpenFileName(self, "打开文件", "", "License Files (*.*)")
if file_path[0]:
self.text.setText(file_path[0])
# self.label.setText("License File Path: " + file_path[0])
def ok_clicked(self) -> None:
if self.text.text() == "":
QtWidgets.QMessageBox.warning(self, "Warning", "Please select a license file.")
else:
pth = self.text.text()
if not os.path.exists(pth):
QtWidgets.QMessageBox.warning(self, "Warning", "The selected file does not exist.")
else:
lic_path = Settings.General().lic_path
os.makedirs(os.path.dirname(lic_path), exist_ok=True)
shutil.copy(pth, lic_path)
self.accept()
self.close()