From b9ae800e1f52e5a1248845a2ac873e3068d5c2f2 Mon Sep 17 00:00:00 2001 From: Boris Yumankulov Date: Sat, 28 Jun 2025 08:47:59 +0500 Subject: [PATCH] feat(FileExplorer): drop system icons from preview Signed-off-by: Boris Yumankulov --- portprotonqt/dialogs.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/portprotonqt/dialogs.py b/portprotonqt/dialogs.py index b81f433..7856ccc 100644 --- a/portprotonqt/dialogs.py +++ b/portprotonqt/dialogs.py @@ -268,7 +268,13 @@ class FileExplorer(QDialog): try: if self.current_path != "/": item = QListWidgetItem("../") - item.setIcon(self.theme_manager.get_icon("folder")) + folder_icon = self.theme_manager.get_icon("folder") + # Ensure the icon is a QIcon + if isinstance(folder_icon, str) and os.path.isfile(folder_icon): + folder_icon = QIcon(folder_icon) + elif not isinstance(folder_icon, QIcon): + folder_icon = QIcon() # Fallback to empty icon + item.setIcon(folder_icon) self.file_list.addItem(item) items = os.listdir(self.current_path) @@ -284,7 +290,13 @@ class FileExplorer(QDialog): for d in sorted(dirs): item = QListWidgetItem(f"{d}/") - item.setIcon(self.theme_manager.get_icon("folder")) + folder_icon = self.theme_manager.get_icon("folder") + # Ensure the icon is a QIcon + if isinstance(folder_icon, str) and os.path.isfile(folder_icon): + folder_icon = QIcon(folder_icon) + elif not isinstance(folder_icon, QIcon): + folder_icon = QIcon() # Fallback to empty icon + item.setIcon(folder_icon) self.file_list.addItem(item) for f in sorted(files): @@ -296,8 +308,6 @@ class FileExplorer(QDialog): pixmap = QPixmap(file_path) if not pixmap.isNull(): item.setIcon(QIcon(pixmap.scaled(64, 64, Qt.AspectRatioMode.KeepAspectRatio))) - else: - item.setIcon(QIcon.fromTheme("image-x-generic-symbolic")) elif file_path.lower().endswith(".exe"): tmp = tempfile.NamedTemporaryFile(suffix='.png', delete=False) tmp.close() @@ -305,15 +315,7 @@ class FileExplorer(QDialog): pixmap = QPixmap(tmp.name) if not pixmap.isNull(): item.setIcon(QIcon(pixmap)) - else: - item.setIcon(QIcon.fromTheme("application-x-executable-symbolic")) os.unlink(tmp.name) - else: - item.setIcon(QIcon.fromTheme("application-x-executable-symbolic")) - else: - icon_name = self.mime_db.mimeTypeForFile(file_path).iconName() - symbolic_icon_name = icon_name + "-symbolic" if icon_name else "text-x-generic-symbolic" - item.setIcon(QIcon.fromTheme(symbolic_icon_name, QIcon.fromTheme("text-x-generic-symbolic"))) self.file_list.addItem(item)