added color for the Run button/Stop it

This commit is contained in:
Sergey Palcheh
2025-10-18 16:39:22 +06:00
parent 14273f723b
commit f788307f05

View File

@@ -1626,6 +1626,17 @@ class WineHelperGUI(QMainWindow):
self.FRAME_STYLE_DEFAULT = "QFrame { border: 2px solid transparent; border-radius: 8px; padding: 0px; }" self.FRAME_STYLE_DEFAULT = "QFrame { border: 2px solid transparent; border-radius: 8px; padding: 0px; }"
self.FRAME_STYLE_SELECTED = "QFrame { border: 2px solid #0078d7; border-radius: 8px; padding: 0px; }" self.FRAME_STYLE_SELECTED = "QFrame { border: 2px solid #0078d7; border-radius: 8px; padding: 0px; }"
# Стили для кнопок Запустить/Остановить
self.RUN_BUTTON_STYLE = """
QPushButton {
background-color: #4CAF50; color: white;
font-weight: bold;
}
"""
self.STOP_BUTTON_STYLE = """
QPushButton { background-color: #d32f2f; color: white; font-weight: bold; }
"""
# Основные переменные # Основные переменные
self.winehelper_path = Var.RUN_SCRIPT self.winehelper_path = Var.RUN_SCRIPT
self.process = None self.process = None
@@ -1889,6 +1900,7 @@ class WineHelperGUI(QMainWindow):
# --- Верхний ряд кнопок --- # --- Верхний ряд кнопок ---
top_buttons_layout = QHBoxLayout() top_buttons_layout = QHBoxLayout()
self.run_button = QPushButton("Запустить") self.run_button = QPushButton("Запустить")
self.run_button.setStyleSheet(self.RUN_BUTTON_STYLE)
self.run_button.clicked.connect(self.toggle_run_stop_app) self.run_button.clicked.connect(self.toggle_run_stop_app)
top_buttons_layout.addWidget(self.run_button) top_buttons_layout.addWidget(self.run_button)
installed_action_layout.addLayout(top_buttons_layout) installed_action_layout.addLayout(top_buttons_layout)
@@ -3468,11 +3480,7 @@ class WineHelperGUI(QMainWindow):
self.current_selected_app['name'] = name self.current_selected_app['name'] = name
self.current_selected_app['exec'] = exec_cmd self.current_selected_app['exec'] = exec_cmd
# Состояния кнопки self._set_run_button_state(desktop_path in self.running_apps)
if desktop_path in self.running_apps:
self.run_button.setText("Остановить")
else:
self.run_button.setText("Запустить")
# Показываем панель информации # Показываем панель информации
self.info_panel.setVisible(True) self.info_panel.setVisible(True)
@@ -3865,10 +3873,19 @@ class WineHelperGUI(QMainWindow):
# Если текущее выбранное приложение - то, что только что завершилось, обновляем кнопку # Если текущее выбранное приложение - то, что только что завершилось, обновляем кнопку
if self.current_selected_app and self.current_selected_app.get('desktop_path') == desktop_path: if self.current_selected_app and self.current_selected_app.get('desktop_path') == desktop_path:
self.run_button.setText("Запустить") self._set_run_button_state(False)
else: else:
print(f"Предупреждение: получен сигнал finished для неизвестного процесса {desktop_path}") print(f"Предупреждение: получен сигнал finished для неизвестного процесса {desktop_path}")
def _set_run_button_state(self, is_running):
"""Устанавливает текст и стиль для кнопки Запустить/Остановить."""
if is_running:
self.run_button.setText("Остановить")
self.run_button.setStyleSheet(self.STOP_BUTTON_STYLE)
else:
self.run_button.setText("Запустить")
self.run_button.setStyleSheet(self.RUN_BUTTON_STYLE)
def _run_app_launcher(self, debug=False): def _run_app_launcher(self, debug=False):
"""Внутренний метод для запуска приложения (с отладкой или без) с использованием QProcess.""" """Внутренний метод для запуска приложения (с отладкой или без) с использованием QProcess."""
if not self.current_selected_app or 'exec' not in self.current_selected_app: if not self.current_selected_app or 'exec' not in self.current_selected_app:
@@ -3935,7 +3952,7 @@ class WineHelperGUI(QMainWindow):
raise RuntimeError(f"Не удалось запустить процесс: {process.errorString()}") raise RuntimeError(f"Не удалось запустить процесс: {process.errorString()}")
self.running_apps[desktop_path] = process self.running_apps[desktop_path] = process
self.run_button.setText("Остановить") self._set_run_button_state(True)
print(f"Запущено: {program} {' '.join(arguments)}") print(f"Запущено: {program} {' '.join(arguments)}")
except Exception as e: except Exception as e:
QMessageBox.critical(self, "Ошибка запуска", QMessageBox.critical(self, "Ошибка запуска",