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.
Created on 2015年07月30日 23:07 by markroseman, last changed 2022年04月11日 14:58 by admin.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| decouple_config.patch | markroseman, 2015年08月10日 21:47 | review | ||
| demodalize.patch | markroseman, 2015年08月11日 17:03 | review | ||
| Messages (8) | |||
|---|---|---|---|
| msg247707 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年07月30日 23:07 | |
Is there any reason the IDLE settings dialog is modal? (Actually while it is modal on Windows and Linux, on OS X you can actually switch back to the main window while the settings dialog is up, but you can't actually type etc. into it!) While I could probably ask the same question about all the other modal dialogs, let's start here. :-) |
|||
| msg247711 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2015年07月30日 23:43 | |
I don't know. I do not thing that any option settings affect the dialog box itself, Someone could switch modal off and experiment. It would certainly make it easier to change something, Apply, and then try it out. The is one place I would not feel obligated to follow modal-happy Microsoft. (Too small, cramped dialog boxes designed for 400x600 screen is another.) I have asked the same on at least one of the search dialog issues. The search dialog for Notepad++ is not modal and works fine. Also see #24039. |
|||
| msg247715 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年07月31日 00:27 | |
Ok, I'll do some playing around with that one over the next few days, and see if anything comes up. |
|||
| msg247899 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年08月02日 21:17 | |
Incidentally (and this I would say is a definite bug) because the modal doesn't fully work on the Mac, you can actually create multiple copies of the config dialog! |
|||
| msg248375 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年08月10日 21:47 | |
I've attached decouple_config.patch, which removes some internal knowledge about EditorWindow from configDialog. This is a step towards making the preferences dialog non-modal (and also to launching either the current dialog, or a new ttk-dependent one). The thing that could currently break things if we switched to non-modal is that when configuration changes, we directly examine "parent.instance_dict". Unfortunately, it's possible that parent will have been destroyed before this happens. Instead of holding onto parent, the patch holds onto the FileList object, which should persist. It also takes the opportunity to delegate the specifics of what should happen to active editor windows on config changes (previously in configDialog) to FileList, which in turn delegates the specifics back to each EditorWindow instance. A separate patch, depending on this refactoring, will then change the dialog so that it can be launched non-modally, and make sure only a single instance is present. |
|||
| msg248414 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年08月11日 17:03 | |
The attached demodalize.patch (which includes the changes from the previously posted decouple_config.patch) changes both the settings dialog and the about dialog to be non-modal. There's a new class UIFactory which is responsible for launching these kinds of windows, keeping track of them, and making sure there's only one of each kind at a time. This is also where the logic for choosing ttk vs. non-ttk components will go. As a (questionable) bonus, the about dialog, which now incorporates the README's etc directly into the window rather than launching further modal dialogs, also has some other minor cosmetic changes. |
|||
| msg248795 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年08月18日 21:01 | |
Terry, when you get a chance, it would be great if you could have a look at demodalize.patch (or if you can suggest someone else who would be good to take a peek at it). This is sort of the baseline for the uifactory, and touches a lot of things in small ways to decouple some of the inter-module dependencies. Other things (the new query dialogs, ttk versions of configuration and search dialogs, etc.) depend on this patch to wire the uifactory into the infrastructure. Thanks! |
|||
| msg250255 - (view) | Author: Mark Roseman (markroseman) * | Date: 2015年09月08日 19:57 | |
Note: about dialog part of the 'demodalize' patch split off and now in #24813; the bulk of the rest of it, which is really providing a cleaner FileList API rather than direct access to internals from EditorWindow, is in #25031. After the latter patch is accepted, I'll put up a new patch here that is just the changes to make settings modeless... will be just a dozen lines of code or so. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:19 | admin | set | github: 68948 |
| 2020年06月08日 00:40:35 | terry.reedy | set | versions: + Python 3.10, - Python 3.6, Python 3.7 |
| 2017年06月30日 00:26:23 | terry.reedy | set | assignee: terry.reedy versions: + Python 3.7, - Python 2.7, Python 3.5 |
| 2015年09月08日 19:57:22 | markroseman | set | messages: + msg250255 |
| 2015年08月18日 21:01:05 | markroseman | set | messages: + msg248795 |
| 2015年08月12日 17:49:15 | terry.reedy | link | issue24826 dependencies |
| 2015年08月11日 17:03:58 | markroseman | set | files:
+ demodalize.patch messages: + msg248414 versions: - Python 3.4 |
| 2015年08月10日 21:47:31 | markroseman | set | files:
+ decouple_config.patch keywords: + patch messages: + msg248375 |
| 2015年08月02日 21:17:09 | markroseman | set | messages: + msg247899 |
| 2015年07月31日 00:27:10 | markroseman | set | messages: + msg247715 |
| 2015年07月30日 23:43:10 | terry.reedy | set | messages:
+ msg247711 stage: needs patch |
| 2015年07月30日 23:07:08 | markroseman | create | |