mirror of
https://github.com/NinjaCheetah/NUSGet.git
synced 2025-04-25 15:11:02 -04:00
Merge pull request #6 from yeah-its-gloria/main
This commit is contained in:
commit
58d3f7bd3e
129
NUSGet.py
129
NUSGet.py
@ -11,14 +11,14 @@ from importlib.metadata import version
|
|||||||
|
|
||||||
from PySide6.QtGui import QIcon
|
from PySide6.QtGui import QIcon
|
||||||
from PySide6.QtWidgets import (QApplication, QMainWindow, QMessageBox, QTreeWidgetItem, QHeaderView, QStyle,
|
from PySide6.QtWidgets import (QApplication, QMainWindow, QMessageBox, QTreeWidgetItem, QHeaderView, QStyle,
|
||||||
QStyleFactory)
|
QStyleFactory, QFileDialog)
|
||||||
from PySide6.QtCore import QRunnable, Slot, QThreadPool, Signal, QObject, QLibraryInfo, QTranslator, QLocale
|
from PySide6.QtCore import QRunnable, Slot, QThreadPool, Signal, QObject, QLibraryInfo, QTranslator, QLocale
|
||||||
|
|
||||||
from qt.py.ui_MainMenu import Ui_MainWindow
|
from qt.py.ui_MainMenu import Ui_MainWindow
|
||||||
|
|
||||||
from modules.core import *
|
from modules.core import *
|
||||||
from modules.download_wii import run_nus_download_wii
|
from modules.download_wii import run_nus_download_wii, run_nus_download_wii_batch
|
||||||
from modules.download_dsi import run_nus_download_dsi
|
from modules.download_dsi import run_nus_download_dsi, run_nus_download_dsi_batch
|
||||||
|
|
||||||
nusget_version = "1.2.0"
|
nusget_version = "1.2.0"
|
||||||
|
|
||||||
@ -63,6 +63,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.ui.setupUi(self)
|
self.ui.setupUi(self)
|
||||||
self.threadpool = QThreadPool()
|
self.threadpool = QThreadPool()
|
||||||
self.ui.download_btn.clicked.connect(self.download_btn_pressed)
|
self.ui.download_btn.clicked.connect(self.download_btn_pressed)
|
||||||
|
self.ui.script_btn.clicked.connect(self.script_btn_pressed)
|
||||||
self.ui.pack_archive_chkbox.clicked.connect(self.pack_wad_chkbox_toggled)
|
self.ui.pack_archive_chkbox.clicked.connect(self.pack_wad_chkbox_toggled)
|
||||||
self.ui.tid_entry.textChanged.connect(self.tid_updated)
|
self.ui.tid_entry.textChanged.connect(self.tid_updated)
|
||||||
# noinspection PyUnresolvedReferences
|
# noinspection PyUnresolvedReferences
|
||||||
@ -124,6 +125,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
tree[0].insertTopLevelItems(0, self.tree_categories)
|
tree[0].insertTopLevelItems(0, self.tree_categories)
|
||||||
# Connect the double click signal for handling when titles are selected.
|
# Connect the double click signal for handling when titles are selected.
|
||||||
tree[0].itemDoubleClicked.connect(self.onItemClicked)
|
tree[0].itemDoubleClicked.connect(self.onItemClicked)
|
||||||
|
|
||||||
|
# Prevent resizing, Qt makes us look stupid here
|
||||||
|
self.setFixedSize(self.size())
|
||||||
|
|
||||||
# Do a quick check to see if there's a newer release available, and inform the user if there is.
|
# Do a quick check to see if there's a newer release available, and inform the user if there is.
|
||||||
worker = Worker(check_nusget_updates, app, nusget_version)
|
worker = Worker(check_nusget_updates, app, nusget_version)
|
||||||
worker.signals.result.connect(self.prompt_for_update)
|
worker.signals.result.connect(self.prompt_for_update)
|
||||||
@ -230,6 +235,24 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.log_text = f"{tid} - {selected_title.name}\nVersion: {selected_title.version}\n\n{danger_text}\n"
|
self.log_text = f"{tid} - {selected_title.name}\nVersion: {selected_title.version}\n\n{danger_text}\n"
|
||||||
self.ui.log_text_browser.setText(self.log_text)
|
self.ui.log_text_browser.setText(self.log_text)
|
||||||
|
|
||||||
|
def lock_ui_for_download(self):
|
||||||
|
# Lock the UI prior to the download beginning to avoid spawning multiple threads or changing info part way in.
|
||||||
|
# Also resets the log.
|
||||||
|
self.ui.tid_entry.setEnabled(False)
|
||||||
|
self.ui.version_entry.setEnabled(False)
|
||||||
|
self.ui.download_btn.setEnabled(False)
|
||||||
|
self.ui.script_btn.setEnabled(False)
|
||||||
|
self.ui.pack_archive_chkbox.setEnabled(False)
|
||||||
|
self.ui.keep_enc_chkbox.setEnabled(False)
|
||||||
|
self.ui.create_dec_chkbox.setEnabled(False)
|
||||||
|
self.ui.use_local_chkbox.setEnabled(False)
|
||||||
|
self.ui.use_wiiu_nus_chkbox.setEnabled(False)
|
||||||
|
self.ui.pack_vwii_mode_chkbox.setEnabled(False)
|
||||||
|
self.ui.archive_file_entry.setEnabled(False)
|
||||||
|
self.ui.console_select_dropdown.setEnabled(False)
|
||||||
|
self.log_text = ""
|
||||||
|
self.ui.log_text_browser.setText(self.log_text)
|
||||||
|
|
||||||
def download_btn_pressed(self):
|
def download_btn_pressed(self):
|
||||||
# Throw an error and make a message box appear if you haven't selected any options to output the title.
|
# Throw an error and make a message box appear if you haven't selected any options to output the title.
|
||||||
if (self.ui.pack_archive_chkbox.isChecked() is False and self.ui.keep_enc_chkbox.isChecked() is False and
|
if (self.ui.pack_archive_chkbox.isChecked() is False and self.ui.keep_enc_chkbox.isChecked() is False and
|
||||||
@ -244,20 +267,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
"like the download to be saved."))
|
"like the download to be saved."))
|
||||||
msg_box.exec()
|
msg_box.exec()
|
||||||
return
|
return
|
||||||
# Lock the UI prior to the download beginning to avoid spawning multiple threads or changing info part way in.
|
|
||||||
self.ui.tid_entry.setEnabled(False)
|
self.lock_ui_for_download()
|
||||||
self.ui.version_entry.setEnabled(False)
|
|
||||||
self.ui.download_btn.setEnabled(False)
|
|
||||||
self.ui.pack_archive_chkbox.setEnabled(False)
|
|
||||||
self.ui.keep_enc_chkbox.setEnabled(False)
|
|
||||||
self.ui.create_dec_chkbox.setEnabled(False)
|
|
||||||
self.ui.use_local_chkbox.setEnabled(False)
|
|
||||||
self.ui.use_wiiu_nus_chkbox.setEnabled(False)
|
|
||||||
self.ui.pack_vwii_mode_chkbox.setEnabled(False)
|
|
||||||
self.ui.archive_file_entry.setEnabled(False)
|
|
||||||
self.ui.console_select_dropdown.setEnabled(False)
|
|
||||||
self.log_text = ""
|
|
||||||
self.ui.log_text_browser.setText(self.log_text)
|
|
||||||
# Create a new worker object to handle the download in a new thread.
|
# Create a new worker object to handle the download in a new thread.
|
||||||
if self.ui.console_select_dropdown.currentText() == "DSi":
|
if self.ui.console_select_dropdown.currentText() == "DSi":
|
||||||
worker = Worker(run_nus_download_dsi, out_folder, self.ui.tid_entry.text(),
|
worker = Worker(run_nus_download_dsi, out_folder, self.ui.tid_entry.text(),
|
||||||
@ -318,6 +330,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.ui.tid_entry.setEnabled(True)
|
self.ui.tid_entry.setEnabled(True)
|
||||||
self.ui.version_entry.setEnabled(True)
|
self.ui.version_entry.setEnabled(True)
|
||||||
self.ui.download_btn.setEnabled(True)
|
self.ui.download_btn.setEnabled(True)
|
||||||
|
self.ui.script_btn.setEnabled(True)
|
||||||
self.ui.pack_archive_chkbox.setEnabled(True)
|
self.ui.pack_archive_chkbox.setEnabled(True)
|
||||||
self.ui.keep_enc_chkbox.setEnabled(True)
|
self.ui.keep_enc_chkbox.setEnabled(True)
|
||||||
self.ui.create_dec_chkbox.setEnabled(True)
|
self.ui.create_dec_chkbox.setEnabled(True)
|
||||||
@ -347,6 +360,88 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
elif self.ui.console_select_dropdown.currentText() == "DSi":
|
elif self.ui.console_select_dropdown.currentText() == "DSi":
|
||||||
self.ui.pack_vwii_mode_chkbox.setEnabled(False)
|
self.ui.pack_vwii_mode_chkbox.setEnabled(False)
|
||||||
|
|
||||||
|
def script_btn_pressed(self):
|
||||||
|
file_name = QFileDialog.getOpenFileName(self, caption=app.translate("MainWindow", "Open NUS script"), filter=app.translate("MainWindow", "NUS Scripts (*.nus *.txt)"), options=QFileDialog.Option.ReadOnly)
|
||||||
|
if len(file_name[0]) == 0:
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
file = open(file_name[0], "r")
|
||||||
|
except:
|
||||||
|
QMessageBox.critical(self, app.translate("MainWindow", "Script Failure"), app.translate("MainWindow", "Failed to open the script."), buttons=QMessageBox.StandardButton.Ok, defaultButton=QMessageBox.StandardButton.Ok)
|
||||||
|
return
|
||||||
|
|
||||||
|
content = file.readlines()
|
||||||
|
|
||||||
|
# Decoding NUS Scripts
|
||||||
|
# NUS Scripts are plaintext UTF-8 files that list a title per line, terminated with newlines.
|
||||||
|
# Every title is its u64 TID, a space and its u16 version, *both* written in hexadecimal.
|
||||||
|
# NUS itself expects versions as decimal notation, so they need to be decoded first, but TIDs are always written in hexadecimal notation.
|
||||||
|
|
||||||
|
titles = []
|
||||||
|
|
||||||
|
for index, title in enumerate(content):
|
||||||
|
decoded = title.replace("\n", "").split(" ", 1)
|
||||||
|
if len(decoded[0]) != 16:
|
||||||
|
QMessageBox.critical(self, app.translate("MainWindow", "Script Failure"), app.translate("MainWindow", "The TID for title #%n is not valid.", "", index+1), buttons=QMessageBox.StandardButton.Ok, defaultButton=QMessageBox.StandardButton.Ok)
|
||||||
|
return
|
||||||
|
elif len(decoded[1]) != 4:
|
||||||
|
QMessageBox.critical(self, app.translate("MainWindow", "Script Failure"), app.translate("MainWindow", "The version for title #%n is not valid.", "", index+1), buttons=QMessageBox.StandardButton.Ok, defaultButton=QMessageBox.StandardButton.Ok)
|
||||||
|
return
|
||||||
|
|
||||||
|
tid = decoded[0]
|
||||||
|
|
||||||
|
try:
|
||||||
|
version = int(decoded[1], 16)
|
||||||
|
except:
|
||||||
|
QMessageBox.critical(self, app.translate("MainWindow", "Script Failure"), app.translate("MainWindow", "The version for title #%n is not valid.", "", index+1), buttons=QMessageBox.StandardButton.Ok, defaultButton=QMessageBox.StandardButton.Ok)
|
||||||
|
return
|
||||||
|
|
||||||
|
title = None
|
||||||
|
for category in self.trees[self.ui.platform_tabs.currentIndex()][1]:
|
||||||
|
for title_ in self.trees[self.ui.platform_tabs.currentIndex()][1][category]:
|
||||||
|
# The last two digits are either identifying the title type (e.g IOS slot, BC type, etc) or a region code; in case of the latter, skip the region here to match it
|
||||||
|
if not ((title_["TID"][-2:] == "XX" and title_["TID"][:-2] == tid[:-2]) or title_["TID"] == tid):
|
||||||
|
continue
|
||||||
|
|
||||||
|
found_ver = False
|
||||||
|
for region in title_["Versions"]:
|
||||||
|
for db_version in title_["Versions"][region]:
|
||||||
|
if db_version == version:
|
||||||
|
found_ver = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if not found_ver:
|
||||||
|
QMessageBox.critical(self, app.translate("MainWindow", "Script Failure"), app.translate("MainWindow", "The version for title #%n could not be discovered in the database.", "", index+1), buttons=QMessageBox.StandardButton.Ok, defaultButton=QMessageBox.StandardButton.Ok)
|
||||||
|
return
|
||||||
|
|
||||||
|
title = title_
|
||||||
|
break
|
||||||
|
|
||||||
|
if title == None:
|
||||||
|
QMessageBox.critical(self, app.translate("MainWindow", "Script Failure"), app.translate("MainWindow", "Title #%n could not be discovered in the database.", "", index+1), buttons=QMessageBox.StandardButton.Ok, defaultButton=QMessageBox.StandardButton.Ok)
|
||||||
|
return
|
||||||
|
|
||||||
|
titles.append((title["TID"], str(version), title["Archive Name"]))
|
||||||
|
|
||||||
|
self.lock_ui_for_download()
|
||||||
|
|
||||||
|
self.update_log_text(f"Found {len(titles)} titles, starting batch download.")
|
||||||
|
|
||||||
|
if self.ui.console_select_dropdown.currentText() == "DSi":
|
||||||
|
worker = Worker(run_nus_download_dsi_batch, out_folder, titles, self.ui.pack_archive_chkbox.isChecked(),
|
||||||
|
self.ui.keep_enc_chkbox.isChecked(), self.ui.create_dec_chkbox.isChecked(),
|
||||||
|
self.ui.use_local_chkbox.isChecked(), self.ui.archive_file_entry.text())
|
||||||
|
else:
|
||||||
|
worker = Worker(run_nus_download_wii_batch, out_folder, titles, self.ui.pack_archive_chkbox.isChecked(),
|
||||||
|
self.ui.keep_enc_chkbox.isChecked(), self.ui.create_dec_chkbox.isChecked(),
|
||||||
|
self.ui.use_wiiu_nus_chkbox.isChecked(), self.ui.use_local_chkbox.isChecked(),
|
||||||
|
self.ui.pack_vwii_mode_chkbox.isChecked(), self.ui.patch_ios_chkbox.isChecked())
|
||||||
|
|
||||||
|
worker.signals.result.connect(self.check_download_result)
|
||||||
|
worker.signals.progress.connect(self.update_log_text)
|
||||||
|
self.threadpool.start(worker)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
|
from typing import List, Tuple
|
||||||
|
|
||||||
import libTWLPy
|
import libTWLPy
|
||||||
|
|
||||||
@ -116,7 +117,7 @@ def run_nus_download_dsi(out_folder: pathlib.Path, tid: str, version: str, pack_
|
|||||||
title.tad.set_cert_data(libTWLPy.download_cert())
|
title.tad.set_cert_data(libTWLPy.download_cert())
|
||||||
# Use a typed TAD name if there is one, and auto generate one based on the TID and version if there isn't.
|
# Use a typed TAD name if there is one, and auto generate one based on the TID and version if there isn't.
|
||||||
progress_callback.emit("Packing TAD...")
|
progress_callback.emit("Packing TAD...")
|
||||||
if tad_file_name != "":
|
if tad_file_name != "" and tad_file_name is not None:
|
||||||
if tad_file_name[-4:] != ".tad":
|
if tad_file_name[-4:] != ".tad":
|
||||||
tad_file_name = tad_file_name + ".tad"
|
tad_file_name = tad_file_name + ".tad"
|
||||||
else:
|
else:
|
||||||
@ -132,3 +133,13 @@ def run_nus_download_dsi(out_folder: pathlib.Path, tid: str, version: str, pack_
|
|||||||
if (not pack_tad_enabled and pack_tad_chkbox) or (not decrypt_contents_enabled and decrypt_contents_chkbox):
|
if (not pack_tad_enabled and pack_tad_chkbox) or (not decrypt_contents_enabled and decrypt_contents_chkbox):
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def run_nus_download_dsi_batch(out_folder: pathlib.Path, titles: List[Tuple[str, str, str]], pack_tad_chkbox: bool, keep_enc_chkbox: bool,
|
||||||
|
decrypt_contents_chkbox: bool, use_local_chkbox: bool, progress_callback=None):
|
||||||
|
for title in titles:
|
||||||
|
result = run_nus_download_dsi(out_folder, title[0], title[1], pack_tad_chkbox, keep_enc_chkbox, decrypt_contents_chkbox, use_local_chkbox, f"{title[2]}-{title[1]}.tad", progress_callback)
|
||||||
|
if result != 0:
|
||||||
|
return result
|
||||||
|
|
||||||
|
progress_callback.emit(f"Batch download finished.")
|
||||||
|
return 0
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
|
from typing import List, Tuple
|
||||||
|
|
||||||
import libWiiPy
|
import libWiiPy
|
||||||
|
|
||||||
@ -138,7 +139,7 @@ def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_
|
|||||||
title.wad.set_cert_data(libWiiPy.title.download_cert(wiiu_endpoint=wiiu_nus_enabled))
|
title.wad.set_cert_data(libWiiPy.title.download_cert(wiiu_endpoint=wiiu_nus_enabled))
|
||||||
# Use a typed WAD name if there is one, and auto generate one based on the TID and version if there isn't.
|
# Use a typed WAD name if there is one, and auto generate one based on the TID and version if there isn't.
|
||||||
progress_callback.emit(" - Packing WAD...")
|
progress_callback.emit(" - Packing WAD...")
|
||||||
if wad_file_name != "":
|
if wad_file_name != "" and wad_file_name is not None:
|
||||||
if wad_file_name[-4:] != ".wad":
|
if wad_file_name[-4:] != ".wad":
|
||||||
wad_file_name = wad_file_name + ".wad"
|
wad_file_name = wad_file_name + ".wad"
|
||||||
else:
|
else:
|
||||||
@ -165,3 +166,14 @@ def run_nus_download_wii(out_folder: pathlib.Path, tid: str, version: str, pack_
|
|||||||
if (not pack_wad_enabled and pack_wad_chkbox) or (not decrypt_contents_enabled and decrypt_contents_chkbox):
|
if (not pack_wad_enabled and pack_wad_chkbox) or (not decrypt_contents_enabled and decrypt_contents_chkbox):
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def run_nus_download_wii_batch(out_folder: pathlib.Path, titles: List[Tuple[str, str, str]], pack_wad_chkbox: bool, keep_enc_chkbox: bool,
|
||||||
|
decrypt_contents_chkbox: bool, wiiu_nus_chkbox: bool, use_local_chkbox: bool,
|
||||||
|
repack_vwii_chkbox: bool, patch_ios: bool, progress_callback=None):
|
||||||
|
for title in titles:
|
||||||
|
result = run_nus_download_wii(out_folder, title[0], title[1], pack_wad_chkbox, keep_enc_chkbox, decrypt_contents_chkbox, wiiu_nus_chkbox, use_local_chkbox, repack_vwii_chkbox, patch_ios, f"{title[2]}-{title[1]}.wad", progress_callback)
|
||||||
|
if result != 0:
|
||||||
|
return result
|
||||||
|
|
||||||
|
progress_callback.emit(f"Batch download finished.")
|
||||||
|
return 0
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
## Form generated from reading UI file 'MainMenu.ui'
|
## Form generated from reading UI file 'MainMenu.ui'
|
||||||
##
|
##
|
||||||
## Created by: Qt User Interface Compiler version 6.7.2
|
## Created by: Qt User Interface Compiler version 6.8.0
|
||||||
##
|
##
|
||||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -32,6 +32,7 @@ class Ui_MainWindow(object):
|
|||||||
self.centralwidget.setObjectName(u"centralwidget")
|
self.centralwidget.setObjectName(u"centralwidget")
|
||||||
self.horizontalLayout_3 = QHBoxLayout(self.centralwidget)
|
self.horizontalLayout_3 = QHBoxLayout(self.centralwidget)
|
||||||
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
||||||
|
self.horizontalLayout_3.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint)
|
||||||
self.vertical_layout_trees = QVBoxLayout()
|
self.vertical_layout_trees = QVBoxLayout()
|
||||||
self.vertical_layout_trees.setObjectName(u"vertical_layout_trees")
|
self.vertical_layout_trees.setObjectName(u"vertical_layout_trees")
|
||||||
self.label_2 = QLabel(self.centralwidget)
|
self.label_2 = QLabel(self.centralwidget)
|
||||||
@ -111,7 +112,7 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.vertical_layout_controls = QVBoxLayout()
|
self.vertical_layout_controls = QVBoxLayout()
|
||||||
self.vertical_layout_controls.setObjectName(u"vertical_layout_controls")
|
self.vertical_layout_controls.setObjectName(u"vertical_layout_controls")
|
||||||
self.vertical_layout_controls.setSizeConstraint(QLayout.SetDefaultConstraint)
|
self.vertical_layout_controls.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint)
|
||||||
self.horizontal_layout_title_entry = QHBoxLayout()
|
self.horizontal_layout_title_entry = QHBoxLayout()
|
||||||
self.horizontal_layout_title_entry.setObjectName(u"horizontal_layout_title_entry")
|
self.horizontal_layout_title_entry.setObjectName(u"horizontal_layout_title_entry")
|
||||||
self.tid_entry = QLineEdit(self.centralwidget)
|
self.tid_entry = QLineEdit(self.centralwidget)
|
||||||
@ -145,15 +146,38 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.vertical_layout_controls.addLayout(self.horizontal_layout_title_entry)
|
self.vertical_layout_controls.addLayout(self.horizontal_layout_title_entry)
|
||||||
|
|
||||||
|
self.horizontalLayout = QHBoxLayout()
|
||||||
|
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||||
self.download_btn = QPushButton(self.centralwidget)
|
self.download_btn = QPushButton(self.centralwidget)
|
||||||
self.download_btn.setObjectName(u"download_btn")
|
self.download_btn.setObjectName(u"download_btn")
|
||||||
|
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.Fixed)
|
||||||
|
sizePolicy1.setHorizontalStretch(0)
|
||||||
|
sizePolicy1.setVerticalStretch(0)
|
||||||
|
sizePolicy1.setHeightForWidth(self.download_btn.sizePolicy().hasHeightForWidth())
|
||||||
|
self.download_btn.setSizePolicy(sizePolicy1)
|
||||||
|
|
||||||
self.vertical_layout_controls.addWidget(self.download_btn)
|
self.horizontalLayout.addWidget(self.download_btn)
|
||||||
|
|
||||||
|
self.script_btn = QPushButton(self.centralwidget)
|
||||||
|
self.script_btn.setObjectName(u"script_btn")
|
||||||
|
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||||
|
sizePolicy2.setHorizontalStretch(0)
|
||||||
|
sizePolicy2.setVerticalStretch(0)
|
||||||
|
sizePolicy2.setHeightForWidth(self.script_btn.sizePolicy().hasHeightForWidth())
|
||||||
|
self.script_btn.setSizePolicy(sizePolicy2)
|
||||||
|
|
||||||
|
self.horizontalLayout.addWidget(self.script_btn)
|
||||||
|
|
||||||
|
|
||||||
|
self.vertical_layout_controls.addLayout(self.horizontalLayout)
|
||||||
|
|
||||||
self.horizontalLayout_5 = QHBoxLayout()
|
self.horizontalLayout_5 = QHBoxLayout()
|
||||||
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
|
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
|
||||||
|
self.horizontalLayout_5.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||||
self.verticalLayout_7 = QVBoxLayout()
|
self.verticalLayout_7 = QVBoxLayout()
|
||||||
|
self.verticalLayout_7.setSpacing(5)
|
||||||
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
|
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
|
||||||
|
self.verticalLayout_7.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||||
self.label_3 = QLabel(self.centralwidget)
|
self.label_3 = QLabel(self.centralwidget)
|
||||||
self.label_3.setObjectName(u"label_3")
|
self.label_3.setObjectName(u"label_3")
|
||||||
self.label_3.setFont(font)
|
self.label_3.setFont(font)
|
||||||
@ -161,20 +185,26 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addWidget(self.label_3)
|
self.verticalLayout_7.addWidget(self.label_3)
|
||||||
|
|
||||||
self.pack_archive_row = QHBoxLayout()
|
self.pack_archive_row = QHBoxLayout()
|
||||||
|
self.pack_archive_row.setSpacing(10)
|
||||||
self.pack_archive_row.setObjectName(u"pack_archive_row")
|
self.pack_archive_row.setObjectName(u"pack_archive_row")
|
||||||
self.pack_archive_chkbox = QCheckBox(self.centralwidget)
|
self.pack_archive_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.pack_archive_chkbox.setObjectName(u"pack_archive_chkbox")
|
self.pack_archive_chkbox.setObjectName(u"pack_archive_chkbox")
|
||||||
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed)
|
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed)
|
||||||
sizePolicy1.setHorizontalStretch(0)
|
sizePolicy3.setHorizontalStretch(0)
|
||||||
sizePolicy1.setVerticalStretch(0)
|
sizePolicy3.setVerticalStretch(0)
|
||||||
sizePolicy1.setHeightForWidth(self.pack_archive_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.pack_archive_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.pack_archive_chkbox.setSizePolicy(sizePolicy1)
|
self.pack_archive_chkbox.setSizePolicy(sizePolicy3)
|
||||||
self.pack_archive_chkbox.setText(u"")
|
self.pack_archive_chkbox.setText(u"")
|
||||||
|
|
||||||
self.pack_archive_row.addWidget(self.pack_archive_chkbox)
|
self.pack_archive_row.addWidget(self.pack_archive_chkbox)
|
||||||
|
|
||||||
self.label_7 = QLabel(self.centralwidget)
|
self.label_7 = QLabel(self.centralwidget)
|
||||||
self.label_7.setObjectName(u"label_7")
|
self.label_7.setObjectName(u"label_7")
|
||||||
|
sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.MinimumExpanding)
|
||||||
|
sizePolicy4.setHorizontalStretch(0)
|
||||||
|
sizePolicy4.setVerticalStretch(0)
|
||||||
|
sizePolicy4.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_7.setSizePolicy(sizePolicy4)
|
||||||
self.label_7.setWordWrap(True)
|
self.label_7.setWordWrap(True)
|
||||||
|
|
||||||
self.pack_archive_row.addWidget(self.label_7)
|
self.pack_archive_row.addWidget(self.label_7)
|
||||||
@ -189,11 +219,12 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addWidget(self.archive_file_entry)
|
self.verticalLayout_7.addWidget(self.archive_file_entry)
|
||||||
|
|
||||||
self.keep_enc_row = QHBoxLayout()
|
self.keep_enc_row = QHBoxLayout()
|
||||||
|
self.keep_enc_row.setSpacing(10)
|
||||||
self.keep_enc_row.setObjectName(u"keep_enc_row")
|
self.keep_enc_row.setObjectName(u"keep_enc_row")
|
||||||
self.keep_enc_chkbox = QCheckBox(self.centralwidget)
|
self.keep_enc_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.keep_enc_chkbox.setObjectName(u"keep_enc_chkbox")
|
self.keep_enc_chkbox.setObjectName(u"keep_enc_chkbox")
|
||||||
sizePolicy1.setHeightForWidth(self.keep_enc_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.keep_enc_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.keep_enc_chkbox.setSizePolicy(sizePolicy1)
|
self.keep_enc_chkbox.setSizePolicy(sizePolicy3)
|
||||||
self.keep_enc_chkbox.setText(u"")
|
self.keep_enc_chkbox.setText(u"")
|
||||||
self.keep_enc_chkbox.setChecked(True)
|
self.keep_enc_chkbox.setChecked(True)
|
||||||
|
|
||||||
@ -201,6 +232,8 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.label_6 = QLabel(self.centralwidget)
|
self.label_6 = QLabel(self.centralwidget)
|
||||||
self.label_6.setObjectName(u"label_6")
|
self.label_6.setObjectName(u"label_6")
|
||||||
|
sizePolicy4.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
|
||||||
|
self.label_6.setSizePolicy(sizePolicy4)
|
||||||
self.label_6.setWordWrap(True)
|
self.label_6.setWordWrap(True)
|
||||||
|
|
||||||
self.keep_enc_row.addWidget(self.label_6)
|
self.keep_enc_row.addWidget(self.label_6)
|
||||||
@ -209,17 +242,20 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addLayout(self.keep_enc_row)
|
self.verticalLayout_7.addLayout(self.keep_enc_row)
|
||||||
|
|
||||||
self.create_dec_row = QHBoxLayout()
|
self.create_dec_row = QHBoxLayout()
|
||||||
|
self.create_dec_row.setSpacing(10)
|
||||||
self.create_dec_row.setObjectName(u"create_dec_row")
|
self.create_dec_row.setObjectName(u"create_dec_row")
|
||||||
self.create_dec_chkbox = QCheckBox(self.centralwidget)
|
self.create_dec_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.create_dec_chkbox.setObjectName(u"create_dec_chkbox")
|
self.create_dec_chkbox.setObjectName(u"create_dec_chkbox")
|
||||||
sizePolicy1.setHeightForWidth(self.create_dec_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.create_dec_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.create_dec_chkbox.setSizePolicy(sizePolicy1)
|
self.create_dec_chkbox.setSizePolicy(sizePolicy3)
|
||||||
self.create_dec_chkbox.setText(u"")
|
self.create_dec_chkbox.setText(u"")
|
||||||
|
|
||||||
self.create_dec_row.addWidget(self.create_dec_chkbox)
|
self.create_dec_row.addWidget(self.create_dec_chkbox)
|
||||||
|
|
||||||
self.create_dec_chkbox_lbl = QLabel(self.centralwidget)
|
self.create_dec_chkbox_lbl = QLabel(self.centralwidget)
|
||||||
self.create_dec_chkbox_lbl.setObjectName(u"create_dec_chkbox_lbl")
|
self.create_dec_chkbox_lbl.setObjectName(u"create_dec_chkbox_lbl")
|
||||||
|
sizePolicy4.setHeightForWidth(self.create_dec_chkbox_lbl.sizePolicy().hasHeightForWidth())
|
||||||
|
self.create_dec_chkbox_lbl.setSizePolicy(sizePolicy4)
|
||||||
self.create_dec_chkbox_lbl.setWordWrap(True)
|
self.create_dec_chkbox_lbl.setWordWrap(True)
|
||||||
|
|
||||||
self.create_dec_row.addWidget(self.create_dec_chkbox_lbl)
|
self.create_dec_row.addWidget(self.create_dec_chkbox_lbl)
|
||||||
@ -228,18 +264,21 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addLayout(self.create_dec_row)
|
self.verticalLayout_7.addLayout(self.create_dec_row)
|
||||||
|
|
||||||
self.use_local_row = QHBoxLayout()
|
self.use_local_row = QHBoxLayout()
|
||||||
|
self.use_local_row.setSpacing(10)
|
||||||
self.use_local_row.setObjectName(u"use_local_row")
|
self.use_local_row.setObjectName(u"use_local_row")
|
||||||
self.use_local_chkbox = QCheckBox(self.centralwidget)
|
self.use_local_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.use_local_chkbox.setObjectName(u"use_local_chkbox")
|
self.use_local_chkbox.setObjectName(u"use_local_chkbox")
|
||||||
self.use_local_chkbox.setEnabled(True)
|
self.use_local_chkbox.setEnabled(True)
|
||||||
sizePolicy1.setHeightForWidth(self.use_local_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.use_local_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.use_local_chkbox.setSizePolicy(sizePolicy1)
|
self.use_local_chkbox.setSizePolicy(sizePolicy3)
|
||||||
self.use_local_chkbox.setText(u"")
|
self.use_local_chkbox.setText(u"")
|
||||||
|
|
||||||
self.use_local_row.addWidget(self.use_local_chkbox)
|
self.use_local_row.addWidget(self.use_local_chkbox)
|
||||||
|
|
||||||
self.use_local_chkbox_lbl = QLabel(self.centralwidget)
|
self.use_local_chkbox_lbl = QLabel(self.centralwidget)
|
||||||
self.use_local_chkbox_lbl.setObjectName(u"use_local_chkbox_lbl")
|
self.use_local_chkbox_lbl.setObjectName(u"use_local_chkbox_lbl")
|
||||||
|
sizePolicy4.setHeightForWidth(self.use_local_chkbox_lbl.sizePolicy().hasHeightForWidth())
|
||||||
|
self.use_local_chkbox_lbl.setSizePolicy(sizePolicy4)
|
||||||
self.use_local_chkbox_lbl.setWordWrap(True)
|
self.use_local_chkbox_lbl.setWordWrap(True)
|
||||||
|
|
||||||
self.use_local_row.addWidget(self.use_local_chkbox_lbl)
|
self.use_local_row.addWidget(self.use_local_chkbox_lbl)
|
||||||
@ -248,12 +287,14 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addLayout(self.use_local_row)
|
self.verticalLayout_7.addLayout(self.use_local_row)
|
||||||
|
|
||||||
self.use_wiiu_nus_row = QHBoxLayout()
|
self.use_wiiu_nus_row = QHBoxLayout()
|
||||||
|
self.use_wiiu_nus_row.setSpacing(10)
|
||||||
self.use_wiiu_nus_row.setObjectName(u"use_wiiu_nus_row")
|
self.use_wiiu_nus_row.setObjectName(u"use_wiiu_nus_row")
|
||||||
|
self.use_wiiu_nus_row.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint)
|
||||||
self.use_wiiu_nus_chkbox = QCheckBox(self.centralwidget)
|
self.use_wiiu_nus_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.use_wiiu_nus_chkbox.setObjectName(u"use_wiiu_nus_chkbox")
|
self.use_wiiu_nus_chkbox.setObjectName(u"use_wiiu_nus_chkbox")
|
||||||
sizePolicy1.setHeightForWidth(self.use_wiiu_nus_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.use_wiiu_nus_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.use_wiiu_nus_chkbox.setSizePolicy(sizePolicy1)
|
self.use_wiiu_nus_chkbox.setSizePolicy(sizePolicy)
|
||||||
self.use_wiiu_nus_chkbox.setLayoutDirection(Qt.LeftToRight)
|
self.use_wiiu_nus_chkbox.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
|
||||||
self.use_wiiu_nus_chkbox.setText(u"")
|
self.use_wiiu_nus_chkbox.setText(u"")
|
||||||
self.use_wiiu_nus_chkbox.setChecked(True)
|
self.use_wiiu_nus_chkbox.setChecked(True)
|
||||||
|
|
||||||
@ -261,6 +302,8 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.use_wiiu_nus_chkbox_lbl = QLabel(self.centralwidget)
|
self.use_wiiu_nus_chkbox_lbl = QLabel(self.centralwidget)
|
||||||
self.use_wiiu_nus_chkbox_lbl.setObjectName(u"use_wiiu_nus_chkbox_lbl")
|
self.use_wiiu_nus_chkbox_lbl.setObjectName(u"use_wiiu_nus_chkbox_lbl")
|
||||||
|
sizePolicy4.setHeightForWidth(self.use_wiiu_nus_chkbox_lbl.sizePolicy().hasHeightForWidth())
|
||||||
|
self.use_wiiu_nus_chkbox_lbl.setSizePolicy(sizePolicy4)
|
||||||
self.use_wiiu_nus_chkbox_lbl.setWordWrap(True)
|
self.use_wiiu_nus_chkbox_lbl.setWordWrap(True)
|
||||||
|
|
||||||
self.use_wiiu_nus_row.addWidget(self.use_wiiu_nus_chkbox_lbl)
|
self.use_wiiu_nus_row.addWidget(self.use_wiiu_nus_chkbox_lbl)
|
||||||
@ -269,12 +312,13 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_7.addLayout(self.use_wiiu_nus_row)
|
self.verticalLayout_7.addLayout(self.use_wiiu_nus_row)
|
||||||
|
|
||||||
self.patch_ios_row = QHBoxLayout()
|
self.patch_ios_row = QHBoxLayout()
|
||||||
|
self.patch_ios_row.setSpacing(10)
|
||||||
self.patch_ios_row.setObjectName(u"patch_ios_row")
|
self.patch_ios_row.setObjectName(u"patch_ios_row")
|
||||||
self.patch_ios_chkbox = QCheckBox(self.centralwidget)
|
self.patch_ios_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.patch_ios_chkbox.setObjectName(u"patch_ios_chkbox")
|
self.patch_ios_chkbox.setObjectName(u"patch_ios_chkbox")
|
||||||
self.patch_ios_chkbox.setEnabled(False)
|
self.patch_ios_chkbox.setEnabled(False)
|
||||||
sizePolicy1.setHeightForWidth(self.patch_ios_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.patch_ios_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.patch_ios_chkbox.setSizePolicy(sizePolicy1)
|
self.patch_ios_chkbox.setSizePolicy(sizePolicy3)
|
||||||
self.patch_ios_chkbox.setText(u"")
|
self.patch_ios_chkbox.setText(u"")
|
||||||
|
|
||||||
self.patch_ios_row.addWidget(self.patch_ios_chkbox)
|
self.patch_ios_row.addWidget(self.patch_ios_chkbox)
|
||||||
@ -282,6 +326,8 @@ class Ui_MainWindow(object):
|
|||||||
self.patch_ios_lbl = QLabel(self.centralwidget)
|
self.patch_ios_lbl = QLabel(self.centralwidget)
|
||||||
self.patch_ios_lbl.setObjectName(u"patch_ios_lbl")
|
self.patch_ios_lbl.setObjectName(u"patch_ios_lbl")
|
||||||
self.patch_ios_lbl.setEnabled(True)
|
self.patch_ios_lbl.setEnabled(True)
|
||||||
|
sizePolicy4.setHeightForWidth(self.patch_ios_lbl.sizePolicy().hasHeightForWidth())
|
||||||
|
self.patch_ios_lbl.setSizePolicy(sizePolicy4)
|
||||||
self.patch_ios_lbl.setWordWrap(True)
|
self.patch_ios_lbl.setWordWrap(True)
|
||||||
|
|
||||||
self.patch_ios_row.addWidget(self.patch_ios_lbl)
|
self.patch_ios_row.addWidget(self.patch_ios_lbl)
|
||||||
@ -289,11 +335,11 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.verticalLayout_7.addLayout(self.patch_ios_row)
|
self.verticalLayout_7.addLayout(self.patch_ios_row)
|
||||||
|
|
||||||
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Ignored)
|
||||||
|
|
||||||
self.verticalLayout_7.addItem(self.verticalSpacer_2)
|
self.verticalLayout_7.addItem(self.verticalSpacer_2)
|
||||||
|
|
||||||
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.Minimum)
|
||||||
|
|
||||||
self.verticalLayout_7.addItem(self.horizontalSpacer)
|
self.verticalLayout_7.addItem(self.horizontalSpacer)
|
||||||
|
|
||||||
@ -302,6 +348,7 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.verticalLayout_8 = QVBoxLayout()
|
self.verticalLayout_8 = QVBoxLayout()
|
||||||
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
|
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
|
||||||
|
self.verticalLayout_8.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||||
self.label_4 = QLabel(self.centralwidget)
|
self.label_4 = QLabel(self.centralwidget)
|
||||||
self.label_4.setObjectName(u"label_4")
|
self.label_4.setObjectName(u"label_4")
|
||||||
self.label_4.setFont(font)
|
self.label_4.setFont(font)
|
||||||
@ -313,8 +360,8 @@ class Ui_MainWindow(object):
|
|||||||
self.pack_vwii_mode_chkbox = QCheckBox(self.centralwidget)
|
self.pack_vwii_mode_chkbox = QCheckBox(self.centralwidget)
|
||||||
self.pack_vwii_mode_chkbox.setObjectName(u"pack_vwii_mode_chkbox")
|
self.pack_vwii_mode_chkbox.setObjectName(u"pack_vwii_mode_chkbox")
|
||||||
self.pack_vwii_mode_chkbox.setEnabled(False)
|
self.pack_vwii_mode_chkbox.setEnabled(False)
|
||||||
sizePolicy1.setHeightForWidth(self.pack_vwii_mode_chkbox.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.pack_vwii_mode_chkbox.sizePolicy().hasHeightForWidth())
|
||||||
self.pack_vwii_mode_chkbox.setSizePolicy(sizePolicy1)
|
self.pack_vwii_mode_chkbox.setSizePolicy(sizePolicy3)
|
||||||
self.pack_vwii_mode_chkbox.setText(u"")
|
self.pack_vwii_mode_chkbox.setText(u"")
|
||||||
|
|
||||||
self.pack_vwii_mode_row.addWidget(self.pack_vwii_mode_chkbox)
|
self.pack_vwii_mode_row.addWidget(self.pack_vwii_mode_chkbox)
|
||||||
@ -322,6 +369,11 @@ class Ui_MainWindow(object):
|
|||||||
self.pack_vwii_mode_lbl = QLabel(self.centralwidget)
|
self.pack_vwii_mode_lbl = QLabel(self.centralwidget)
|
||||||
self.pack_vwii_mode_lbl.setObjectName(u"pack_vwii_mode_lbl")
|
self.pack_vwii_mode_lbl.setObjectName(u"pack_vwii_mode_lbl")
|
||||||
self.pack_vwii_mode_lbl.setEnabled(True)
|
self.pack_vwii_mode_lbl.setEnabled(True)
|
||||||
|
sizePolicy5 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
|
||||||
|
sizePolicy5.setHorizontalStretch(0)
|
||||||
|
sizePolicy5.setVerticalStretch(0)
|
||||||
|
sizePolicy5.setHeightForWidth(self.pack_vwii_mode_lbl.sizePolicy().hasHeightForWidth())
|
||||||
|
self.pack_vwii_mode_lbl.setSizePolicy(sizePolicy5)
|
||||||
self.pack_vwii_mode_lbl.setWordWrap(True)
|
self.pack_vwii_mode_lbl.setWordWrap(True)
|
||||||
|
|
||||||
self.pack_vwii_mode_row.addWidget(self.pack_vwii_mode_lbl)
|
self.pack_vwii_mode_row.addWidget(self.pack_vwii_mode_lbl)
|
||||||
@ -329,11 +381,11 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.verticalLayout_8.addLayout(self.pack_vwii_mode_row)
|
self.verticalLayout_8.addLayout(self.pack_vwii_mode_row)
|
||||||
|
|
||||||
self.verticalSpacer = QSpacerItem(20, 50, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
self.verticalSpacer = QSpacerItem(20, 50, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.MinimumExpanding)
|
||||||
|
|
||||||
self.verticalLayout_8.addItem(self.verticalSpacer)
|
self.verticalLayout_8.addItem(self.verticalSpacer)
|
||||||
|
|
||||||
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.Minimum)
|
||||||
|
|
||||||
self.verticalLayout_8.addItem(self.horizontalSpacer_2)
|
self.verticalLayout_8.addItem(self.horizontalSpacer_2)
|
||||||
|
|
||||||
@ -380,6 +432,7 @@ class Ui_MainWindow(object):
|
|||||||
self.label_5.setText(QCoreApplication.translate("MainWindow", u"Console:", None))
|
self.label_5.setText(QCoreApplication.translate("MainWindow", u"Console:", None))
|
||||||
self.console_select_dropdown.setCurrentText("")
|
self.console_select_dropdown.setCurrentText("")
|
||||||
self.download_btn.setText(QCoreApplication.translate("MainWindow", u"Start Download", None))
|
self.download_btn.setText(QCoreApplication.translate("MainWindow", u"Start Download", None))
|
||||||
|
self.script_btn.setText(QCoreApplication.translate("MainWindow", u"Run Script", None))
|
||||||
self.label_3.setText(QCoreApplication.translate("MainWindow", u"General Settings", None))
|
self.label_3.setText(QCoreApplication.translate("MainWindow", u"General Settings", None))
|
||||||
self.label_7.setText(QCoreApplication.translate("MainWindow", u"Pack installable archive (WAD/TAD)", None))
|
self.label_7.setText(QCoreApplication.translate("MainWindow", u"Pack installable archive (WAD/TAD)", None))
|
||||||
self.archive_file_entry.setPlaceholderText(QCoreApplication.translate("MainWindow", u"File Name", None))
|
self.archive_file_entry.setPlaceholderText(QCoreApplication.translate("MainWindow", u"File Name", None))
|
||||||
@ -392,8 +445,11 @@ class Ui_MainWindow(object):
|
|||||||
self.pack_vwii_mode_lbl.setText(QCoreApplication.translate("MainWindow", u"Re-encrypt title using the Wii Common Key", None))
|
self.pack_vwii_mode_lbl.setText(QCoreApplication.translate("MainWindow", u"Re-encrypt title using the Wii Common Key", None))
|
||||||
self.log_text_browser.setMarkdown("")
|
self.log_text_browser.setMarkdown("")
|
||||||
self.log_text_browser.setHtml(QCoreApplication.translate("MainWindow", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
self.log_text_browser.setHtml(QCoreApplication.translate("MainWindow", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
|
||||||
"p, li { white-space: pre-wrap; }\n"
|
"p, li { white-space: pre-wrap; }\n"
|
||||||
|
"hr { height: 1px; border-width: 0; }\n"
|
||||||
|
"li.unchecked::marker { content: \"\\2610\"; }\n"
|
||||||
|
"li.checked::marker { content: \"\\2612\"; }\n"
|
||||||
"</style></head><body style=\" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
"</style></head><body style=\" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;\"><br /></p></body></html>", None))
|
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;\"><br /></p></body></html>", None))
|
||||||
# retranslateUi
|
# retranslateUi
|
||||||
|
143
qt/ui/MainMenu.ui
Normal file → Executable file
143
qt/ui/MainMenu.ui
Normal file → Executable file
@ -27,13 +27,15 @@
|
|||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralwidget">
|
<widget class="QWidget" name="centralwidget">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="vertical_layout_trees">
|
<layout class="QVBoxLayout" name="vertical_layout_trees">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
<bold>true</bold>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
@ -159,7 +161,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="vertical_layout_controls">
|
<layout class="QVBoxLayout" name="vertical_layout_controls">
|
||||||
<property name="sizeConstraint">
|
<property name="sizeConstraint">
|
||||||
<enum>QLayout::SetDefaultConstraint</enum>
|
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontal_layout_title_entry">
|
<layout class="QHBoxLayout" name="horizontal_layout_title_entry">
|
||||||
@ -222,21 +224,52 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="download_btn">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<property name="text">
|
<item>
|
||||||
<string>Start Download</string>
|
<widget class="QPushButton" name="download_btn">
|
||||||
</property>
|
<property name="sizePolicy">
|
||||||
</widget>
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Start Download</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="script_btn">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Run Script</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
<bold>true</bold>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
@ -247,6 +280,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="pack_archive_row">
|
<layout class="QHBoxLayout" name="pack_archive_row">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="pack_archive_chkbox">
|
<widget class="QCheckBox" name="pack_archive_chkbox">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -262,6 +298,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Pack installable archive (WAD/TAD)</string>
|
<string>Pack installable archive (WAD/TAD)</string>
|
||||||
</property>
|
</property>
|
||||||
@ -284,6 +326,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="keep_enc_row">
|
<layout class="QHBoxLayout" name="keep_enc_row">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="keep_enc_chkbox">
|
<widget class="QCheckBox" name="keep_enc_chkbox">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -302,6 +347,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Keep encrypted contents</string>
|
<string>Keep encrypted contents</string>
|
||||||
</property>
|
</property>
|
||||||
@ -314,6 +365,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="create_dec_row">
|
<layout class="QHBoxLayout" name="create_dec_row">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="create_dec_chkbox">
|
<widget class="QCheckBox" name="create_dec_chkbox">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -329,6 +383,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="create_dec_chkbox_lbl">
|
<widget class="QLabel" name="create_dec_chkbox_lbl">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Create decrypted contents (*.app)</string>
|
<string>Create decrypted contents (*.app)</string>
|
||||||
</property>
|
</property>
|
||||||
@ -341,6 +401,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="use_local_row">
|
<layout class="QHBoxLayout" name="use_local_row">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="use_local_chkbox">
|
<widget class="QCheckBox" name="use_local_chkbox">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@ -359,6 +422,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="use_local_chkbox_lbl">
|
<widget class="QLabel" name="use_local_chkbox_lbl">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Use local files, if they exist</string>
|
<string>Use local files, if they exist</string>
|
||||||
</property>
|
</property>
|
||||||
@ -371,16 +440,22 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="use_wiiu_nus_row">
|
<layout class="QHBoxLayout" name="use_wiiu_nus_row">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="use_wiiu_nus_chkbox">
|
<widget class="QCheckBox" name="use_wiiu_nus_chkbox">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
<sizepolicy hsizetype="Maximum" vsizetype="Expanding">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="layoutDirection">
|
<property name="layoutDirection">
|
||||||
<enum>Qt::LeftToRight</enum>
|
<enum>Qt::LayoutDirection::LeftToRight</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true"/>
|
<string notr="true"/>
|
||||||
@ -392,6 +467,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="use_wiiu_nus_chkbox_lbl">
|
<widget class="QLabel" name="use_wiiu_nus_chkbox_lbl">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Use the Wii U NUS (faster, only effects Wii/vWii)</string>
|
<string>Use the Wii U NUS (faster, only effects Wii/vWii)</string>
|
||||||
</property>
|
</property>
|
||||||
@ -404,6 +485,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="patch_ios_row">
|
<layout class="QHBoxLayout" name="patch_ios_row">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="patch_ios_chkbox">
|
<widget class="QCheckBox" name="patch_ios_chkbox">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@ -425,6 +509,12 @@
|
|||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Apply patches to IOS (Applies to WADs only)</string>
|
<string>Apply patches to IOS (Applies to WADs only)</string>
|
||||||
</property>
|
</property>
|
||||||
@ -438,10 +528,10 @@
|
|||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer_2">
|
<spacer name="verticalSpacer_2">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeType">
|
<property name="sizeType">
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
<enum>QSizePolicy::Policy::Ignored</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
@ -454,7 +544,10 @@
|
|||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
@ -468,11 +561,13 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLabel" name="label_4">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
<bold>true</bold>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
@ -504,6 +599,12 @@
|
|||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Re-encrypt title using the Wii Common Key</string>
|
<string>Re-encrypt title using the Wii Common Key</string>
|
||||||
</property>
|
</property>
|
||||||
@ -517,10 +618,10 @@
|
|||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeType">
|
<property name="sizeType">
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
@ -533,7 +634,10 @@
|
|||||||
<item>
|
<item>
|
||||||
<spacer name="horizontalSpacer_2">
|
<spacer name="horizontalSpacer_2">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
@ -560,8 +664,11 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="html">
|
<property name="html">
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
|
hr { height: 1px; border-width: 0; }
|
||||||
|
li.unchecked::marker { content: "\2610"; }
|
||||||
|
li.checked::marker { content: "\2612"; }
|
||||||
</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html></string>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user