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")