diff --git a/gui/main_window.py b/gui/main_window.py index e4fd349..7d5956e 100644 --- a/gui/main_window.py +++ b/gui/main_window.py @@ -1,4 +1,4 @@ -from PySide6 import QtCore, QtWidgets +from PySide6 import QtCore, QtWidgets, QtGui from enum import Enum import webbrowser import plistlib @@ -423,6 +423,11 @@ class MainWindow(QtWidgets.QMainWindow): # update the value valueField.setText(new_str) + def delete_custom_gestalt_key(self, id: int, widget: QtWidgets.QWidget): + CustomGestaltTweaks.deactivate_tweak(id) + self.ui.customKeysLayout.removeWidget(widget) + widget.setParent(None) + def on_addGestaltKeyBtn_clicked(self): # create a blank gestalt value with default value of 1 key_identifier = CustomGestaltTweaks.create_tweak() @@ -439,10 +444,17 @@ class MainWindow(QtWidgets.QMainWindow): keyField.setPlaceholderText("Key") keyField.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeft) keyField.setTextMargins(5, 0, 5, 0) - keyField.setContentsMargins(0, 0, 50, 0) keyField.textEdited.connect(lambda txt, id=key_identifier: CustomGestaltTweaks.set_tweak_key(id, txt)) hlayout.addWidget(keyField) + # create the delete button + delBtn = QtWidgets.QToolButton(widget) + delBtn.setIcon(QtGui.QIcon(":/icon/trash.svg")) + delBtn.setStyleSheet("QToolButton { margin-right: 8px; background: none; border: none; }\nQToolButton:pressed { background: none; color: #FFFFFF; }") + delBtn.setContentsMargins(0, 0, 50, 0) + delBtn.clicked.connect(lambda _, id=key_identifier, w=widget: self.delete_custom_gestalt_key(id, w)) + hlayout.addWidget(delBtn) + # create the type dropdown valueTypeDrp = QtWidgets.QComboBox(widget) valueTypeDrp.setStyleSheet("QComboBox {\n background-color: #3b3b3b;\n border: none;\n color: #e8e8e8;\n font-size: 14px;\n padding-left: 8px;\n border-radius: 8px;\n}\n\nQComboBox::drop-down {\n image: url(:/icon/caret-down-fill.svg);\n icon-size: 16px;\n subcontrol-position: right center;\n margin-right: 8px;\n}\n\nQComboBox QAbstractItemView {\n background-color: #3b3b3b;\n outline: none;\n margin-top: 1px;\n}\n\nQComboBox QAbstractItemView::item {\n background-color: #3b3b3b;\n color: #e8e8e8;\n padding-left: 8px;\n}\n\nQComboBox QAbstractItemView::item:hover {\n background-color: #535353;\n color: #ffffff;\n}") diff --git a/tweaks/custom_gestalt_tweaks.py b/tweaks/custom_gestalt_tweaks.py index 15933e0..446d84f 100644 --- a/tweaks/custom_gestalt_tweaks.py +++ b/tweaks/custom_gestalt_tweaks.py @@ -19,10 +19,11 @@ class CustomGestaltTweak: def __init__(self, tweak: MobileGestaltTweak, value_type: ValueType): self.tweak = tweak self.value_type = value_type + self.deactivated = False # TODO: change everything to not return the dict since it is passed by reference def apply_tweak(self, plist: dict) -> dict: - if self.tweak.key == "": + if self.deactivated or self.tweak.key == "": # key was not set, don't apply (maybe user added it by accident) return plist self.tweak.enabled = True @@ -82,6 +83,10 @@ class CustomGestaltTweaks: new_str = "{ }" CustomGestaltTweaks.custom_tweaks[id].tweak.value = new_value return new_str + + def deactivate_tweak(id: int): + CustomGestaltTweaks.custom_tweaks[id].deactivated = True + CustomGestaltTweaks.custom_tweaks[id].tweak = None def apply_tweaks(plist: dict): for tweak in CustomGestaltTweaks.custom_tweaks: