This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Merge 'configure extensions' into main IDLE config dialog
Type: enhancement Stage: resolved
Components: IDLE Versions: Python 3.6, Python 3.4, Python 3.5, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: kbk, markroseman, python-dev, roger.serwy, taleinat, terry.reedy
Priority: normal Keywords: patch

Created on 2015-08-02 21:06 by markroseman, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
extdlg.patch markroseman, 2015-08-03 20:05 change ui for config extensions review
extdlg.png markroseman, 2015-08-03 20:08 screenshot of ui in extdlg.patch
extdlg-sorted.patch markroseman, 2015-08-05 20:09 review
mergeext.patch markroseman, 2015-10-12 21:02 review
mergeext27.cfg markroseman, 2015-10-12 21:03 review
Messages (22)
msg247898 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-02 21:06
I'm wondering about moving the functionality of the 'configure extensions' dialog into the main configuration dialog.  As I don't know the history here, I'm wondering why it was made separate.

My proposal would be to add an 'Extensions' tab in the main config dialog. Along the left would be a listbox holding the names of each extension. Along the right would be options for the extension selected in the listbox (done pretty much the same as now). Selecting a different extension from the list would swap in the appropriate set of options.

This would have the additional advantage of doing away with the stacked tabs.
msg247912 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-08-02 23:19
In general, Idle-sig is a better place to ask question ;-).  I applied the extension dialog patch just a year ago (#3068), It still needs improvements (#22704, #22705, #22706, #22707 #22726). Before that, people had to hand-edit either the idlelib or user version. So I applied the patch when clearly usable, and did not worry about making it 'perfect' first. 

Part of the answer to why separate dialogs is related to there being a) a separate config file (but the other dialog handles the other three) and probably more importantly, b) the set of extension being extensible, both by us and by users.

This all said, I dislike the jumbled stacked tabs. Also, the entry space is wider than needed for any of our extensions. So whether the dialogs are consolidated or not, I like the idea of three columns: alphabetical list of extensions (all visible unless a user adds a large number), option names, and value entry. I would like to see a patch for this first.  I would not mind patches for some of the issue above right after. I would like to improve this box before using ttk.

The Idle dialog has room for an Extensions tab without stacking.  I would like to see a separate, later patch for consolidation.
msg247949 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-03 20:05
I've attached extdlg.patch, which changes the UI for the configure extensions dialog. 

In particular, it replaces the stacked tabs with a listbox on the left, with the details of each extension appearing in a labelframe on the right. The inside of the labelframe gets swapped in with pretty much the same thing that was in the dialog before.

This should be compatible with Tk 8.4, as ttk was not used.
msg247950 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-03 20:08
Screenshot extdlg.png shows result
msg248021 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-08-05 06:12
I presume sorting the list is a trivial matter.
msg248071 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-05 20:09
Yup. Revised extdlg-sorted.patch attached.  Thanks for noticing that!
msg248707 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-08-17 02:34
Do you consider the second patch ready as is (as a step toward doing the merge)?  Is so, I will do a commit review.
msg248737 - (view) Author: Mark Roseman (markroseman) * Date: 2015-08-17 16:56
Yes that should be good to go
msg249221 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-08-27 03:15
New changeset 919cee158a89 by Terry Jan Reedy in branch '2.7':
Issue #24782: In Idle extension config dialog, replace tabs with sorted list.
https://hg.python.org/cpython/rev/919cee158a89

New changeset ce13593e378c by Terry Jan Reedy in branch '3.4':
Issue #24782: In Idle extension config dialog, replace tabs with sorted list.
https://hg.python.org/cpython/rev/ce13593e378c
msg252835 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-10-12 02:05
Do you have a patch to move the untabbed pane, as is, to preferences?  If not, I will write one.
msg252881 - (view) Author: Mark Roseman (markroseman) * Date: 2015-10-12 18:55
No, I don't, sorry.  If it will be quick for you to do, no problem, otherwise I'd be happy to put it together.
msg252885 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-10-12 19:34
Go ahead then.
msg252889 - (view) Author: Mark Roseman (markroseman) * Date: 2015-10-12 21:02
Patch against head to change extensions dialog to a pane of main config dialog.
msg252890 - (view) Author: Mark Roseman (markroseman) * Date: 2015-10-12 21:03
Same patch against 2.7
msg252973 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-10-14 02:09
New changeset 334dc1abc8af by Terry Jan Reedy in branch '2.7':
Issue #24782: Finish converting the Configure Extension dialog into a new
https://hg.python.org/cpython/rev/334dc1abc8af

New changeset 5647c61fb593 by Terry Jan Reedy in branch '3.4':
Issue #24782: Finish converting the Configure Extension dialog into a new
https://hg.python.org/cpython/rev/5647c61fb593

New changeset 6bce28fec911 by Terry Jan Reedy in branch '2.7':
Issue #24782: whitespace
https://hg.python.org/cpython/rev/6bce28fec911

New changeset 4ed0cc2b7c7c by Terry Jan Reedy in branch '3.4':
Issue #24782: whitespace
https://hg.python.org/cpython/rev/4ed0cc2b7c7c
msg252974 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-10-14 02:36
Nice. The only changes I had to make other than a doc change are 'Settings tab' to 'Extensions tab' and deletion of an line-ending space that got added in editing the extension doc string.  We both need to remember to strip trailing whitespace, as it causes changesets to be rejected when pushed. Pl
msg252976 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-10-14 07:07
There is one issue.  The window is wider now, I suspect because of the extension frame, which is wider than it need to be, at least for now.  I will try adjusting it.
msg253208 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-10-20 06:16
New changeset 8953a42c2ac4 by Terry Jan Reedy in branch '2.7':
Issue #24782: Don't try to run now-removed extension dialog test.
https://hg.python.org/cpython/rev/8953a42c2ac4

New changeset 4bf862fc10a5 by Terry Jan Reedy in branch '3.4':
Issue #24782: Don't try to run now-removed extension dialog test.
https://hg.python.org/cpython/rev/4bf862fc10a5
msg253210 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-10-20 06:17
There are two 'width=250' settings, which I tried changing to 150, with no effect, so there is something else making the dialog wider than before.
msg253311 - (view) Author: Mark Roseman (markroseman) * Date: 2015-10-21 22:53
The extra width appears to be coming from the canvas inside VerticalScrolledFrame; the canvas gets the default size and the frame adjusts to fit its contents (the canvas and the scrollbar). If you really want to reduce the size, add a "-width" option where that canvas is being created.
msg253320 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-10-22 07:28
New changeset a96e39e20490 by Terry Jan Reedy in branch '2.7':
Issue #24782: Limit width of canvas and hence IDLE settings dialog.
https://hg.python.org/cpython/rev/a96e39e20490

New changeset 0847398f9b00 by Terry Jan Reedy in branch '3.4':
Issue #24782: Limit width of canvas and hence IDLE settings dialog.
https://hg.python.org/cpython/rev/0847398f9b00
msg253321 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-10-22 07:30
Thanks, that was it.  I actually want to not use the scroll bar unless needed for an extension with more than 15 or so settings, but that is another patch.  Ditto for the list of extensions.  This looks OK for now.
History
Date User Action Args
2022-04-11 14:58:19adminsetgithub: 68970
2015-10-22 07:30:58terry.reedysetmessages: + msg253321
2015-10-22 07:28:25python-devsetmessages: + msg253320
2015-10-21 22:53:22markrosemansetmessages: + msg253311
2015-10-20 06:17:55terry.reedysetmessages: + msg253210
2015-10-20 06:16:25python-devsetmessages: + msg253208
2015-10-14 07:07:49terry.reedysetmessages: + msg252976
2015-10-14 02:36:44terry.reedysetstatus: open -> closed
messages: + msg252974

assignee: terry.reedy
resolution: fixed
stage: patch review -> resolved
2015-10-14 02:09:59python-devsetmessages: + msg252973
2015-10-12 21:03:30markrosemansetfiles: + mergeext27.cfg

messages: + msg252890
2015-10-12 21:02:58markrosemansetfiles: + mergeext.patch

messages: + msg252889
2015-10-12 19:34:09terry.reedysetmessages: + msg252885
2015-10-12 18:55:03markrosemansetmessages: + msg252881
2015-10-12 02:05:05terry.reedysetmessages: + msg252835
versions: + Python 3.4, - Python 3.2
2015-08-27 03:15:09python-devsetnosy: + python-dev
messages: + msg249221
2015-08-17 16:56:38markrosemansetmessages: + msg248737
2015-08-17 02:34:48terry.reedysetmessages: + msg248707
stage: patch review
2015-08-05 20:09:28markrosemansetfiles: + extdlg-sorted.patch

messages: + msg248071
2015-08-05 06:12:49terry.reedysetmessages: + msg248021
2015-08-03 20:08:22markrosemansetfiles: + extdlg.png

messages: + msg247950
2015-08-03 20:05:37markrosemansetfiles: + extdlg.patch
keywords: + patch
messages: + msg247949
2015-08-02 23:19:25terry.reedysetnosy: + taleinat

messages: + msg247912
versions: + Python 2.7, Python 3.2
2015-08-02 21:06:57markrosemancreate