mirror of
https://github.com/NinjaCheetah/NUSGet.git
synced 2025-04-25 07:01:01 -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.QtWidgets import (QApplication, QMainWindow, QMessageBox, QTreeWidgetItem, QHeaderView, QStyle,
|
||||
QStyleFactory)
|
||||
QStyleFactory, QFileDialog)
|
||||
from PySide6.QtCore import QRunnable, Slot, QThreadPool, Signal, QObject, QLibraryInfo, QTranslator, QLocale
|
||||
|
||||
from qt.py.ui_MainMenu import Ui_MainWindow
|
||||
|
||||
from modules.core import *
|
||||
from modules.download_wii import run_nus_download_wii
|
||||
from modules.download_dsi import run_nus_download_dsi
|
||||
from modules.download_wii import run_nus_download_wii, run_nus_download_wii_batch
|
||||
from modules.download_dsi import run_nus_download_dsi, run_nus_download_dsi_batch
|
||||
|
||||
nusget_version = "1.2.0"
|
||||
|
||||
@ -63,6 +63,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.ui.setupUi(self)
|
||||
self.threadpool = QThreadPool()
|
||||
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.tid_entry.textChanged.connect(self.tid_updated)
|
||||
# noinspection PyUnresolvedReferences
|
||||
@ -124,6 +125,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
tree[0].insertTopLevelItems(0, self.tree_categories)
|
||||
# Connect the double click signal for handling when titles are selected.
|
||||
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.
|
||||
worker = Worker(check_nusget_updates, app, nusget_version)
|
||||
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.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):
|
||||
# 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
|
||||
@ -244,20 +267,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
"like the download to be saved."))
|
||||
msg_box.exec()
|
||||
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.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)
|
||||
|
||||
self.lock_ui_for_download()
|
||||
|
||||
# Create a new worker object to handle the download in a new thread.
|
||||
if self.ui.console_select_dropdown.currentText() == "DSi":
|
||||
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.version_entry.setEnabled(True)
|
||||
self.ui.download_btn.setEnabled(True)
|
||||
self.ui.script_btn.setEnabled(True)
|
||||
self.ui.pack_archive_chkbox.setEnabled(True)
|
||||
self.ui.keep_enc_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":
|
||||
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__":
|
||||
app = QApplication(sys.argv)
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
import os
|
||||
import pathlib
|
||||
from typing import List, Tuple
|
||||
|
||||
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())
|
||||
# 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...")
|
||||
if tad_file_name != "":
|
||||
if tad_file_name != "" and tad_file_name is not None:
|
||||
if tad_file_name[-4:] != ".tad":
|
||||
tad_file_name = tad_file_name + ".tad"
|
||||
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):
|
||||
return 1
|
||||
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 pathlib
|
||||
from typing import List, Tuple
|
||||
|
||||
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))
|
||||
# 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...")
|
||||
if wad_file_name != "":
|
||||
if wad_file_name != "" and wad_file_name is not None:
|
||||
if wad_file_name[-4:] != ".wad":
|
||||
wad_file_name = wad_file_name + ".wad"
|
||||
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):
|
||||
return 1
|
||||
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'
|
||||
##
|
||||
## 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!
|
||||
################################################################################
|
||||
@ -32,6 +32,7 @@ class Ui_MainWindow(object):
|
||||
self.centralwidget.setObjectName(u"centralwidget")
|
||||
self.horizontalLayout_3 = QHBoxLayout(self.centralwidget)
|
||||
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
||||
self.horizontalLayout_3.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint)
|
||||
self.vertical_layout_trees = QVBoxLayout()
|
||||
self.vertical_layout_trees.setObjectName(u"vertical_layout_trees")
|
||||
self.label_2 = QLabel(self.centralwidget)
|
||||
@ -111,7 +112,7 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.vertical_layout_controls = QVBoxLayout()
|
||||
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.setObjectName(u"horizontal_layout_title_entry")
|
||||
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.horizontalLayout = QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||
self.download_btn = QPushButton(self.centralwidget)
|
||||
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.setObjectName(u"horizontalLayout_5")
|
||||
self.horizontalLayout_5.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||
self.verticalLayout_7 = QVBoxLayout()
|
||||
self.verticalLayout_7.setSpacing(5)
|
||||
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
|
||||
self.verticalLayout_7.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||
self.label_3 = QLabel(self.centralwidget)
|
||||
self.label_3.setObjectName(u"label_3")
|
||||
self.label_3.setFont(font)
|
||||
@ -161,20 +185,26 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_7.addWidget(self.label_3)
|
||||
|
||||
self.pack_archive_row = QHBoxLayout()
|
||||
self.pack_archive_row.setSpacing(10)
|
||||
self.pack_archive_row.setObjectName(u"pack_archive_row")
|
||||
self.pack_archive_chkbox = QCheckBox(self.centralwidget)
|
||||
self.pack_archive_chkbox.setObjectName(u"pack_archive_chkbox")
|
||||
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy1.setHorizontalStretch(0)
|
||||
sizePolicy1.setVerticalStretch(0)
|
||||
sizePolicy1.setHeightForWidth(self.pack_archive_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.pack_archive_chkbox.setSizePolicy(sizePolicy1)
|
||||
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy3.setHorizontalStretch(0)
|
||||
sizePolicy3.setVerticalStretch(0)
|
||||
sizePolicy3.setHeightForWidth(self.pack_archive_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.pack_archive_chkbox.setSizePolicy(sizePolicy3)
|
||||
self.pack_archive_chkbox.setText(u"")
|
||||
|
||||
self.pack_archive_row.addWidget(self.pack_archive_chkbox)
|
||||
|
||||
self.label_7 = QLabel(self.centralwidget)
|
||||
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.pack_archive_row.addWidget(self.label_7)
|
||||
@ -189,11 +219,12 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_7.addWidget(self.archive_file_entry)
|
||||
|
||||
self.keep_enc_row = QHBoxLayout()
|
||||
self.keep_enc_row.setSpacing(10)
|
||||
self.keep_enc_row.setObjectName(u"keep_enc_row")
|
||||
self.keep_enc_chkbox = QCheckBox(self.centralwidget)
|
||||
self.keep_enc_chkbox.setObjectName(u"keep_enc_chkbox")
|
||||
sizePolicy1.setHeightForWidth(self.keep_enc_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.keep_enc_chkbox.setSizePolicy(sizePolicy1)
|
||||
sizePolicy3.setHeightForWidth(self.keep_enc_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.keep_enc_chkbox.setSizePolicy(sizePolicy3)
|
||||
self.keep_enc_chkbox.setText(u"")
|
||||
self.keep_enc_chkbox.setChecked(True)
|
||||
|
||||
@ -201,6 +232,8 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.label_6 = QLabel(self.centralwidget)
|
||||
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.keep_enc_row.addWidget(self.label_6)
|
||||
@ -209,17 +242,20 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_7.addLayout(self.keep_enc_row)
|
||||
|
||||
self.create_dec_row = QHBoxLayout()
|
||||
self.create_dec_row.setSpacing(10)
|
||||
self.create_dec_row.setObjectName(u"create_dec_row")
|
||||
self.create_dec_chkbox = QCheckBox(self.centralwidget)
|
||||
self.create_dec_chkbox.setObjectName(u"create_dec_chkbox")
|
||||
sizePolicy1.setHeightForWidth(self.create_dec_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.create_dec_chkbox.setSizePolicy(sizePolicy1)
|
||||
sizePolicy3.setHeightForWidth(self.create_dec_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.create_dec_chkbox.setSizePolicy(sizePolicy3)
|
||||
self.create_dec_chkbox.setText(u"")
|
||||
|
||||
self.create_dec_row.addWidget(self.create_dec_chkbox)
|
||||
|
||||
self.create_dec_chkbox_lbl = QLabel(self.centralwidget)
|
||||
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_row.addWidget(self.create_dec_chkbox_lbl)
|
||||
@ -228,18 +264,21 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_7.addLayout(self.create_dec_row)
|
||||
|
||||
self.use_local_row = QHBoxLayout()
|
||||
self.use_local_row.setSpacing(10)
|
||||
self.use_local_row.setObjectName(u"use_local_row")
|
||||
self.use_local_chkbox = QCheckBox(self.centralwidget)
|
||||
self.use_local_chkbox.setObjectName(u"use_local_chkbox")
|
||||
self.use_local_chkbox.setEnabled(True)
|
||||
sizePolicy1.setHeightForWidth(self.use_local_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.use_local_chkbox.setSizePolicy(sizePolicy1)
|
||||
sizePolicy3.setHeightForWidth(self.use_local_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.use_local_chkbox.setSizePolicy(sizePolicy3)
|
||||
self.use_local_chkbox.setText(u"")
|
||||
|
||||
self.use_local_row.addWidget(self.use_local_chkbox)
|
||||
|
||||
self.use_local_chkbox_lbl = QLabel(self.centralwidget)
|
||||
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_row.addWidget(self.use_local_chkbox_lbl)
|
||||
@ -248,12 +287,14 @@ class Ui_MainWindow(object):
|
||||
self.verticalLayout_7.addLayout(self.use_local_row)
|
||||
|
||||
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.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint)
|
||||
self.use_wiiu_nus_chkbox = QCheckBox(self.centralwidget)
|
||||
self.use_wiiu_nus_chkbox.setObjectName(u"use_wiiu_nus_chkbox")
|
||||
sizePolicy1.setHeightForWidth(self.use_wiiu_nus_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.use_wiiu_nus_chkbox.setSizePolicy(sizePolicy1)
|
||||
self.use_wiiu_nus_chkbox.setLayoutDirection(Qt.LeftToRight)
|
||||
sizePolicy.setHeightForWidth(self.use_wiiu_nus_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.use_wiiu_nus_chkbox.setSizePolicy(sizePolicy)
|
||||
self.use_wiiu_nus_chkbox.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
|
||||
self.use_wiiu_nus_chkbox.setText(u"")
|
||||
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.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_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.patch_ios_row = QHBoxLayout()
|
||||
self.patch_ios_row.setSpacing(10)
|
||||
self.patch_ios_row.setObjectName(u"patch_ios_row")
|
||||
self.patch_ios_chkbox = QCheckBox(self.centralwidget)
|
||||
self.patch_ios_chkbox.setObjectName(u"patch_ios_chkbox")
|
||||
self.patch_ios_chkbox.setEnabled(False)
|
||||
sizePolicy1.setHeightForWidth(self.patch_ios_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.patch_ios_chkbox.setSizePolicy(sizePolicy1)
|
||||
sizePolicy3.setHeightForWidth(self.patch_ios_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.patch_ios_chkbox.setSizePolicy(sizePolicy3)
|
||||
self.patch_ios_chkbox.setText(u"")
|
||||
|
||||
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.setObjectName(u"patch_ios_lbl")
|
||||
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_row.addWidget(self.patch_ios_lbl)
|
||||
@ -289,11 +335,11 @@ class Ui_MainWindow(object):
|
||||
|
||||
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.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)
|
||||
|
||||
@ -302,6 +348,7 @@ class Ui_MainWindow(object):
|
||||
|
||||
self.verticalLayout_8 = QVBoxLayout()
|
||||
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
|
||||
self.verticalLayout_8.setSizeConstraint(QLayout.SizeConstraint.SetMinimumSize)
|
||||
self.label_4 = QLabel(self.centralwidget)
|
||||
self.label_4.setObjectName(u"label_4")
|
||||
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.setObjectName(u"pack_vwii_mode_chkbox")
|
||||
self.pack_vwii_mode_chkbox.setEnabled(False)
|
||||
sizePolicy1.setHeightForWidth(self.pack_vwii_mode_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.pack_vwii_mode_chkbox.setSizePolicy(sizePolicy1)
|
||||
sizePolicy3.setHeightForWidth(self.pack_vwii_mode_chkbox.sizePolicy().hasHeightForWidth())
|
||||
self.pack_vwii_mode_chkbox.setSizePolicy(sizePolicy3)
|
||||
self.pack_vwii_mode_chkbox.setText(u"")
|
||||
|
||||
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.setObjectName(u"pack_vwii_mode_lbl")
|
||||
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_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.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.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)
|
||||
|
||||
@ -380,6 +432,7 @@ class Ui_MainWindow(object):
|
||||
self.label_5.setText(QCoreApplication.translate("MainWindow", u"Console:", None))
|
||||
self.console_select_dropdown.setCurrentText("")
|
||||
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_7.setText(QCoreApplication.translate("MainWindow", u"Pack installable archive (WAD/TAD)", 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.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"
|
||||
"<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"
|
||||
"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"
|
||||
"<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
|
||||
|
143
qt/ui/MainMenu.ui
Normal file → Executable file
143
qt/ui/MainMenu.ui
Normal file → Executable file
@ -27,13 +27,15 @@
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="vertical_layout_trees">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
@ -159,7 +161,7 @@
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="vertical_layout_controls">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontal_layout_title_entry">
|
||||
@ -222,21 +224,52 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="download_btn">
|
||||
<property name="text">
|
||||
<string>Start Download</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="download_btn">
|
||||
<property name="sizePolicy">
|
||||
<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>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<property name="spacing">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
@ -247,6 +280,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="pack_archive_row">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="pack_archive_chkbox">
|
||||
<property name="sizePolicy">
|
||||
@ -262,6 +298,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<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">
|
||||
<string>Pack installable archive (WAD/TAD)</string>
|
||||
</property>
|
||||
@ -284,6 +326,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="keep_enc_row">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="keep_enc_chkbox">
|
||||
<property name="sizePolicy">
|
||||
@ -302,6 +347,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<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">
|
||||
<string>Keep encrypted contents</string>
|
||||
</property>
|
||||
@ -314,6 +365,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="create_dec_row">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="create_dec_chkbox">
|
||||
<property name="sizePolicy">
|
||||
@ -329,6 +383,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<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">
|
||||
<string>Create decrypted contents (*.app)</string>
|
||||
</property>
|
||||
@ -341,6 +401,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="use_local_row">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="use_local_chkbox">
|
||||
<property name="enabled">
|
||||
@ -359,6 +422,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<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">
|
||||
<string>Use local files, if they exist</string>
|
||||
</property>
|
||||
@ -371,16 +440,22 @@
|
||||
</item>
|
||||
<item>
|
||||
<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>
|
||||
<widget class="QCheckBox" name="use_wiiu_nus_chkbox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
<enum>Qt::LayoutDirection::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
@ -392,6 +467,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<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">
|
||||
<string>Use the Wii U NUS (faster, only effects Wii/vWii)</string>
|
||||
</property>
|
||||
@ -404,6 +485,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="patch_ios_row">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="patch_ios_chkbox">
|
||||
<property name="enabled">
|
||||
@ -425,6 +509,12 @@
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Apply patches to IOS (Applies to WADs only)</string>
|
||||
</property>
|
||||
@ -438,10 +528,10 @@
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
<enum>QSizePolicy::Policy::Ignored</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -454,7 +544,10 @@
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -468,11 +561,13 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SizeConstraint::SetMinimumSize</enum>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
@ -504,6 +599,12 @@
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Re-encrypt title using the Wii Common Key</string>
|
||||
</property>
|
||||
@ -517,10 +618,10 @@
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -533,7 +634,10 @@
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Policy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -560,8 +664,11 @@
|
||||
</property>
|
||||
<property name="html">
|
||||
<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; }
|
||||
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;">
|
||||
<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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user