Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/tagstudio/qt/mixed/media_player.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import typing
from pathlib import Path
from time import gmtime
from typing import override
from typing import cast, override

import structlog
from PIL import Image, ImageDraw
Expand Down Expand Up @@ -411,11 +411,11 @@ def play(self, filepath: Path) -> None:
self.player.play()

def load_toggle_play_icon(self, playing: bool) -> None:
icon = self.driver.rm.pause_icon if playing else self.driver.rm.play_icon
icon = cast(bytes, self.driver.rm.pause_icon if playing else self.driver.rm.play_icon)
self.play_pause.load(icon)

def load_mute_unmute_icon(self, muted: bool) -> None:
icon = self.driver.rm.volume_mute_icon if muted else self.driver.rm.volume_icon
icon = cast(bytes, self.driver.rm.volume_mute_icon if muted else self.driver.rm.volume_icon)
self.mute_unmute.load(icon)

def slider_value_changed(self, value: int) -> None:
Expand Down
29 changes: 13 additions & 16 deletions src/tagstudio/qt/mixed/migration_modal.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import traceback
from pathlib import Path
from typing import cast

import structlog
from PySide6.QtCore import QObject, Qt, QThreadPool, Signal
Expand Down Expand Up @@ -61,8 +62,8 @@ def __init__(self, path: Path):
self.path: Path = path

self.stack: list[PagedPanelState] = []
self.json_lib: JsonLibrary = None
self.sql_lib: SqliteLibrary = None
self.json_lib: JsonLibrary = None # pyright: ignore[reportAttributeAccessIssue]
self.sql_lib: SqliteLibrary = None # pyright: ignore[reportAttributeAccessIssue]
self.is_migration_initialized: bool = False
self.discrepancies: list[str] = []

Expand All @@ -72,7 +73,7 @@ def __init__(self, path: Path):
self.old_entry_count: int = 0
self.old_tag_count: int = 0
self.old_ext_count: int = 0
self.old_ext_type: bool = None
self.old_ext_type: bool = None # pyright: ignore[reportAttributeAccessIssue]

self.field_parity: bool = False
self.path_parity: bool = False
Expand Down Expand Up @@ -367,7 +368,7 @@ def migration_progress(self, skip_ui: bool = False):
minimum=0,
maximum=0,
)
pb.setCancelButton(None)
pb.setCancelButton(None) # pyright: ignore[reportArgumentType]
self.body_wrapper_01.layout().addWidget(pb)

try:
Expand All @@ -390,7 +391,7 @@ def migration_progress(self, skip_ui: bool = False):
pb.setMinimum(1), # type: ignore
pb.setValue(1), # type: ignore
# Enable the finish button
self.stack[1].buttons[4].setDisabled(False),
cast(QPushButtonWrapper, self.stack[1].buttons[4]).setDisabled(False),
)
)
QThreadPool.globalInstance().start(r)
Expand Down Expand Up @@ -474,7 +475,7 @@ def update_sql_value_ui(self, show_msg_box: bool = True):
)
self.update_sql_value(
self.ext_type_row,
self.sql_lib.prefs(LibraryPrefs.IS_EXCLUDE_LIST),
self.sql_lib.prefs(LibraryPrefs.IS_EXCLUDE_LIST), # pyright: ignore[reportArgumentType]
self.old_ext_type,
)
logger.info("Parity check complete!")
Expand Down Expand Up @@ -636,18 +637,15 @@ def check_path_parity(self) -> bool:

def check_subtag_parity(self) -> bool:
"""Check if all JSON parent tags match the new SQL parent tags."""
sql_parent_tags: set[int] = None
json_parent_tags: set[int] = None

with Session(self.sql_lib.engine) as session:
for tag in self.sql_lib.tags:
tag_id = tag.id # Tag IDs start at 0
sql_parent_tags = set(
sql_parent_tags: set[int] = set(
session.scalars(select(TagParent.parent_id).where(TagParent.child_id == tag.id))
)

# JSON tags allowed self-parenting; SQL tags no longer allow this.
json_parent_tags = set(self.json_lib.get_tag(tag_id).subtag_ids)
json_parent_tags: set[int] = set(self.json_lib.get_tag(tag_id).subtag_ids)
json_parent_tags.discard(tag_id)

logger.info(
Expand Down Expand Up @@ -677,16 +675,15 @@ def check_ext_type(self) -> bool:

def check_alias_parity(self) -> bool:
"""Check if all JSON aliases match the new SQL aliases."""
sql_aliases: set[str] = None
json_aliases: set[str] = None

with Session(self.sql_lib.engine) as session:
for tag in self.sql_lib.tags:
tag_id = tag.id # Tag IDs start at 0
sql_aliases = set(
sql_aliases: set[str] = set(
session.scalars(select(TagAlias.name).where(TagAlias.tag_id == tag.id))
)
json_aliases = set([x for x in self.json_lib.get_tag(tag_id).aliases if x])
json_aliases: set[str] = set(
[x for x in self.json_lib.get_tag(tag_id).aliases if x]
)

logger.info(
"[Alias Parity]",
Expand Down
20 changes: 13 additions & 7 deletions src/tagstudio/qt/mixed/pagination.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

"""A pagination widget created for TagStudio."""

from typing import override
from typing import cast, override

from PIL import Image, ImageQt
from PySide6.QtCore import QObject, QSize, Signal
from PySide6.QtCore import QSize, Signal
from PySide6.QtGui import QIntValidator, QPixmap
from PySide6.QtWidgets import QHBoxLayout, QLabel, QLineEdit, QSizePolicy, QWidget

Expand All @@ -17,7 +17,7 @@
from tagstudio.qt.views.qbutton_wrapper import QPushButtonWrapper


class Pagination(QWidget, QObject):
class Pagination(QWidget):
"""Widget containing controls for navigating between pages of items."""

index = Signal(int)
Expand Down Expand Up @@ -160,8 +160,8 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
srt_scale = max(1, (7 - (end_page - index)))

if page_count >= 8:
end_size = self.button_size.width() * end_scale + (3 * (end_scale - 1))
srt_size = self.button_size.width() * srt_scale + (3 * (srt_scale - 1))
end_size = self.button_size.width() * end_scale + (3 * (end_scale - 1)) # pyright: ignore[reportPossiblyUnboundVariable]
srt_size = self.button_size.width() * srt_scale + (3 * (srt_scale - 1)) # pyright: ignore[reportPossiblyUnboundVariable]
self.end_ellipses.setMinimumWidth(end_size)
self.end_ellipses.setMaximumWidth(end_size)
self.start_ellipses.setMinimumWidth(srt_size)
Expand Down Expand Up @@ -223,7 +223,10 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
str(i + 1)
)
self._assign_click(
self.start_buffer_layout.itemAt(i - start_offset).widget(),
cast(
QPushButtonWrapper,
self.start_buffer_layout.itemAt(i - start_offset).widget(),
),
i,
)
sbc += 1
Expand All @@ -239,7 +242,10 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
str(i + 1)
)
self._assign_click(
self.end_buffer_layout.itemAt(i - end_offset).widget(),
cast(
QPushButtonWrapper,
self.end_buffer_layout.itemAt(i - end_offset).widget(),
),
i,
)
else:
Expand Down
Loading