forked from CastroFidel/winehelper
added deletion of the created prefix
This commit is contained in:
@@ -1877,10 +1877,20 @@ class WineHelperGUI(QMainWindow):
|
||||
self.management_container_groupbox.setVisible(False) # Скрыт, пока нет префиксов
|
||||
container_layout = QVBoxLayout(self.management_container_groupbox)
|
||||
|
||||
selector_layout = QHBoxLayout()
|
||||
self.created_prefix_selector = QComboBox()
|
||||
self.created_prefix_selector.setPlaceholderText("Выберите префикс для управления")
|
||||
self.created_prefix_selector.currentIndexChanged.connect(self.on_created_prefix_selected)
|
||||
container_layout.addWidget(self.created_prefix_selector)
|
||||
selector_layout.addWidget(self.created_prefix_selector, 1)
|
||||
|
||||
self.delete_prefix_button = QPushButton()
|
||||
self.delete_prefix_button.setIcon(QIcon.fromTheme("user-trash"))
|
||||
self.delete_prefix_button.setToolTip("Удалить выбранный префикс")
|
||||
self.delete_prefix_button.setEnabled(False)
|
||||
self.delete_prefix_button.clicked.connect(self.delete_selected_prefix)
|
||||
selector_layout.addWidget(self.delete_prefix_button)
|
||||
|
||||
container_layout.addLayout(selector_layout)
|
||||
|
||||
# --- GroupBox для управления выбранным префиксом ---
|
||||
self.prefix_management_groupbox = QGroupBox("Управление") # Заголовок будет меняться
|
||||
@@ -2004,12 +2014,50 @@ class WineHelperGUI(QMainWindow):
|
||||
if index == -1:
|
||||
self.current_managed_prefix_name = None
|
||||
self._setup_prefix_management_panel(None)
|
||||
self.delete_prefix_button.setEnabled(False)
|
||||
else:
|
||||
prefix_name = self.created_prefix_selector.itemText(index)
|
||||
self.current_managed_prefix_name = prefix_name
|
||||
self._setup_prefix_management_panel(prefix_name)
|
||||
self.delete_prefix_button.setEnabled(True)
|
||||
self._save_state()
|
||||
|
||||
def delete_selected_prefix(self):
|
||||
"""Удаляет префикс, выбранный в выпадающем списке на вкладке 'Создать префикс'."""
|
||||
prefix_name = self.current_managed_prefix_name
|
||||
if not prefix_name:
|
||||
return
|
||||
|
||||
msg_box = QMessageBox(self)
|
||||
msg_box.setIcon(QMessageBox.Question)
|
||||
msg_box.setWindowTitle('Подтверждение удаления')
|
||||
msg_box.setText(f'Вы уверены, что хотите удалить префикс "{prefix_name}"?\n\n'
|
||||
'Это действие необратимо и удалит все данные внутри префикса.')
|
||||
|
||||
yes_button = msg_box.addButton("Да", QMessageBox.YesRole)
|
||||
no_button = msg_box.addButton("Нет", QMessageBox.NoRole)
|
||||
msg_box.setDefaultButton(no_button)
|
||||
|
||||
msg_box.exec_()
|
||||
|
||||
# Если пользователь нажал не "Да", выходим
|
||||
if msg_box.clickedButton() != yes_button:
|
||||
return
|
||||
|
||||
prefix_path = os.path.join(Var.USER_WORK_PATH, "prefixes", prefix_name)
|
||||
|
||||
try:
|
||||
if os.path.isdir(prefix_path):
|
||||
shutil.rmtree(prefix_path)
|
||||
if prefix_name in self.created_prefixes_info:
|
||||
del self.created_prefixes_info[prefix_name]
|
||||
index_to_remove = self.created_prefix_selector.findText(prefix_name)
|
||||
if index_to_remove != -1:
|
||||
self.created_prefix_selector.removeItem(index_to_remove)
|
||||
QMessageBox.information(self, "Успех", f"Префикс '{prefix_name}' был успешно удален.")
|
||||
except Exception as e:
|
||||
QMessageBox.critical(self, "Ошибка удаления", f"Не удалось удалить префикс '{prefix_name}':\n{e}")
|
||||
|
||||
def on_prefix_name_edited(self, text):
|
||||
"""Сбрасывает состояние управления префиксом, когда пользователь вводит новое имя."""
|
||||
if text:
|
||||
|
Reference in New Issue
Block a user