Skip to content

Commit e41fe25

Browse files
authored
Merge pull request #525 from JaskRendix/fix-code-ql
Fix CodeQL findings and some typehints
2 parents ec4ed5d + e5f2052 commit e41fe25

10 files changed

Lines changed: 29 additions & 20 deletions

File tree

pygame_menu/widgets/core/widget.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@ class Widget(Base):
362362
]
363363
configured: bool
364364
force_menu_draw_focus: bool
365-
is_scrollable: bool
366365
last_surface: pygame.Surface | None
367366
lock_position: bool
368367
readonly: bool
@@ -380,12 +379,18 @@ def __init__(
380379
args=None,
381380
kwargs=None,
382381
*,
382+
active: bool = False,
383+
accept_events: bool = False,
384+
scrollable: bool = False,
383385
selectable: bool = True,
386+
selection_effect_draw_post: bool = True,
384387
visible: bool = True,
385388
) -> None:
386389
super().__init__(object_id=widget_id)
387390

388-
self._accept_events = False # Indicate the widget receives events (info)
391+
self._accept_events = (
392+
accept_events # Indicate the widget receives events (info)
393+
)
389394
self._alignment = ALIGN_CENTER # Widget alignment
390395
self._background_color = None
391396
self._background_inflate = (0, 0)
@@ -506,7 +511,7 @@ def __init__(
506511
# NullSelection was created. Initially it was None
507512
self._selection_effect = pygame_menu.widgets.NoneSelection()
508513
# If False, the selection effect is drawn previous the widget surface
509-
self._selection_effect_draw_post = True
514+
self._selection_effect_draw_post = selection_effect_draw_post
510515

511516
# Inputs
512517
self._ctrl = Controller()
@@ -520,10 +525,12 @@ def __init__(
520525

521526
# Public statutes. These values can be changed without calling for
522527
# methods (safe to update)
523-
self.active = False # Widget requests focus if selected
528+
self.active = active # Widget requests focus if selected
524529
self.configured = False # Widget has been configured
525530
self.force_menu_draw_focus = False # If True Menu draw focus if widget is selected, don't consider the previous requisites
526-
self.is_scrollable = False # Some widgets can be scrolled, such as the Frame
531+
self.is_scrollable = (
532+
scrollable # Some widgets can be scrolled, such as the Frame
533+
)
527534
self.is_selectable = selectable # Some widgets cannot be selected like labels
528535
self.last_surface = None # Stores the last surface the widget has been drawn
529536
self.lock_position = False # If True, the widget don't update the position if .set_position() is executed

pygame_menu/widgets/widget/button.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ def __init__(
6262
*args,
6363
**kwargs,
6464
) -> None:
65-
super().__init__(title=title, label_id=button_id)
66-
self._accept_events = True
65+
super().__init__(title=title, label_id=button_id, accept_events=True)
6766
self._args = list(args)
6867
self._kwargs = kwargs
6968
self.set_onreturn(onreturn)

pygame_menu/widgets/widget/dropselect.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ class DropSelect(Widget):
139139
:param kwargs: Optional keyword arguments
140140
"""
141141

142-
_close_on_apply: bool
143142
_drop_frame: Frame | None
144143
_index: int
145144
_items: list[tuple[Any, ...]] | list[str]
@@ -187,6 +186,7 @@ def __init__(
187186
self,
188187
title: Any,
189188
items: list[tuple[Any, ...]] | list[str],
189+
close_on_apply: bool = True,
190190
dropselect_id: str = "",
191191
default: int | None = None,
192192
onchange: CallbackType = None,
@@ -312,10 +312,11 @@ def __init__(
312312
widget_id=dropselect_id,
313313
args=args,
314314
kwargs=kwargs,
315+
accept_events=True,
316+
selection_effect_draw_post=False,
315317
)
316318

317-
self._accept_events = True
318-
self._close_on_apply = True
319+
self._close_on_apply = close_on_apply
319320
self._default_value = default
320321
self._drop_frame = None
321322
self._index = default
@@ -324,7 +325,6 @@ def __init__(
324325
self._open_middle = open_middle
325326
self._placeholder = placeholder
326327
self._placeholder_add_to_selection_box = placeholder_add_to_selection_box
327-
self._selection_effect_draw_post = False
328328
self._title_size = (0, 0)
329329

330330
# If True adds a space equals to the height of the option at left, used for
@@ -375,8 +375,6 @@ def __init__(
375375
"size": selection_option_font_size,
376376
}
377377

378-
self.active = False
379-
380378
def set_default_value(self, index: int) -> DropSelect:
381379
self._default_value = index
382380
return self

pygame_menu/widgets/widget/dropselect_multiple.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ def __init__(
202202
super().__init__(
203203
dropselect_id=dropselect_id,
204204
items=items,
205+
close_on_apply=False,
205206
onchange=onchange,
206207
onreturn=onreturn,
207208
onselect=onselect,
@@ -261,7 +262,6 @@ def __init__(
261262

262263
# Configure parent
263264
self._args = args or []
264-
self._close_on_apply = False
265265
self._max_selected = max_selected
266266
self._selection_option_left_space_margin = selection_option_selected_box_margin
267267

pygame_menu/widgets/widget/frame.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ def __init__(
200200
# Configure widget public's
201201
self.first_index = -1
202202
self.horizontal = orientation == ORIENTATION_HORIZONTAL
203-
self.is_scrollable = False
204203
self.last_index = -1
205204

206205
def set_title(

pygame_menu/widgets/widget/label.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,17 @@ def __init__(
6565
wordwrap: bool = False,
6666
leading: int | None = None,
6767
max_nlines: int | None = None,
68+
accept_events: bool = False,
6869
) -> None:
6970
assert isinstance(leading, (type(None), int))
7071
assert isinstance(max_nlines, (type(None), int))
7172
assert isinstance(wordwrap, bool)
72-
super().__init__(title=title, onselect=onselect, widget_id=label_id)
73+
super().__init__(
74+
title=title,
75+
onselect=onselect,
76+
widget_id=label_id,
77+
accept_events=accept_events,
78+
)
7379
self._last_underline = ["", None] # deco id, (color, offset, width)
7480
self._leading = leading
7581
self._lines = [] # Lines of text displayed

pygame_menu/widgets/widget/scrollbar.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ def __init__(
125125
onchange=onchange,
126126
args=args,
127127
kwargs=kwargs,
128+
scrollable=True,
128129
selectable=False,
129130
)
130131

@@ -170,7 +171,6 @@ def __init__(
170171
self.set_orientation(orientation)
171172

172173
# Configure public's
173-
self.is_scrollable = True
174174
self.scrolling = False
175175

176176
def scroll_to_widget(self, *args, **kwargs) -> ScrollBar:

pygame_menu/widgets/widget/selector.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@ def __init__(
188188
widget_id=selector_id,
189189
args=args,
190190
kwargs=kwargs,
191+
accept_events=True,
191192
)
192193

193-
self._accept_events = True
194194
self._index = 0
195195
self._items = items.copy()
196196
self._sformat = ""

pygame_menu/widgets/widget/textinput.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ def __init__(
319319
onselect=onselect,
320320
title=title,
321321
widget_id=textinput_id,
322+
accept_events=True,
322323
)
323324

324325
self._input_string = ""
@@ -407,7 +408,6 @@ def __init__(
407408
self._apply_widget_update_callback = True
408409

409410
# Other
410-
self._accept_events = True
411411
self._alt_x_enabled = True
412412
self._copy_paste_enabled = copy_paste_enable
413413
self._current_underline_string = ""

pygame_menu/widgets/widget/toggleswitch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ def __init__(
159159
onselect=onselect,
160160
title=title,
161161
widget_id=toggleswitch_id,
162+
accept_events=True,
162163
)
163164

164165
# Asserts
@@ -269,7 +270,6 @@ def __init__(
269270
self._state_width_accum.append(accum_width)
270271

271272
# Inner properties
272-
self._accept_events = True
273273
self._slider_height = 0
274274
self._slider_pos = (0, 0) # to add to (rect.x, rect.y)
275275
self._state_font = None

0 commit comments

Comments
 (0)