diff --git a/tagstudio/src/core/library.py b/tagstudio/src/core/library.py index eae070a7..4a4b70f4 100644 --- a/tagstudio/src/core/library.py +++ b/tagstudio/src/core/library.py @@ -341,7 +341,7 @@ class Library: # That filename can then be used to provide quick lookup to image metadata entries in the Library. self.filename_to_entry_id_map: dict[Path, int] = {} # A list of file extensions to be ignored by TagStudio. - self.default_ext_blacklist: list = ["json", "xmp", "aae"] + self.default_ext_blacklist: list = [".json", ".xmp", ".aae"] self.ignored_extensions: list = self.default_ext_blacklist # Tags ================================================================= diff --git a/tagstudio/src/qt/modals/file_extension.py b/tagstudio/src/qt/modals/file_extension.py index f0ce9195..e61368dc 100644 --- a/tagstudio/src/qt/modals/file_extension.py +++ b/tagstudio/src/qt/modals/file_extension.py @@ -4,19 +4,34 @@ from PySide6.QtCore import Signal, Qt -from PySide6.QtWidgets import QVBoxLayout, QPushButton, QTableWidget, QTableWidgetItem +from PySide6.QtWidgets import ( + QVBoxLayout, + QPushButton, + QTableWidget, + QTableWidgetItem, + QStyledItemDelegate, + QLineEdit, +) from src.core.library import Library from src.qt.widgets.panel import PanelWidget +class FileExtensionItemDelegate(QStyledItemDelegate): + def setModelData(self, editor, model, index): + if isinstance(editor, QLineEdit): + if editor.text() and not editor.text().startswith("."): + editor.setText(f".{editor.text()}") + super().setModelData(editor, model, index) + + class FileExtensionModal(PanelWidget): done = Signal() def __init__(self, library: "Library"): super().__init__() self.lib = library - self.setWindowTitle(f"File Extensions") + self.setWindowTitle("File Extensions") self.setWindowModality(Qt.WindowModality.ApplicationModal) self.setMinimumSize(200, 400) self.root_layout = QVBoxLayout(self) @@ -26,6 +41,7 @@ class FileExtensionModal(PanelWidget): self.table.horizontalHeader().setVisible(False) self.table.verticalHeader().setVisible(False) self.table.horizontalHeader().setStretchLastSection(True) + self.table.setItemDelegate(FileExtensionItemDelegate()) self.add_button = QPushButton() self.add_button.setText("&Add Extension")