feat(FileExplorer): drop system icons from preview

Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
2025-06-28 08:47:59 +05:00
parent d501ef039e
commit b9ae800e1f

View File

@ -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)