summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorCheryl Sabella <cheryl.sabella@gmail.com>2018-12-22 06:25:45 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2018-12-22 06:25:45 (GMT)
commitc1b4b0f6160e1919394586f44b12538505fed300 (patch)
tree847a401a62c7dae4bb6a28eb60f66bf5a02933f1 /Lib
parent87667c54c6650751c5d7bf7b9e465c8c4af45f71 (diff)
downloadcpython-c1b4b0f6160e1919394586f44b12538505fed300.zip
cpython-c1b4b0f6160e1919394586f44b12538505fed300.tar.gz
cpython-c1b4b0f6160e1919394586f44b12538505fed300.tar.bz2
bpo-22703: IDLE: Improve Code Context and Zoom Height menu labels (GH-11214)
The Code Context menu label now toggles between Show/Hide Code Context. The Zoom Height menu now toggles between Zoom/Restore Height. Zoom Height has moved from the Window menu to the Options menu. https://bugs.python.org/issue22703
Diffstat (limited to 'Lib')
-rw-r--r--Lib/idlelib/NEWS.txt5
-rw-r--r--Lib/idlelib/codecontext.py4
-rw-r--r--Lib/idlelib/editor.py5
-rw-r--r--Lib/idlelib/idle_test/test_codecontext.py6
-rw-r--r--Lib/idlelib/mainmenu.py5
-rw-r--r--Lib/idlelib/zoomheight.py6
6 files changed, 28 insertions, 3 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index b02b96bf..f46a2d7 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,11 @@ Released on 2019-10-20?
======================================
+bpo-22703: Improve the Code Context and Zoom Height menu labels.
+The Code Context menu label now toggles between Show/Hide Code Context.
+The Zoom Height menu now toggles between Zoom/Restore Height.
+Zoom Height has moved from the Window menu to the Options menu.
+
bpo-35521: Document the editor code context feature.
Add some internal references within the IDLE doc.
diff --git a/Lib/idlelib/codecontext.py b/Lib/idlelib/codecontext.py
index ef88528..2aed76d 100644
--- a/Lib/idlelib/codecontext.py
+++ b/Lib/idlelib/codecontext.py
@@ -122,9 +122,13 @@ class CodeContext:
# thus ensuring that it will appear directly above text_frame.
self.context.pack(side=TOP, fill=X, expand=False,
before=self.editwin.text_frame)
+ menu_status = 'Hide'
else:
self.context.destroy()
self.context = None
+ menu_status = 'Show'
+ self.editwin.update_menu_label(menu='options', index='* Code Context',
+ label=f'{menu_status} Code Context')
return "break"
def get_context(self, new_topvisible, stopline=1, stopindent=0):
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index 6689af6..d92b32b 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -446,6 +446,11 @@ class EditorWindow(object):
menu.delete(self.wmenu_end+1, end)
window.add_windows_to_menu(menu)
+ def update_menu_label(self, menu, index, label):
+ "Update label for menu item at index ."
+ menuitem = self.menudict[menu]
+ menuitem.entryconfig(index, label=label)
+
def handle_yview(self, event, *args):
"Handle scrollbar."
if event == 'moveto':
diff --git a/Lib/idlelib/idle_test/test_codecontext.py b/Lib/idlelib/idle_test/test_codecontext.py
index ef8170e..6c68935 100644
--- a/Lib/idlelib/idle_test/test_codecontext.py
+++ b/Lib/idlelib/idle_test/test_codecontext.py
@@ -40,6 +40,10 @@ class DummyEditwin:
self.top = root
self.text_frame = frame
self.text = text
+ self.label = ''
+
+ def update_menu_label(self, **kwargs):
+ self.label = kwargs['label']
class CodeContextTest(unittest.TestCase):
@@ -127,10 +131,12 @@ class CodeContextTest(unittest.TestCase):
eq(cc.context['fg'], cc.colors['foreground'])
eq(cc.context['bg'], cc.colors['background'])
eq(cc.context.get('1.0', 'end-1c'), '')
+ eq(cc.editwin.label, 'Hide Code Context')
# Toggle off.
eq(toggle(), 'break')
self.assertIsNone(cc.context)
+ eq(cc.editwin.label, 'Show Code Context')
def test_get_context(self):
eq = self.assertEqual
diff --git a/Lib/idlelib/mainmenu.py b/Lib/idlelib/mainmenu.py
index 9fe6b52..6081a5f 100644
--- a/Lib/idlelib/mainmenu.py
+++ b/Lib/idlelib/mainmenu.py
@@ -94,11 +94,12 @@ menudefs = [
('options', [
('Configure _IDLE', '<<open-config-dialog>>'),
- ('_Code Context', '<<toggle-code-context>>'),
+ None,
+ ('Show _Code Context', '<<toggle-code-context>>'),
+ ('Zoom Height', '<<zoom-height>>'),
]),
('window', [
- ('Zoom Height', '<<zoom-height>>'),
]),
('help', [
diff --git a/Lib/idlelib/zoomheight.py b/Lib/idlelib/zoomheight.py
index 73f1df0..35e285f 100644
--- a/Lib/idlelib/zoomheight.py
+++ b/Lib/idlelib/zoomheight.py
@@ -13,7 +13,10 @@ class ZoomHeight:
def zoom_height_event(self, event=None):
top = self.editwin.top
- zoom_height(top)
+ zoomed = zoom_height(top)
+ menu_status = 'Restore' if zoomed else 'Zoom'
+ self.editwin.update_menu_label(menu='options', index='* Height',
+ label=f'{menu_status} Height')
return "break"
@@ -46,6 +49,7 @@ def zoom_height(top):
else:
newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy)
top.wm_geometry(newgeom)
+ return newgeom != ""
if __name__ == "__main__":