8
8
from enum import Enum
9
9
from functools import wraps
10
10
from pathlib import Path
11
- from typing import TYPE_CHECKING
11
+ from typing import TYPE_CHECKING , override
12
12
from warnings import catch_warnings
13
13
14
14
import structlog
15
15
from PIL import Image , ImageQt
16
16
from PySide6 .QtCore import QEvent , QMimeData , QSize , Qt , QUrl
17
- from PySide6 .QtGui import QAction , QDrag , QEnterEvent , QPixmap
17
+ from PySide6 .QtGui import QAction , QDrag , QEnterEvent , QMouseEvent , QPixmap
18
18
from PySide6 .QtWidgets import (
19
19
QBoxLayout ,
20
20
QCheckBox ,
@@ -403,7 +403,7 @@ def set_count(self, count: str) -> None:
403
403
self .ext_badge .setHidden (True )
404
404
self .count_badge .setHidden (True )
405
405
406
- def set_filename_text (self , filename : Path | None ):
406
+ def set_filename_text (self , filename : Path ):
407
407
self .set_item_path (filename )
408
408
self .file_label .setText (str (filename .name ))
409
409
@@ -437,22 +437,21 @@ def update_size(self, timestamp: float, size: QSize):
437
437
size (QSize): The new thumbnail size to set.
438
438
"""
439
439
if timestamp > ItemThumb .update_cutoff :
440
- self .thumb_size = size .toTuple () # type: ignore
440
+ self .thumb_size = size .width (), size . height ()
441
441
self .thumb_button .setIconSize (size )
442
442
self .thumb_button .setMinimumSize (size )
443
443
self .thumb_button .setMaximumSize (size )
444
444
445
- def update_clickable (self , clickable : typing .Callable ):
445
+ def update_clickable (self , clickable : typing .Callable [[], None ] ):
446
446
"""Updates attributes of a thumbnail element."""
447
- if clickable :
448
- with catch_warnings (record = True ):
449
- self .thumb_button .clicked .disconnect ()
450
- self .thumb_button .clicked .connect (clickable )
447
+ with catch_warnings (record = True ):
448
+ self .thumb_button .clicked .disconnect ()
449
+ self .thumb_button .clicked .connect (clickable )
451
450
452
451
def set_item_id (self , item_id : int ):
453
452
self .item_id = item_id
454
453
455
- def set_item_path (self , path : Path | str | None ):
454
+ def set_item_path (self , path : Path | str ):
456
455
"""Set the absolute filepath for the item. Used for locating on disk."""
457
456
self .opener .set_filepath (path )
458
457
@@ -474,11 +473,13 @@ def show_check_badges(self, show: bool):
474
473
is_hidden = not (show or self .badge_active [badge_type ])
475
474
badge .setHidden (is_hidden )
476
475
477
- def enterEvent (self , event : QEnterEvent ) -> None : # noqa: N802
476
+ @override
477
+ def enterEvent (self , event : QEnterEvent ) -> None : # type: ignore[misc]
478
478
self .show_check_badges (show = True )
479
479
return super ().enterEvent (event )
480
480
481
- def leaveEvent (self , event : QEvent ) -> None : # noqa: N802
481
+ @override
482
+ def leaveEvent (self , event : QEvent ) -> None : # type: ignore[misc]
482
483
self .show_check_badges (show = False )
483
484
return super ().leaveEvent (event )
484
485
@@ -490,6 +491,9 @@ def on_badge_check(self, badge_type: BadgeType):
490
491
toggle_value = self .badges [badge_type ].isChecked ()
491
492
self .badge_active [badge_type ] = toggle_value
492
493
badge_values : dict [BadgeType , bool ] = {badge_type : toggle_value }
494
+ # TODO: Ensure that self.item_id is always an integer. During tests, it is currently None.
495
+ # This issue should be addressed by either fixing the test setup or modifying the
496
+ # self.driver.update_badges() method.
493
497
self .driver .update_badges (badge_values , self .item_id )
494
498
495
499
def toggle_item_tag (
@@ -506,7 +510,8 @@ def toggle_item_tag(
506
510
else :
507
511
pass
508
512
509
- def mouseMoveEvent (self , event ): # noqa: N802
513
+ @override
514
+ def mouseMoveEvent (self , event : QMouseEvent ) -> None : # type: ignore[misc]
510
515
if event .buttons () is not Qt .MouseButton .LeftButton :
511
516
return
512
517
@@ -521,6 +526,7 @@ def mouseMoveEvent(self, event): # noqa: N802
521
526
if not entry :
522
527
continue
523
528
529
+ assert self .lib .library_dir is not None
524
530
url = QUrl .fromLocalFile (Path (self .lib .library_dir ) / entry .path )
525
531
paths .append (url )
526
532
0 commit comments