Skip to content

Commit a4eee84

Browse files
authored
fix(a11y): add cancel close button to site manager dialog (#80)
1 parent 606d3bf commit a4eee84

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

src/portkeydrop/dialogs/site_manager.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,12 @@ def _build_ui(self) -> None:
9191

9292
right_sizer.Add(grid, 1, wx.EXPAND | wx.ALL, 4)
9393

94+
action_sizer = wx.BoxSizer(wx.HORIZONTAL)
9495
save_btn = wx.Button(self, label="&Save")
95-
right_sizer.Add(save_btn, 0, wx.ALL | wx.ALIGN_RIGHT, 4)
96+
self.close_btn = wx.Button(self, id=wx.ID_CANCEL, label="&Close")
97+
action_sizer.Add(save_btn, 0, wx.RIGHT, 4)
98+
action_sizer.Add(self.close_btn, 0)
99+
right_sizer.Add(action_sizer, 0, wx.ALL | wx.ALIGN_RIGHT, 4)
96100

97101
main_sizer.Add(right_sizer, 2, wx.EXPAND | wx.ALL, 4)
98102

tests/test_site_manager_dialog.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ def Destroy(self):
127127

128128

129129
class _Button(_Window):
130-
def __init__(self, parent=None, label="", **_kw):
130+
def __init__(self, parent=None, id=None, label="", **_kw):
131+
self._id = id
131132
self._label = label
132133
self._name = ""
133134

@@ -137,6 +138,9 @@ def SetLabel(self, v):
137138
def SetName(self, v):
138139
self._name = v
139140

141+
def GetId(self):
142+
return self._id
143+
140144

141145
class _Choice(_Window):
142146
def __init__(self, *a, choices=None, **kw):
@@ -352,6 +356,19 @@ def test_init_creates_show_password_btn(self, dialog_module):
352356
assert dlg.show_password_btn._name == "Show password"
353357
assert hasattr(dlg, "password_text")
354358

359+
def test_init_creates_close_button_with_cancel_id(self, dialog_module):
360+
from portkeydrop.sites import SiteManager
361+
362+
mod, fake_wx = dialog_module
363+
site_manager = MagicMock(spec=SiteManager)
364+
site_manager.sites = []
365+
366+
dlg = mod.SiteManagerDialog(None, site_manager)
367+
368+
assert hasattr(dlg, "close_btn")
369+
assert dlg.close_btn._label == "&Close"
370+
assert dlg.close_btn.GetId() == fake_wx.ID_CANCEL
371+
355372

356373
class TestEscapeKeyHandler:
357374
"""Issue #34: SiteManagerDialog should close on Escape."""

0 commit comments

Comments
 (0)