diff --git a/gui/main_window.py b/gui/main_window.py index 7314f8c..0e88d9d 100644 --- a/gui/main_window.py +++ b/gui/main_window.py @@ -116,6 +116,9 @@ class MainWindow(QtWidgets.QMainWindow): ## RISKY OPTIONS PAGE ACTIONS self.ui.disableOTAChk.toggled.connect(self.on_disableOTAChk_clicked) + self.ui.enableResolutionChk.toggled.connect(self.on_enableResolutionChk_clicked) + self.ui.resHeightTxt.textEdited.connect(self.on_resHeightTxt_textEdited) + self.ui.resWidthTxt.textEdited.connect(self.on_resWidthTxt_textEdited) ## APPLY PAGE ACTIONS self.ui.applyTweaksBtn.clicked.connect(self.on_applyPageBtn_clicked) @@ -159,6 +162,9 @@ class MainWindow(QtWidgets.QMainWindow): self.ui.addGestaltKeyBtn.clicked.connect(self.on_addGestaltKeyBtn_clicked) self.ui.aiEnablerContent.hide() + self.ui.resChangerContent.hide() + self.ui.resHeightWarningLbl.hide() + self.ui.resWidthWarningLbl.hide() ## GENERAL INTERFACE FUNCTIONS @@ -678,6 +684,38 @@ class MainWindow(QtWidgets.QMainWindow): def on_disableOTAChk_clicked(self, checked: bool): tweaks["DisableOTA"].set_enabled(checked) + def on_enableResolutionChk_clicked(self, checked: bool): + tweaks["CustomResolution"].set_enabled(checked) + # toggle the ui content + if checked: + self.ui.resChangerContent.show() + else: + self.ui.resChangerContent.hide() + def on_resHeightTxt_textEdited(self, txt: str): + if txt == "": + # remove the canvas_height value + tweaks["CustomResolution"].value.pop("canvas_height", None) + self.ui.resHeightWarningLbl.hide() + return + try: + val = int(txt) + tweaks["CustomResolution"].value["canvas_height"] = val + self.ui.resHeightWarningLbl.hide() + except: + self.ui.resHeightWarningLbl.show() + def on_resWidthTxt_textEdited(self, txt: str): + if txt == "": + # remove the canvas_width value + tweaks["CustomResolution"].value.pop("canvas_width", None) + self.ui.resWidthWarningLbl.hide() + return + try: + val = int(txt) + tweaks["CustomResolution"].value["canvas_width"] = val + self.ui.resWidthWarningLbl.hide() + except: + self.ui.resWidthWarningLbl.show() + ## SETTINGS PAGE def on_allowWifiApplyingChk_toggled(self, checked: bool): diff --git a/qt/mainwindow.ui b/qt/mainwindow.ui index 7097342..0f9fad2 100644 --- a/qt/mainwindow.ui +++ b/qt/mainwindow.ui @@ -3686,7 +3686,7 @@ QComboBox QAbstractItemView::item:hover { - false + true @@ -3758,45 +3758,135 @@ Nugget is not responsible if you mess up your device, especially with resolution - - - 10 + + + true - - - - false - - - Height: - - - - - - - false - - - Resolution Height - - - - - - - Width: - - - - - - - Resolution Width - - - - + + + 0 + + + 0 + + + 0 + + + 0 + + + + + false + + + Height: + + + + + + + 5 + + + + + true + + + Resolution Height + + + + + + + + 22 + 0 + + + + QLabel { + border: 2px solid red; + border-radius: 25px; + color: red; +} + + + QFrame::NoFrame + + + QFrame::Plain + + + ! + + + false + + + Qt::AlignCenter + + + + + + + + + Width: + + + + + + + 0 + + + + + 5 + + + + + Resolution Width + + + + + + + + 22 + 0 + + + + QLabel { + border: 2px solid red; + border-radius: 25px; + color: red; +} + + + ! + + + Qt::AlignCenter + + + + + + + + + diff --git a/qt/mainwindow_ui.py b/qt/mainwindow_ui.py index d15c1a5..8ebf9df 100644 --- a/qt/mainwindow_ui.py +++ b/qt/mainwindow_ui.py @@ -1968,7 +1968,7 @@ class Ui_Nugget(object): self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage) self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent") - self.advancedOptionsPageContent.setEnabled(False) + self.advancedOptionsPageContent.setEnabled(True) self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent) self.verticalLayout_132.setObjectName(u"verticalLayout_132") self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) @@ -2007,33 +2007,81 @@ class Ui_Nugget(object): self.verticalLayout_132.addWidget(self.enableResolutionChk) - self.resolutionContent = QVBoxLayout() - self.resolutionContent.setObjectName(u"resolutionContent") - self.resolutionContent.setContentsMargins(-1, -1, -1, 10) - self.resHeightLbl = QLabel(self.advancedOptionsPageContent) + self.resChangerContent = QWidget(self.advancedOptionsPageContent) + self.resChangerContent.setObjectName(u"resChangerContent") + self.resChangerContent.setEnabled(True) + self.verticalLayout_35 = QVBoxLayout(self.resChangerContent) + self.verticalLayout_35.setObjectName(u"verticalLayout_35") + self.verticalLayout_35.setContentsMargins(0, 0, 0, 0) + self.resHeightLbl = QLabel(self.resChangerContent) self.resHeightLbl.setObjectName(u"resHeightLbl") self.resHeightLbl.setEnabled(False) - self.resolutionContent.addWidget(self.resHeightLbl) + self.verticalLayout_35.addWidget(self.resHeightLbl) - self.resHeightTxt = QLineEdit(self.advancedOptionsPageContent) + self.horizontalLayout_9 = QHBoxLayout() + self.horizontalLayout_9.setObjectName(u"horizontalLayout_9") + self.horizontalLayout_9.setContentsMargins(-1, -1, -1, 5) + self.resHeightTxt = QLineEdit(self.resChangerContent) self.resHeightTxt.setObjectName(u"resHeightTxt") - self.resHeightTxt.setEnabled(False) + self.resHeightTxt.setEnabled(True) - self.resolutionContent.addWidget(self.resHeightTxt) + self.horizontalLayout_9.addWidget(self.resHeightTxt) - self.resWidthLbl = QLabel(self.advancedOptionsPageContent) + self.resHeightWarningLbl = QLabel(self.resChangerContent) + self.resHeightWarningLbl.setObjectName(u"resHeightWarningLbl") + self.resHeightWarningLbl.setMinimumSize(QSize(22, 0)) + self.resHeightWarningLbl.setStyleSheet(u"QLabel {\n" +" border: 2px solid red;\n" +" border-radius: 25px;\n" +" color: red;\n" +"}") + self.resHeightWarningLbl.setFrameShape(QFrame.NoFrame) + self.resHeightWarningLbl.setFrameShadow(QFrame.Plain) + self.resHeightWarningLbl.setScaledContents(False) + self.resHeightWarningLbl.setAlignment(Qt.AlignCenter) + + self.horizontalLayout_9.addWidget(self.resHeightWarningLbl) + + + self.verticalLayout_35.addLayout(self.horizontalLayout_9) + + self.resWidthLbl = QLabel(self.resChangerContent) self.resWidthLbl.setObjectName(u"resWidthLbl") - self.resolutionContent.addWidget(self.resWidthLbl) + self.verticalLayout_35.addWidget(self.resWidthLbl) - self.resWidthTxt = QLineEdit(self.advancedOptionsPageContent) + self.resolutionContent = QVBoxLayout() + self.resolutionContent.setObjectName(u"resolutionContent") + self.resolutionContent.setContentsMargins(-1, -1, -1, 0) + self.horizontalLayout_10 = QHBoxLayout() + self.horizontalLayout_10.setObjectName(u"horizontalLayout_10") + self.horizontalLayout_10.setContentsMargins(-1, -1, -1, 5) + self.resWidthTxt = QLineEdit(self.resChangerContent) self.resWidthTxt.setObjectName(u"resWidthTxt") - self.resolutionContent.addWidget(self.resWidthTxt) + self.horizontalLayout_10.addWidget(self.resWidthTxt) + + self.resWidthWarningLbl = QLabel(self.resChangerContent) + self.resWidthWarningLbl.setObjectName(u"resWidthWarningLbl") + self.resWidthWarningLbl.setMinimumSize(QSize(22, 0)) + self.resWidthWarningLbl.setStyleSheet(u"QLabel {\n" +" border: 2px solid red;\n" +" border-radius: 25px;\n" +" color: red;\n" +"}") + self.resWidthWarningLbl.setAlignment(Qt.AlignCenter) + + self.horizontalLayout_10.addWidget(self.resWidthWarningLbl) - self.verticalLayout_132.addLayout(self.resolutionContent) + self.resolutionContent.addLayout(self.horizontalLayout_10) + + + self.verticalLayout_35.addLayout(self.resolutionContent) + + + self.verticalLayout_132.addWidget(self.resChangerContent) self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) @@ -3046,8 +3094,10 @@ class Ui_Nugget(object): self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None)) self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None)) self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None)) + self.resHeightWarningLbl.setText(QCoreApplication.translate("Nugget", u"!", None)) self.resWidthLbl.setText(QCoreApplication.translate("Nugget", u"Width:", None)) self.resWidthTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Width", None)) + self.resWidthWarningLbl.setText(QCoreApplication.translate("Nugget", u"!", None)) self.statusBarLbl_5.setText(QCoreApplication.translate("Nugget", u"Apply", None)) self.label_16.setText("") self.modifiedTweaksLbl.setText(QCoreApplication.translate("Nugget", u"Current gestalt file location:", None)) diff --git a/qt/ui_mainwindow.py b/qt/ui_mainwindow.py index 1cb5769..9fe90be 100644 --- a/qt/ui_mainwindow.py +++ b/qt/ui_mainwindow.py @@ -1968,7 +1968,7 @@ class Ui_Nugget(object): self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage) self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent") - self.advancedOptionsPageContent.setEnabled(False) + self.advancedOptionsPageContent.setEnabled(True) self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent) self.verticalLayout_132.setObjectName(u"verticalLayout_132") self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) @@ -2007,33 +2007,81 @@ class Ui_Nugget(object): self.verticalLayout_132.addWidget(self.enableResolutionChk) - self.resolutionContent = QVBoxLayout() - self.resolutionContent.setObjectName(u"resolutionContent") - self.resolutionContent.setContentsMargins(-1, -1, -1, 10) - self.resHeightLbl = QLabel(self.advancedOptionsPageContent) + self.resChangerContent = QWidget(self.advancedOptionsPageContent) + self.resChangerContent.setObjectName(u"resChangerContent") + self.resChangerContent.setEnabled(True) + self.verticalLayout_35 = QVBoxLayout(self.resChangerContent) + self.verticalLayout_35.setObjectName(u"verticalLayout_35") + self.verticalLayout_35.setContentsMargins(0, 0, 0, 0) + self.resHeightLbl = QLabel(self.resChangerContent) self.resHeightLbl.setObjectName(u"resHeightLbl") self.resHeightLbl.setEnabled(False) - self.resolutionContent.addWidget(self.resHeightLbl) + self.verticalLayout_35.addWidget(self.resHeightLbl) - self.resHeightTxt = QLineEdit(self.advancedOptionsPageContent) + self.horizontalLayout_9 = QHBoxLayout() + self.horizontalLayout_9.setObjectName(u"horizontalLayout_9") + self.horizontalLayout_9.setContentsMargins(-1, -1, -1, 5) + self.resHeightTxt = QLineEdit(self.resChangerContent) self.resHeightTxt.setObjectName(u"resHeightTxt") - self.resHeightTxt.setEnabled(False) + self.resHeightTxt.setEnabled(True) - self.resolutionContent.addWidget(self.resHeightTxt) + self.horizontalLayout_9.addWidget(self.resHeightTxt) - self.resWidthLbl = QLabel(self.advancedOptionsPageContent) + self.resHeightWarningLbl = QLabel(self.resChangerContent) + self.resHeightWarningLbl.setObjectName(u"resHeightWarningLbl") + self.resHeightWarningLbl.setMinimumSize(QSize(22, 0)) + self.resHeightWarningLbl.setStyleSheet(u"QLabel {\n" +" border: 2px solid red;\n" +" border-radius: 25px;\n" +" color: red;\n" +"}") + self.resHeightWarningLbl.setFrameShape(QFrame.NoFrame) + self.resHeightWarningLbl.setFrameShadow(QFrame.Plain) + self.resHeightWarningLbl.setScaledContents(False) + self.resHeightWarningLbl.setAlignment(Qt.AlignCenter) + + self.horizontalLayout_9.addWidget(self.resHeightWarningLbl) + + + self.verticalLayout_35.addLayout(self.horizontalLayout_9) + + self.resWidthLbl = QLabel(self.resChangerContent) self.resWidthLbl.setObjectName(u"resWidthLbl") - self.resolutionContent.addWidget(self.resWidthLbl) + self.verticalLayout_35.addWidget(self.resWidthLbl) - self.resWidthTxt = QLineEdit(self.advancedOptionsPageContent) + self.resolutionContent = QVBoxLayout() + self.resolutionContent.setObjectName(u"resolutionContent") + self.resolutionContent.setContentsMargins(-1, -1, -1, 0) + self.horizontalLayout_10 = QHBoxLayout() + self.horizontalLayout_10.setObjectName(u"horizontalLayout_10") + self.horizontalLayout_10.setContentsMargins(-1, -1, -1, 5) + self.resWidthTxt = QLineEdit(self.resChangerContent) self.resWidthTxt.setObjectName(u"resWidthTxt") - self.resolutionContent.addWidget(self.resWidthTxt) + self.horizontalLayout_10.addWidget(self.resWidthTxt) + + self.resWidthWarningLbl = QLabel(self.resChangerContent) + self.resWidthWarningLbl.setObjectName(u"resWidthWarningLbl") + self.resWidthWarningLbl.setMinimumSize(QSize(22, 0)) + self.resWidthWarningLbl.setStyleSheet(u"QLabel {\n" +" border: 2px solid red;\n" +" border-radius: 25px;\n" +" color: red;\n" +"}") + self.resWidthWarningLbl.setAlignment(Qt.AlignCenter) + + self.horizontalLayout_10.addWidget(self.resWidthWarningLbl) - self.verticalLayout_132.addLayout(self.resolutionContent) + self.resolutionContent.addLayout(self.horizontalLayout_10) + + + self.verticalLayout_35.addLayout(self.resolutionContent) + + + self.verticalLayout_132.addWidget(self.resChangerContent) self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) @@ -3046,8 +3094,10 @@ class Ui_Nugget(object): self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None)) self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None)) self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None)) + self.resHeightWarningLbl.setText(QCoreApplication.translate("Nugget", u"!", None)) self.resWidthLbl.setText(QCoreApplication.translate("Nugget", u"Width:", None)) self.resWidthTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Width", None)) + self.resWidthWarningLbl.setText(QCoreApplication.translate("Nugget", u"!", None)) self.statusBarLbl_5.setText(QCoreApplication.translate("Nugget", u"Apply", None)) self.label_16.setText("") self.modifiedTweaksLbl.setText(QCoreApplication.translate("Nugget", u"Current gestalt file location:", None)) diff --git a/tweaks/tweaks.py b/tweaks/tweaks.py index b5a35c8..3882f6d 100644 --- a/tweaks/tweaks.py +++ b/tweaks/tweaks.py @@ -281,6 +281,12 @@ tweaks = { "MobileAssetServerURL-com.apple.MobileAsset.RecoveryOSUpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed", "MobileAssetServerURL-com.apple.MobileAsset.SoftwareUpdate": "https://mesu.apple.com/assets/tvOS16DeveloperSeed", "MobileAssetAssetAudience": "65254ac3-f331-4c19-8559-cbe22f5bc1a6" - } + }, is_risky=True + ), + "CustomResolution": AdvancedPlistTweak( + "Set Custom Resolution real", + FileLocation.resolution, + {}, # empty as to not cause issues when only 1 value is inputted + is_risky=True ) } \ No newline at end of file