classification
Title: IDLE: Always include "Options" menu on MacOSX
Type: behavior Stage: resolved
Components: IDLE Versions: Python 3.4, Python 3.3, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ned.deily Nosy List: Guilherme.Simões, Todd.Rovito, ned.deily, python-dev, roger.serwy, ronaldoussoren
Priority: normal Keywords: easy, patch

Created on 2013-03-23 21:41 by roger.serwy, last changed 2013-07-20 22:08 by python-dev. This issue is now closed.

Files
File name Uploaded Description Edit
17532MenuOptions.patch Guilherme.Simões, 2013-04-17 00:31 review
17532MenuOptions-1.patch Guilherme.Simões, 2013-04-17 08:17 review
17532MenuOptions-2.patch Guilherme.Simões, 2013-04-24 06:29 review
Messages (13)
msg185098 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2013-03-23 21:41
Presently, the "Options" menu gets eliminated if IDLE runs as an OSX app. This behavior was introduced in 2006 in revision 654c380cf8b9. 

I guess that the original motivation for eliminating the Options menu since it usually only contained the "Configure IDLE" option, and the Lib/idlelib/macosxSupport.py code supports using the Preferences menu item to open the configuration dialog. (The only other item would be the Code Context toggle.)

Extensions that rely on the Options menu being present will not function properly, especially when the menu item involves a queried boolean variable for its checkmark status.
msg187126 - (view) Author: Guilherme Simões (Guilherme.Simões) * Date: 2013-04-17 00:31
I tested the extensions in MacOS and they seem to work (even the Terminal Mode). The Options menu appear and everything seems to be fine.

The patch attached removes the Configure entry from the Options menu because this entry is already in the application menu as "Preferences". It also includes the Options menu in editor windows even without extensions, allowing the use of Code Context.
msg187147 - (view) Author: Guilherme Simões (Guilherme.Simões) * Date: 2013-04-17 08:17
I actually removed something I shouldn't have in the first patch so I'm attaching a new one.
msg187220 - (view) Author: Todd Rovito (Todd.Rovito) * Date: 2013-04-18 03:21
I tested the patch on OS X 10.8 and it works perfect!!!

Thanks Guilherme.
msg187222 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2013-04-18 05:23
Hi Guilherme, 

Have you signed the contributor agreement? It can be found at: http://www.python.org/psf/contrib/contrib-form/

Your patch looks good to me, but I don't have a Mac to test against. I trust Todd's test that it works on the latest MacOSX version. Hopefully it works on earlier OSX versions as well. (I think it should, but Tk on Mac has been problematic.)
msg187227 - (view) Author: Guilherme Simões (Guilherme.Simões) * Date: 2013-04-18 07:19
Hi Roger,

I just signed the contributor agreement. Unfortunately, I can't test on older MacOS versions, but I also think it should work.
msg187619 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013-04-23 08:43
Thanks for the patch, Guilherme.  While the patch does restore the Options menu for Edit windows, a similar change is needed in idlelib/PyShell.py to also restore the menu for the shell window.  I will refresh the patch or include it in the changes for Issue17654 which will change how and where the menus are customized for OS X.
msg187622 - (view) Author: Guilherme Simões (Guilherme.Simões) * Date: 2013-04-23 09:12
I didn't restore the menu in the shell window because it would be empty then. Perhaps a better alternative is to automatically remove any empty menu. That way if someone inserted a new option in the menu in the future it would show automatically in the MacOS version.
msg187685 - (view) Author: Roger Serwy (roger.serwy) * (Python committer) Date: 2013-04-24 04:49
The Options menu will become populated as soon as other extensions get included into IDLE, such as issue6143.
msg187688 - (view) Author: Guilherme Simões (Guilherme.Simões) * Date: 2013-04-24 06:29
Since extensions are probably going to be included into IDLE soon I'm attaching a version of the patch that also changes PyShell.py.
msg189838 - (view) Author: Roundup Robot (python-dev) Date: 2013-05-22 22:25
New changeset e134714e3b30 by Ned Deily in branch '2.7':
Issue #17532: Always include Options menu for IDLE on OS X.
http://hg.python.org/cpython/rev/e134714e3b30

New changeset 75c3e9a659bc by Ned Deily in branch '3.3':
Issue #17532: Always include Options menu for IDLE on OS X.
http://hg.python.org/cpython/rev/75c3e9a659bc

New changeset d0a093f40801 by Ned Deily in branch 'default':
Issue #17532: merge
http://hg.python.org/cpython/rev/d0a093f40801
msg189839 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2013-05-22 22:28
Thanks again for the patch.  Committed for release in 2.7.6, 3.3.3, and 3.4.0.
msg193421 - (view) Author: Roundup Robot (python-dev) Date: 2013-07-20 22:08
New changeset f8df7c50132f by Ned Deily in branch '2.7':
Issue #17532: Prevent exception when changing key sets if Options menu is empty.
http://hg.python.org/cpython/rev/f8df7c50132f

New changeset db6a22943a3f by Ned Deily in branch '3.3':
Issue #17532: Prevent exception when changing key sets if Options menu is empty.
http://hg.python.org/cpython/rev/db6a22943a3f

New changeset 5643e873f06e by Ned Deily in branch 'default':
Issue #17532: merge from 3.3
http://hg.python.org/cpython/rev/5643e873f06e
History
Date User Action Args
2013-07-20 22:08:59python-devsetmessages: + msg193421
2013-05-22 22:28:16ned.deilysetstatus: open -> closed
resolution: fixed
messages: + msg189839

stage: patch review -> resolved
2013-05-22 22:25:17python-devsetnosy: + python-dev
messages: + msg189838
2013-04-24 06:29:19Guilherme.Simõessetfiles: + 17532MenuOptions-2.patch

messages: + msg187688
2013-04-24 04:49:51roger.serwysetmessages: + msg187685
2013-04-23 09:12:46Guilherme.Simõessetmessages: + msg187622
2013-04-23 08:43:16ned.deilysetassignee: ned.deily
stage: patch review
messages: + msg187619
versions: - Python 3.1, Python 3.2
2013-04-18 07:19:37Guilherme.Simõessetmessages: + msg187227
2013-04-18 05:23:17roger.serwysetmessages: + msg187222
2013-04-18 03:21:51Todd.Rovitosetmessages: + msg187220
2013-04-17 08:17:39Guilherme.Simõessetfiles: + 17532MenuOptions-1.patch

messages: + msg187147
2013-04-17 00:31:20Guilherme.Simõessetfiles: + 17532MenuOptions.patch

nosy: + Guilherme.Simões
messages: + msg187126

keywords: + patch
2013-03-23 21:49:00ned.deilysetnosy: + ronaldoussoren
2013-03-23 21:41:30roger.serwycreate