From b7b1bc64068c160329b50b6bcc4a8fd37dc965a7 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Fri, 2 Feb 2024 14:51:14 +0200 Subject: [PATCH] RareSettings: Use QDesktopServices to open the file manager for us --- rare/components/tabs/settings/rare.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/rare/components/tabs/settings/rare.py b/rare/components/tabs/settings/rare.py index ba47c0f9..94e51d1e 100644 --- a/rare/components/tabs/settings/rare.py +++ b/rare/components/tabs/settings/rare.py @@ -1,11 +1,9 @@ import os -import platform -import subprocess import locale -import sys from logging import getLogger -from PyQt5.QtCore import QSettings, Qt, pyqtSlot +from PyQt5.QtCore import QSettings, Qt, pyqtSlot, QUrl +from PyQt5.QtGui import QDesktopServices from PyQt5.QtWidgets import QWidget, QMessageBox from rare.components.tabs.settings.widgets.rpc import RPCSettings @@ -145,6 +143,7 @@ class RareSettings(QWidget, Ui_RareSettings): # self.log_dir_clean_button.setVisible(False) # self.log_dir_size_label.setVisible(False) + @pyqtSlot() def clean_logdir(self): for f in log_dir().iterdir(): try: @@ -159,6 +158,7 @@ class RareSettings(QWidget, Ui_RareSettings): ) self.log_dir_size_label.setText(format_size(size)) + @pyqtSlot() def create_start_menu_link(self): try: if not os.path.exists(self.start_menu_link): @@ -176,6 +176,7 @@ class RareSettings(QWidget, Ui_RareSettings): self.tr("Permission error, cannot remove {}").format(self.start_menu_link), ) + @pyqtSlot() def create_desktop_link(self): try: if not os.path.exists(self.desktop_link): @@ -220,18 +221,16 @@ class RareSettings(QWidget, Ui_RareSettings): view = LibraryView(self.view_combo.itemData(index, Qt.UserRole)) self.settings.setValue(options.library_view.key, int(view)) - @staticmethod - def open_directory(): - if platform.system() == "Windows": - os.startfile(log_dir()) # pylint: disable=E1101 - else: - opener = "open" if sys.platform == "darwin" else "xdg-open" - subprocess.Popen([opener, log_dir()]) + @pyqtSlot() + def open_directory(self): + QDesktopServices.openUrl(QUrl(f"file://{log_dir()}")) + @pyqtSlot() def save_window_size(self): self.settings.setValue(options.save_size.key, self.save_size.isChecked()) self.settings.remove(options.window_size.key) + @pyqtSlot(int) def on_lang_changed(self, index: int): lang_code = self.lang_select.itemData(index, Qt.UserRole) if lang_code == locale.getlocale()[0]: