diff --git a/kde-display-profile-manager.py b/kde-display-profile-manager.py index 119cb2b..f45ad9f 100755 --- a/kde-display-profile-manager.py +++ b/kde-display-profile-manager.py @@ -237,6 +237,10 @@ class DisplayProfileManagerGUI(QMainWindow): self.refresh_btn = QPushButton("Refresh") self.refresh_btn.clicked.connect(self.refresh_profiles) btn_layout.addWidget(self.refresh_btn) + + self.delete_btn = QPushButton("Delete Profile") + self.delete_btn.clicked.connect(self.on_delete_clicked) + btn_layout.addWidget(self.delete_btn) self.copy_btn = QPushButton("Copy Load Cmd") self.copy_btn.setMinimumWidth(120) @@ -297,6 +301,27 @@ class DisplayProfileManagerGUI(QMainWindow): except Exception as e: QMessageBox.critical(self, "Error", f"Failed to load profile: {e}") + def on_delete_clicked(self): + selected_item = self.profile_list.currentItem() + if not selected_item: + QMessageBox.warning(self, "No Selection", "Please select a profile to delete.") + return + + profile_name = selected_item.text() + profile_path = DEFAULT_PROFILE_DIR / f"{profile_name}.json" + + reply = QMessageBox.question(self, "Confirm Delete", + f"Are you sure you want to delete profile '{profile_name}'?", + QMessageBox.Yes | QMessageBox.No) + + if reply == QMessageBox.Yes: + try: + os.remove(profile_path) + self.refresh_profiles() + QMessageBox.information(self, "Success", f"Profile '{profile_name}' deleted.") + except Exception as e: + QMessageBox.critical(self, "Error", f"Failed to delete profile: {e}") + def on_copy_clicked(self): selected_item = self.profile_list.currentItem() if not selected_item: