diff --git a/src/tagstudio/qt/widgets/progress.py b/src/tagstudio/qt/widgets/progress.py index 205aed8a5..adf61f12f 100644 --- a/src/tagstudio/qt/widgets/progress.py +++ b/src/tagstudio/qt/widgets/progress.py @@ -29,7 +29,7 @@ def __init__( self.pb = QProgressDialog( labelText=label_text, minimum=minimum, - cancelButtonText=cancel_button_text, + cancelButtonText=cancel_button_text or "", maximum=maximum, ) self.root.addWidget(self.pb) diff --git a/src/tagstudio/qt/widgets/tag.py b/src/tagstudio/qt/widgets/tag.py index 31e686890..4ab55c88d 100644 --- a/src/tagstudio/qt/widgets/tag.py +++ b/src/tagstudio/qt/widgets/tag.py @@ -3,8 +3,8 @@ # Created for TagStudio: https://github.com/CyanVoxel/TagStudio -import typing -from types import FunctionType +from collections.abc import Callable +from typing import TYPE_CHECKING, override import structlog from PySide6.QtCore import QEvent, Qt, Signal @@ -20,7 +20,7 @@ logger = structlog.get_logger(__name__) # Only import for type checking/autocompletion, will not be imported at runtime. -if typing.TYPE_CHECKING: +if TYPE_CHECKING: from tagstudio.core.library.alchemy.library import Library @@ -31,7 +31,7 @@ def __init__( self, id: int | None = 0, alias: str | None = None, - on_remove_callback=None, + on_remove_callback: Callable[[], None] | None = None, ) -> None: super().__init__() @@ -84,11 +84,13 @@ def _adjust_width(self): self.text_field.setMinimumWidth(text_width) self.text_field.adjustSize() - def enterEvent(self, event: QEnterEvent) -> None: # noqa: N802 + @override + def enterEvent(self, event: QEnterEvent) -> None: self.update() return super().enterEvent(event) - def leaveEvent(self, event: QEvent) -> None: # noqa: N802 + @override + def leaveEvent(self, event: QEvent) -> None: self.update() return super().leaveEvent(event) @@ -106,9 +108,9 @@ def __init__( has_edit: bool, has_remove: bool, library: "Library | None" = None, - on_remove_callback: FunctionType | None = None, - on_click_callback: FunctionType | None = None, - on_edit_callback: FunctionType | None = None, + on_remove_callback: Callable[[], None] | None = None, + on_click_callback: Callable[[], None] | None = None, + on_edit_callback: Callable[[], None] | None = None, ) -> None: super().__init__() self.tag = tag @@ -271,13 +273,15 @@ def set_tag(self, tag: Tag | None) -> None: def set_has_remove(self, has_remove: bool): self.has_remove = has_remove - def enterEvent(self, event: QEnterEvent) -> None: # noqa: N802 + @override + def enterEvent(self, event: QEnterEvent) -> None: if self.has_remove: self.remove_button.setHidden(False) self.update() return super().enterEvent(event) - def leaveEvent(self, event: QEvent) -> None: # noqa: N802 + @override + def leaveEvent(self, event: QEvent) -> None: if self.has_remove: self.remove_button.setHidden(True) self.update() diff --git a/src/tagstudio/qt/widgets/tag_box.py b/src/tagstudio/qt/widgets/tag_box.py index 8b0051821..bcb3b29e8 100644 --- a/src/tagstudio/qt/widgets/tag_box.py +++ b/src/tagstudio/qt/widgets/tag_box.py @@ -4,6 +4,7 @@ import typing +from collections.abc import Iterable import structlog from PySide6.QtCore import Signal @@ -37,6 +38,8 @@ def __init__( ) -> None: super().__init__(title) + self.edit_modal: PanelModal + self.tags: set[Tag] = tags self.driver = ( driver # Used for creating tag click callbacks that search entries for that tag. @@ -49,7 +52,7 @@ def __init__( self.set_tags(self.tags) - def set_tags(self, tags: typing.Iterable[Tag]): + def set_tags(self, tags: Iterable[Tag]) -> None: tags_ = sorted(list(tags), key=lambda tag: self.driver.lib.tag_display_name(tag.id)) logger.info("[TagBoxWidget] Tags:", tags=tags) while self.base_layout.itemAt(0):