diff --git a/winehelper_gui.py b/winehelper_gui.py index 792184b6..cd469a95 100644 --- a/winehelper_gui.py +++ b/winehelper_gui.py @@ -1762,6 +1762,7 @@ class WineHelperGUI(QMainWindow): if show_global: self.backup_button.setVisible(False) self.create_log_button.setVisible(False) + self.open_log_dir_button.setVisible(False) self.uninstall_button.setVisible(False) self.current_selected_app = None @@ -1872,6 +1873,12 @@ class WineHelperGUI(QMainWindow): self.create_log_button.clicked.connect(self.run_installed_app_with_debug) installed_global_layout.addWidget(self.create_log_button) + self.open_log_dir_button = QPushButton("Открыть папку с логом") + self.open_log_dir_button.setIcon(QIcon.fromTheme("folder-open")) + self.open_log_dir_button.clicked.connect(self.open_log_directory) + self.open_log_dir_button.setVisible(False) # Скрыта по умолчанию + installed_global_layout.addWidget(self.open_log_dir_button) + self.backup_button = QPushButton("Создать резервную копию префикса") self.backup_button.setIcon(QIcon.fromTheme("document-save")) self.backup_button.clicked.connect(self.backup_prefix_for_app) @@ -3378,6 +3385,7 @@ class WineHelperGUI(QMainWindow): self.installed_global_action_widget.setVisible(True) self.backup_button.setVisible(True) self.create_log_button.setVisible(True) + self.update_open_log_dir_button_visibility() self.uninstall_button.setVisible(True) self.manual_install_path_widget.setVisible(False) @@ -3386,6 +3394,22 @@ class WineHelperGUI(QMainWindow): self.current_selected_app = None self.info_panel.setVisible(False) + def update_open_log_dir_button_visibility(self): + """Проверяет наличие лог-файла и обновляет видимость кнопки.""" + log_path = os.path.join(os.path.expanduser("~"), "winehelper_backup_log", "winehelper.log") + self.open_log_dir_button.setVisible(os.path.exists(log_path)) + + def open_log_directory(self): + """Открывает директорию с лог-файлами.""" + log_dir_path = os.path.join(os.path.expanduser("~"), "winehelper_backup_log") + if os.path.isdir(log_dir_path): + try: + subprocess.Popen(['xdg-open', log_dir_path]) + except Exception as e: + QMessageBox.warning(self, "Ошибка", f"Не удалось открыть директорию:\n{log_dir_path}\n\nОшибка: {e}") + else: + QMessageBox.information(self, "Информация", f"Директория с логами не найдена:\n{log_dir_path}") + def _get_prefix_name_for_selected_app(self): """Извлекает имя префикса для выбранного приложения.""" if not self.current_selected_app or 'desktop_path' not in self.current_selected_app: