-
-
Notifications
You must be signed in to change notification settings - Fork 31.7k
IDLE: Switch search dialogs to ttk widgets, and other refinement #71664
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Scrollbars and the new query module now use ttk widgets. Time to convert the other dialogs. Changing imports is straightforward. Use of an option that can only be changed in the style may be harder. There was one instance of this among the scrollbars (converted in bpo-24750) and I just skipped the minor tweak, and let the scrollbar in question look like all the rest. The most difficult issue is changes in allowed methods. For instance, the state of tk checkbuttons and radiobuttons can be controlled by either setting a control variable or by calling methods. For ttk, the methods are gone. First are the search dialog modules: searchbase, search, replace, and grep. The tk-only 'anchor' option is used but has no effect since the 'width' option is not used to allocate extra space for the buttons. The tk-only select method is used, but at least in searchbase, it has no effect, as it always sets the button to the state it already had. Its use in test files, however, has to be replaced, not deleted. IDLE does not control the common dialogs. But we could choose to replace them, I would not do that for the os file dialogs, but already replaced the 'ask' messagebox used for Open Module for behavioral reasons (bpo-27380). |
New changeset 91fe65e3d7bb by Terry Jan Reedy in branch 'default': |
Great start. Needs to have a ttk.Frame directly inside the toplevel window to avoid whitespace showing around grey widgets (like in query dialog shot). I'd also like to see the spacing adjusted (all platforms) and button positions changed on Mac to go at the bottom, as per http://www.tkdocs.com/tutorial/idle.html#idledialogs Open to a patch that does that? |
I debated whether to open a new search style issue and copy a message or defer ttk for config to another issue and re-title this. I went with widget group rather than aspect (style) this time. There are multiple search behavior issues. I added Notepad, Workpad, Libre Office Write, Tortoise Hg, and browsers to Notepad++ for Find/Search and Replace dialog box comparisons. From top to bottom. 0.1 De-modalize: The others are not modal and it is a nuisance. bpo-24760 is about same for Config dialog. bpo-24813 for Help stuff. I should look at your patches now. 0.2 List under Windows menu so easier to bring to top to use or close. Currently, cannot access Windows menu or anything else do to modality. Fortunately, Windows does list on popup expansion of taskbar icon. 1.0 Title: delete obvious "Dialog", add file base name. I sometime forget which file Search box is attached to and waste time searching wrong file. Will get worse with multiple boxes. 1.1 With tk, can we delete [-] min and [[]] max buttons and leave [X] close button? They are not present for 4 apps with floating boxes. bpo-24039 is about inconsistent behavior of these buttons. If deleting them is a possible solution, I want to consider it.
I just noticed that TortoiseHg has 4 options for its main pane, Search being one of them. The 'tabs' are icons in a vertical strip to the right. Search is a magnifying glass. Each has a mouse hover popup word.
4.1 Close button should be at bottom or to the right. L.O.Write has [Help] and [Close] to bottom left and right respectively. I want to consider this. We could add a new parameter 'start_at' to help.py classes, defaulting to the top. "if start_at: <simulate TOC click>" Then [Help] would display a new section "Search and Replace" added to the idle.rst and hence help.html. 'Find' is non-overlapping. 'Relational expression' uses patterns as defined in re doc. I have found 'whole word' not as obvious as I expected. It should have an explicit definition and behavior to match. Ditto for 'Match case' in a unicode world. 4.2 Putting the 4 F & R buttons across the bottom on platforms where that is the norm is OK with me. I only see down the side so far on Windows. Search could (should?) have [Find all] in addition to [Find next]. The 4 F & R buttons could be Find, Find all, Replace, Replace all (L.O.Write). But behavior change should be different issue. |
Have attached search.diff, which does an initial bit of cosmetics: adds inner frame with spacing, tweaks a couple labels, and for Mac and X11, puts the command buttons at the bottom of the dialog rather than on the right (where they remain on Windows). |
By adding 'and other refinements' to the title and discussing them here, I made this an index issue, with dependencies, for search. I am leaving this open as that. bpo-33987 is about adding a ttk frame inside the top window. This is point 2 above. bpo-33987 has a Mac screen capture in which I can see the faint difference there. I am retracting 4.2 above, agreeing to move action buttons across the bottom on some systems. Given that there are people who use IDLE on multiple systems, either sequentially or more or less simultaneously, and there are, there is good reason for cross-platform consistency. This is the general IDLE policy, with limited exceptions. In any case, such a change would need to be discussed on a separate issue with more people involved. Besides this, horizontal arrangement does not work for more than about 4 action options, and I want to add more. |
5.0 History list? 1 for all boxes; start fresh each session |
Just noting that the current search dialogs (and others) do not have a ttk.Frame directly inside the toplevel which encloses all other widgets. They therefore still display the mismatched backgrounds on macOS. Given that, should bpo-33987 be reopened? The patches seem to change the existing frames to the ttk equivalent, but don't add the new intervening frame. |
bpo-33987 was reopened, 4 patches merged and backported, and reclosed. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: