diff --git a/gui/main_window.py b/gui/main_window.py index cc12dcb..71a7be7 100644 --- a/gui/main_window.py +++ b/gui/main_window.py @@ -221,6 +221,15 @@ class MainWindow(QtWidgets.QMainWindow): self.device_manager.set_current_device(index=index) # hide options that are for newer versions # remove the new dynamic island options + MinTweakVersions = { + "exploit": [("18.0", self.ui.featureFlagsPageBtn)], + "18.1": [self.ui.enableAIChk, self.ui.aiEnablerContent], + "18.0": [self.ui.aodChk, self.ui.iphone16SettingsChk] + } + MaxTweakVersions = { + "17.7": [self.ui.euEnablerContent] + } + try: self.ui.dynamicIslandDrp.removeItem(6) self.ui.dynamicIslandDrp.removeItem(5) @@ -232,24 +241,41 @@ class MainWindow(QtWidgets.QMainWindow): else: self.ui.rdarFixChk.show() self.ui.rdarFixChk.setText(f"{rdar_title} (modifies resolution)") - if Version(self.device_manager.data_singleton.current_device.version) >= Version("18.1"): - self.ui.enableAIChk.show() - self.ui.aiEnablerContent.hide() - else: - self.ui.enableAIChk.hide() - self.ui.aiEnablerContent.hide() - if Version(self.device_manager.data_singleton.current_device.version) >= Version("18.0"): - self.ui.aodChk.show() - self.ui.iphone16SettingsChk.show() - if self.device_manager.data_singleton.current_device.has_exploit(): - self.ui.featureFlagsPageBtn.show() + device_ver = Version(self.device_manager.data_singleton.current_device.version) + # toggle option visibility for the minimum versions + for version in MinTweakVersions.keys(): + if version == "exploit": + # disable if the exploit is not available + for pair in MinTweakVersions[version]: + if self.device_manager.data_singleton.current_device.has_exploit() and device_ver >= Version(pair[0]): + pair[1].show() + else: + pair[1].hide() + else: + # show views if the version is higher + parsed_ver = Version(version) + for view in MinTweakVersions[version]: + if device_ver >= parsed_ver: + view.show() + else: + view.hide() + # toggle option visibility for the max versions + for version in MaxTweakVersions.keys(): + parsed_ver = Version(version) + for view in MaxTweakVersions[version]: + if device_ver <= parsed_ver: + view.show() + else: + view.hide() + if device_ver >= Version("18.0"): # show the other dynamic island options self.ui.dynamicIslandDrp.addItem("2622 (iPhone 16 Pro Dynamic Island)") self.ui.dynamicIslandDrp.addItem("2868 (iPhone 16 Pro Max Dynamic Island)") + # eligibility page button + if device_ver >= Version("17.4") and (device_ver <= Version("17.7") or device_ver >= Version("18.1")): + self.ui.euEnablerPageBtn.show() else: - self.ui.aodChk.hide() - self.ui.iphone16SettingsChk.hide() - self.ui.featureFlagsPageBtn.hide() + self.ui.euEnablerPageBtn.hide() else: self.device_manager.set_current_device(index=None) diff --git a/qt/mainwindow.ui b/qt/mainwindow.ui index 4dc8b8c..ff3e970 100644 --- a/qt/mainwindow.ui +++ b/qt/mainwindow.ui @@ -2510,13 +2510,6 @@ what you are doing. - - - - Enable EU Enabler - - - @@ -2536,22 +2529,44 @@ what you are doing. 0 - - - Method Type - - - - - - - - 150 - 16777215 - - - - QComboBox { + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Enable EU Enabler + + + + + + + Method Type + + + + + + + + 150 + 16777215 + + + + QComboBox { background-color: #3b3b3b; border: none; color: #e8e8e8; @@ -2583,49 +2598,52 @@ QComboBox QAbstractItemView::item:hover { background-color: #535353; color: #ffffff; } - - - - Method 1 - - - - - Method 2 - - - - - - - - Region Code (Should be 2 letters) - - - - - - - Region Code (Default: US) - - - - - - - false - - - QFrame { + + + + Method 1 + + + + + Method 2 + + + + + + + + Region Code (Should be 2 letters) + + + + + + + Region Code (Default: US) + + + + + + + false + + + QFrame { color: #414141; } - - - QFrame::Plain - - - Qt::Horizontal - + + + QFrame::Plain + + + Qt::Horizontal + + + + diff --git a/qt/mainwindow_ui.py b/qt/mainwindow_ui.py index f81325c..75b8fdd 100644 --- a/qt/mainwindow_ui.py +++ b/qt/mainwindow_ui.py @@ -1374,23 +1374,28 @@ class Ui_Nugget(object): self.verticalLayout_17.addWidget(self.line_13) - self.euEnablerEnabledChk = QCheckBox(self.euEnablerPage) - self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk") - - self.verticalLayout_17.addWidget(self.euEnablerEnabledChk) - self.euEnablerPageContent = QWidget(self.euEnablerPage) self.euEnablerPageContent.setObjectName(u"euEnablerPageContent") self.euEnablerPageContent.setEnabled(False) self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent) self.verticalLayout_16.setObjectName(u"verticalLayout_16") self.verticalLayout_16.setContentsMargins(0, 0, 0, 0) - self.label_5 = QLabel(self.euEnablerPageContent) + self.euEnablerContent = QWidget(self.euEnablerPageContent) + self.euEnablerContent.setObjectName(u"euEnablerContent") + self.verticalLayout_36 = QVBoxLayout(self.euEnablerContent) + self.verticalLayout_36.setObjectName(u"verticalLayout_36") + self.verticalLayout_36.setContentsMargins(0, 0, 0, 0) + self.euEnablerEnabledChk = QCheckBox(self.euEnablerContent) + self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk") + + self.verticalLayout_36.addWidget(self.euEnablerEnabledChk) + + self.label_5 = QLabel(self.euEnablerContent) self.label_5.setObjectName(u"label_5") - self.verticalLayout_16.addWidget(self.label_5) + self.verticalLayout_36.addWidget(self.label_5) - self.methodChoiceDrp = QComboBox(self.euEnablerPageContent) + self.methodChoiceDrp = QComboBox(self.euEnablerContent) self.methodChoiceDrp.addItem("") self.methodChoiceDrp.addItem("") self.methodChoiceDrp.setObjectName(u"methodChoiceDrp") @@ -1428,19 +1433,19 @@ class Ui_Nugget(object): " color: #ffffff;\n" "}") - self.verticalLayout_16.addWidget(self.methodChoiceDrp) + self.verticalLayout_36.addWidget(self.methodChoiceDrp) - self.label_6 = QLabel(self.euEnablerPageContent) + self.label_6 = QLabel(self.euEnablerContent) self.label_6.setObjectName(u"label_6") - self.verticalLayout_16.addWidget(self.label_6) + self.verticalLayout_36.addWidget(self.label_6) - self.regionCodeTxt = QLineEdit(self.euEnablerPageContent) + self.regionCodeTxt = QLineEdit(self.euEnablerContent) self.regionCodeTxt.setObjectName(u"regionCodeTxt") - self.verticalLayout_16.addWidget(self.regionCodeTxt) + self.verticalLayout_36.addWidget(self.regionCodeTxt) - self.line_16 = QFrame(self.euEnablerPageContent) + self.line_16 = QFrame(self.euEnablerContent) self.line_16.setObjectName(u"line_16") self.line_16.setEnabled(False) self.line_16.setStyleSheet(u"QFrame {\n" @@ -1449,7 +1454,10 @@ class Ui_Nugget(object): self.line_16.setFrameShadow(QFrame.Plain) self.line_16.setFrameShape(QFrame.HLine) - self.verticalLayout_16.addWidget(self.line_16) + self.verticalLayout_36.addWidget(self.line_16) + + + self.verticalLayout_16.addWidget(self.euEnablerContent) self.enableAIChk = QCheckBox(self.euEnablerPageContent) self.enableAIChk.setObjectName(u"enableAIChk") diff --git a/qt/ui_mainwindow.py b/qt/ui_mainwindow.py index 45b807f..7c536dd 100644 --- a/qt/ui_mainwindow.py +++ b/qt/ui_mainwindow.py @@ -1374,23 +1374,28 @@ class Ui_Nugget(object): self.verticalLayout_17.addWidget(self.line_13) - self.euEnablerEnabledChk = QCheckBox(self.euEnablerPage) - self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk") - - self.verticalLayout_17.addWidget(self.euEnablerEnabledChk) - self.euEnablerPageContent = QWidget(self.euEnablerPage) self.euEnablerPageContent.setObjectName(u"euEnablerPageContent") self.euEnablerPageContent.setEnabled(False) self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent) self.verticalLayout_16.setObjectName(u"verticalLayout_16") self.verticalLayout_16.setContentsMargins(0, 0, 0, 0) - self.label_5 = QLabel(self.euEnablerPageContent) + self.euEnablerContent = QWidget(self.euEnablerPageContent) + self.euEnablerContent.setObjectName(u"euEnablerContent") + self.verticalLayout_36 = QVBoxLayout(self.euEnablerContent) + self.verticalLayout_36.setObjectName(u"verticalLayout_36") + self.verticalLayout_36.setContentsMargins(0, 0, 0, 0) + self.euEnablerEnabledChk = QCheckBox(self.euEnablerContent) + self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk") + + self.verticalLayout_36.addWidget(self.euEnablerEnabledChk) + + self.label_5 = QLabel(self.euEnablerContent) self.label_5.setObjectName(u"label_5") - self.verticalLayout_16.addWidget(self.label_5) + self.verticalLayout_36.addWidget(self.label_5) - self.methodChoiceDrp = QComboBox(self.euEnablerPageContent) + self.methodChoiceDrp = QComboBox(self.euEnablerContent) self.methodChoiceDrp.addItem("") self.methodChoiceDrp.addItem("") self.methodChoiceDrp.setObjectName(u"methodChoiceDrp") @@ -1428,19 +1433,19 @@ class Ui_Nugget(object): " color: #ffffff;\n" "}") - self.verticalLayout_16.addWidget(self.methodChoiceDrp) + self.verticalLayout_36.addWidget(self.methodChoiceDrp) - self.label_6 = QLabel(self.euEnablerPageContent) + self.label_6 = QLabel(self.euEnablerContent) self.label_6.setObjectName(u"label_6") - self.verticalLayout_16.addWidget(self.label_6) + self.verticalLayout_36.addWidget(self.label_6) - self.regionCodeTxt = QLineEdit(self.euEnablerPageContent) + self.regionCodeTxt = QLineEdit(self.euEnablerContent) self.regionCodeTxt.setObjectName(u"regionCodeTxt") - self.verticalLayout_16.addWidget(self.regionCodeTxt) + self.verticalLayout_36.addWidget(self.regionCodeTxt) - self.line_16 = QFrame(self.euEnablerPageContent) + self.line_16 = QFrame(self.euEnablerContent) self.line_16.setObjectName(u"line_16") self.line_16.setEnabled(False) self.line_16.setStyleSheet(u"QFrame {\n" @@ -1449,7 +1454,10 @@ class Ui_Nugget(object): self.line_16.setFrameShadow(QFrame.Plain) self.line_16.setFrameShape(QFrame.Shape.HLine) - self.verticalLayout_16.addWidget(self.line_16) + self.verticalLayout_36.addWidget(self.line_16) + + + self.verticalLayout_16.addWidget(self.euEnablerContent) self.enableAIChk = QCheckBox(self.euEnablerPageContent) self.enableAIChk.setObjectName(u"enableAIChk")