]> granicus.if.org Git - python/commitdiff
[3.6] bpo-24813: IDLE: Add icon to help_about (GH-2335) (#2359)
authorterryjreedy <tjreedy@udel.edu>
Fri, 23 Jun 2017 16:59:59 +0000 (12:59 -0400)
committerGitHub <noreply@github.com>
Fri, 23 Jun 2017 16:59:59 +0000 (12:59 -0400)
Patch by Cheryl Sabella
(cherry picked from commit d352d68)

Lib/idlelib/help_about.py
Lib/idlelib/idle_test/test_help_about.py

index f0a40e927c3634c541e3d70331a5c687dff258fd..e65e67c47ee0d7560c78dd7fe16ee745a99e959c 100644 (file)
@@ -4,8 +4,8 @@
 import os
 from sys import version
 
-from tkinter import Toplevel, Frame, Label, Button
-from tkinter import SUNKEN, TOP, BOTTOM, LEFT, X, BOTH, W, EW, NSEW
+from tkinter import Toplevel, Frame, Label, Button, PhotoImage
+from tkinter import SUNKEN, TOP, BOTTOM, LEFT, X, BOTH, W, EW, NSEW, E
 
 from idlelib import textview
 
@@ -62,7 +62,16 @@ class AboutDialog(Toplevel):
 
         header = Label(frame_background, text='IDLE', fg=self.fg,
                        bg=self.bg, font=('courier', 24, 'bold'))
-        header.grid(row=0, column=0, sticky=W, padx=10, pady=10)
+        header.grid(row=0, column=0, sticky=E, padx=10, pady=10)
+
+        tk_patchlevel = self.tk.call('info', 'patchlevel')
+        ext = '.png' if tk_patchlevel >= '8.6' else '.gif'
+        icon = os.path.join(os.path.abspath(os.path.dirname(__file__)),
+                            'Icons', f'idle_48{ext}')
+        self.icon_image = PhotoImage(master=self._root(), file=icon)
+        logo = Label(frame_background, image=self.icon_image, bg=self.bg)
+        logo.grid(row=0, column=0, sticky=W, rowspan=2, padx=10, pady=10)
+
         byline_text = "Python's Integrated DeveLopment Environment" + 5*'\n'
         byline = Label(frame_background, text=byline_text, justify=LEFT,
                        fg=self.fg, bg=self.bg)
@@ -82,7 +91,6 @@ class AboutDialog(Toplevel):
         pyver = Label(frame_background, text='Python version:  ' + release,
                       fg=self.fg, bg=self.bg)
         pyver.grid(row=9, column=0, sticky=W, padx=10, pady=0)
-        tk_patchlevel = self.tk.call('info', 'patchlevel')
         tkver = Label(frame_background, text='Tk version:  ' + tk_patchlevel,
                       fg=self.fg, bg=self.bg)
         tkver.grid(row=9, column=1, sticky=W, padx=2, pady=0)
index 15d1b6b42c797abb50b16195027db8bf715c9766..f3ca75cf0182bf04dccb2fdbf395de6b5125da74 100644 (file)
@@ -9,6 +9,7 @@ from idlelib.idle_test.mock_idle import Func
 from idlelib.idle_test.mock_tk import Mbox_func
 from idlelib.help_about import AboutDialog as About
 from idlelib import textview
+import os.path
 
 class LiveDialogTest(unittest.TestCase):
     """Simulate user clicking buttons other than [Close].
@@ -33,6 +34,12 @@ class LiveDialogTest(unittest.TestCase):
         """Test about dialog title"""
         self.assertEqual(self.dialog.title(), 'About IDLE')
 
+    def test_dialog_logo(self):
+        """Test about dialog logo."""
+        path, file = os.path.split(self.dialog.icon_image['file'])
+        fn, ext = os.path.splitext(file)
+        self.assertEqual(fn, 'idle_48')
+
     def test_printer_buttons(self):
         """Test buttons whose commands use printer function."""
         dialog = self.dialog