]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-111050: IDLE - Simplify configdialog.HighPage.theme_elements (#111053)
authorTerry Jan Reedy <tjreedy@udel.edu>
Thu, 19 Oct 2023 04:03:24 +0000 (00:03 -0400)
committerGitHub <noreply@github.com>
Thu, 19 Oct 2023 04:03:24 +0000 (00:03 -0400)
Replace tuple value with internal name, removing numbers.
Remove sorting of already ordered dislay names.
Remove '[0]' indexing into now-gone tuple.

Lib/idlelib/configdialog.py
Lib/idlelib/idle_test/test_configdialog.py

index d56afe8a807fea1e6c656efd523a9d77ef94be87..eedf97bf74fe6af1e9d9352abc78a759b871a50d 100644 (file)
@@ -576,24 +576,23 @@ class HighPage(Frame):
                 (*)theme_message: Label
         """
         self.theme_elements = {
-            # Display_name: ('internal_name, sort_number').
-            # TODO: remove sort_number unneeded with dict ordering.
-            'Normal Code or Text': ('normal', '00'),
-            'Code Context': ('context', '01'),
-            'Python Keywords': ('keyword', '02'),
-            'Python Definitions': ('definition', '03'),
-            'Python Builtins': ('builtin', '04'),
-            'Python Comments': ('comment', '05'),
-            'Python Strings': ('string', '06'),
-            'Selected Text': ('hilite', '07'),
-            'Found Text': ('hit', '08'),
-            'Cursor': ('cursor', '09'),
-            'Editor Breakpoint': ('break', '10'),
-            'Shell Prompt': ('console', '11'),
-            'Error Text': ('error', '12'),
-            'Shell User Output': ('stdout', '13'),
-            'Shell User Exception': ('stderr', '14'),
-            'Line Number': ('linenumber', '16'),
+            # Display-name: internal-config-tag-name.
+            'Normal Code or Text': 'normal',
+            'Code Context': 'context',
+            'Python Keywords': 'keyword',
+            'Python Definitions': 'definition',
+            'Python Builtins': 'builtin',
+            'Python Comments': 'comment',
+            'Python Strings': 'string',
+            'Selected Text': 'hilite',
+            'Found Text': 'hit',
+            'Cursor': 'cursor',
+            'Editor Breakpoint': 'break',
+            'Shell Prompt': 'console',
+            'Error Text': 'error',
+            'Shell User Output': 'stdout',
+            'Shell User Exception': 'stderr',
+            'Line Number': 'linenumber',
             }
         self.builtin_name = tracers.add(
                 StringVar(self), self.var_changed_builtin_name)
@@ -653,7 +652,7 @@ class HighPage(Frame):
                 # event.widget.winfo_top_level().highlight_target.set(elem)
                 self.highlight_target.set(elem)
             text.tag_bind(
-                    self.theme_elements[element][0], '<ButtonPress-1>', tem)
+                    self.theme_elements[element], '<ButtonPress-1>', tem)
         text['state'] = 'disabled'
         self.style.configure('frame_color_set.TFrame', borderwidth=1,
                              relief='solid')
@@ -761,7 +760,6 @@ class HighPage(Frame):
         self.set_theme_type()
         # Load theme element option menu.
         theme_names = list(self.theme_elements)
-        theme_names.sort(key=lambda x: self.theme_elements[x][1])
         self.targetlist.SetMenu(theme_names, theme_names[0])
         self.paint_theme_sample()
         self.set_highlight_target()
@@ -888,7 +886,7 @@ class HighPage(Frame):
         new_color = self.color.get()
         self.style.configure('frame_color_set.TFrame', background=new_color)
         plane = 'foreground' if self.fg_bg_toggle.get() else 'background'
-        sample_element = self.theme_elements[self.highlight_target.get()][0]
+        sample_element = self.theme_elements[self.highlight_target.get()]
         self.highlight_sample.tag_config(sample_element, **{plane: new_color})
         theme = self.custom_name.get()
         theme_element = sample_element + '-' + plane
@@ -1002,7 +1000,7 @@ class HighPage(Frame):
             frame_color_set
         """
         # Set the color sample area.
-        tag = self.theme_elements[self.highlight_target.get()][0]
+        tag = self.theme_elements[self.highlight_target.get()]
         plane = 'foreground' if self.fg_bg_toggle.get() else 'background'
         color = self.highlight_sample.tag_cget(tag, plane)
         self.style.configure('frame_color_set.TFrame', background=color)
@@ -1032,7 +1030,7 @@ class HighPage(Frame):
         else:  # User theme
             theme = self.custom_name.get()
         for element_title in self.theme_elements:
-            element = self.theme_elements[element_title][0]
+            element = self.theme_elements[element_title]
             colors = idleConf.GetHighlight(theme, element)
             if element == 'cursor':  # Cursor sample needs special painting.
                 colors['background'] = idleConf.GetHighlight(
index e5d5b4013fca57144272ec5a9e119aa58743f664..6f8518a9bb19d0168c4e0cf50871a5ad21421325 100644 (file)
@@ -430,7 +430,7 @@ class HighPageTest(unittest.TestCase):
 
         def tag_to_element(elem):
             for element, tag in d.theme_elements.items():
-                elem[tag[0]] = element
+                elem[tag] = element
 
         def click_it(start):
             x, y, dx, dy = hs.bbox(start)