forked from CastroFidel/winehelper
added color for the Run button/Stop it
This commit is contained in:
@@ -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, "Ошибка запуска",
|
||||||
|
Reference in New Issue
Block a user