Skip to content

Commit 874ff01

Browse files
committed
Update to reflect changes to configdialog
1 parent e8e7fe6 commit 874ff01

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

Lib/idlelib/configdialog.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@
4141
Squeezer)
4242

4343

44+
def init_validators(page):
45+
digits_or_empty_re = re.compile(r'[0-9]*')
46+
def is_digits_or_empty(s):
47+
"Return 's is blank or contains only digits'"
48+
return digits_or_empty_re.fullmatch(s) is not None
49+
return (page.register(is_digits_or_empty), '%P',)
50+
51+
4452
class ConfigDialog(Toplevel):
4553
"""Config dialog for IDLE.
4654
"""
@@ -120,7 +128,7 @@ def create_widgets(self):
120128
note.add(self.fontpage, text='Fonts/Tabs')
121129
note.add(self.highpage, text='Highlights')
122130
note.add(self.keyspage, text=' Keys ')
123-
note.add(self.editpage, text=' Editor ')
131+
note.add(self.editpage, text=' Editor/Shell ')
124132
note.add(self.genpage, text=' General ')
125133
note.add(self.extpage, text='Extensions')
126134
note.enable_traversal()
@@ -1781,6 +1789,7 @@ class EditPage(Frame):
17811789

17821790
def __init__(self, master):
17831791
super().__init__(master)
1792+
self.digits_only = init_validators(self)
17841793
self.create_page_editor()
17851794
self.load_editor_cfg()
17861795

@@ -1926,18 +1935,10 @@ class GenPage(Frame):
19261935

19271936
def __init__(self, master):
19281937
super().__init__(master)
1929-
1930-
self.init_validators()
1938+
self.digits_only = init_validators(self)
19311939
self.create_page_general()
19321940
self.load_general_cfg()
19331941

1934-
def init_validators(self):
1935-
digits_or_empty_re = re.compile(r'[0-9]*')
1936-
def is_digits_or_empty(s):
1937-
"Return 's is blank or contains only digits'"
1938-
return digits_or_empty_re.fullmatch(s) is not None
1939-
self.digits_only = (self.register(is_digits_or_empty), '%P',)
1940-
19411942
def create_page_general(self):
19421943
"""Return frame of widgets for General tab.
19431944

Lib/idlelib/idle_test/test_configdialog.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1228,10 +1228,14 @@ def test_load_editor_cfg(self):
12281228
d.autosave.set(1)
12291229
d.format_width.set(1)
12301230
d.context_lines.set(1)
1231+
d.line_numbers_default.set(True)
1232+
d.auto_squeeze_min_lines.set(1)
12311233
d.load_editor_cfg()
12321234
eq(d.autosave.get(), 0)
12331235
eq(d.format_width.get(), '72')
12341236
eq(d.context_lines.get(), '15')
1237+
eq(d.line_numbers_default.get(), False)
1238+
eq(d.auto_squeeze_min_lines.get(), '50')
12351239

12361240
def test_autosave(self):
12371241
d = self.page
@@ -1250,6 +1254,19 @@ def test_context(self):
12501254
self.page.context_int.insert(0, '1')
12511255
self.assertEqual(extpage, {'CodeContext': {'maxlines': '1'}})
12521256

1257+
def test_line_numbers(self):
1258+
d = self.page
1259+
d.line_numbers_default.set(True)
1260+
d.line_numbers_default_bool.invoke()
1261+
self.assertEqual(mainpage, {'EditorWindow': {'line-numbers-default': 'False'}})
1262+
d.line_numbers_default_bool.invoke()
1263+
self.assertEqual(mainpage, {'EditorWindow': {'line-numbers-default': 'True'}})
1264+
1265+
def test_auto_squeeze(self):
1266+
self.page.auto_squeeze_min_lines_int.delete(0, 'end')
1267+
self.page.auto_squeeze_min_lines_int.insert(0, '99')
1268+
self.assertEqual(mainpage, {'PyShell': {'auto-squeeze-min-lines': '99'}})
1269+
12531270

12541271
class GenPageTest(unittest.TestCase):
12551272
"""Test that general tab widgets enable users to make changes.

0 commit comments

Comments
 (0)