55"""A pagination widget created for TagStudio."""
66
77from typing import cast , override
8+ from warnings import catch_warnings
89
910from PIL import Image , ImageQt
1011from PySide6 .QtCore import QSize , Signal
1112from PySide6 .QtGui import QIntValidator , QPixmap
12- from PySide6 .QtWidgets import QHBoxLayout , QLabel , QLineEdit , QSizePolicy , QWidget
13+ from PySide6 .QtWidgets import QHBoxLayout , QLabel , QLineEdit , QPushButton , QSizePolicy , QWidget
1314
1415from tagstudio .qt .helpers .color_overlay import auto_theme_overlay
1516from tagstudio .qt .resource_manager import ResourceManager
16- from tagstudio .qt .views .qbutton_wrapper import QPushButtonWrapper
1717
1818
1919class Pagination (QWidget ):
2020 """Widget containing controls for navigating between pages of items."""
2121
2222 index = Signal (int )
2323
24- def __init__ (self , parent = None ) -> None :
25- super ().__init__ (parent )
24+ def __init__ (self , parent : QWidget | None = None ) -> None :
25+ super ().__init__ (parent = parent )
2626 self .rm = ResourceManager ()
2727 self .page_count : int = 0
2828 self .current_page_index : int = 0
@@ -43,7 +43,7 @@ def __init__(self, parent=None) -> None:
4343 self .root_layout .setSpacing (3 )
4444
4545 # [<] ----------------------------------
46- self .prev_button = QPushButtonWrapper ()
46+ self .prev_button = QPushButton ()
4747 prev_icon : Image .Image = self .rm .bxs_left_arrow
4848 prev_icon = auto_theme_overlay (prev_icon , use_alpha = False )
4949 self .prev_button .setIcon (QPixmap .fromImage (ImageQt .ImageQt (prev_icon )))
@@ -52,7 +52,7 @@ def __init__(self, parent=None) -> None:
5252 self .prev_button .setMaximumSize (self .button_size )
5353
5454 # --- [1] ------------------------------
55- self .start_button = QPushButtonWrapper ()
55+ self .start_button = QPushButton ()
5656 self .start_button .setMinimumSize (self .button_size )
5757 self .start_button .setMaximumSize (self .button_size )
5858
@@ -91,12 +91,12 @@ def __init__(self, parent=None) -> None:
9191 self .end_ellipses .setText (". . ." )
9292
9393 # ----------------------------- [42] ---
94- self .end_button = QPushButtonWrapper ()
94+ self .end_button = QPushButton ()
9595 self .end_button .setMinimumSize (self .button_size )
9696 self .end_button .setMaximumSize (self .button_size )
9797
9898 # ---------------------------------- [>]
99- self .next_button = QPushButtonWrapper ()
99+ self .next_button = QPushButton ()
100100 next_icon : Image .Image = self .rm .bxs_right_arrow
101101 next_icon = auto_theme_overlay (next_icon , use_alpha = False )
102102 self .next_button .setIcon (QPixmap .fromImage (ImageQt .ImageQt (next_icon )))
@@ -223,7 +223,7 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
223223 )
224224 self ._assign_click (
225225 cast (
226- QPushButtonWrapper ,
226+ QPushButton ,
227227 self .start_buffer_layout .itemAt (i - start_offset ).widget (),
228228 ),
229229 i ,
@@ -240,7 +240,7 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
240240 self .end_buffer_layout .itemAt (i - end_offset ).widget ().setText (str (i + 1 )) # pyright: ignore[reportAttributeAccessIssue]
241241 self ._assign_click (
242242 cast (
243- QPushButtonWrapper ,
243+ QPushButton ,
244244 self .end_buffer_layout .itemAt (i - end_offset ).widget (),
245245 ),
246246 i ,
@@ -268,21 +268,20 @@ def update_buttons(self, page_count: int, index: int, emit: bool = True):
268268 def _goto_page (self , index : int ):
269269 self .update_buttons (self .page_count , index )
270270
271- def _assign_click (self , button : QPushButtonWrapper , index ):
272- if button . is_connected :
271+ def _assign_click (self , button : QPushButton , index : int ):
272+ with catch_warnings ( record = True ) :
273273 button .clicked .disconnect ()
274274 button .clicked .connect (lambda checked = False , i = index : self ._goto_page (i ))
275- button .is_connected = True
276275
277276 def _populate_buffer_buttons (self ):
278277 for _ in range (max (self .buffer_page_count * 2 , 5 )):
279- button = QPushButtonWrapper ()
278+ button = QPushButton ()
280279 button .setMinimumSize (self .button_size )
281280 button .setMaximumSize (self .button_size )
282281 button .setHidden (True )
283282 self .start_buffer_layout .addWidget (button )
284283
285- end_button = QPushButtonWrapper ()
284+ end_button = QPushButton ()
286285 end_button .setMinimumSize (self .button_size )
287286 end_button .setMaximumSize (self .button_size )
288287 end_button .setHidden (True )
0 commit comments