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
Reorder items in View menu #10189
Reorder items in View menu #10189
Conversation
0f85266
to
893d531
Compare
Cleaning up the filterhandling slightly in addition to the menu (a few clarifications too) |
👍 Perhaps we should move down options which are configured once or very rarely. I.e. move up the others - which might be changed forth and back in different usecases - resulting in e.g.:
Although the git argument is
I agree. |
Only if it does not fit on the screen, which is not the case. It is hard to find items in submenus.
(I think it is good to provide some of the options redundantly for quick access.) |
My first priority with this PR is that it is included with next 4.0 public build.
OK, but next commit, since I want to remove that option from this menu and that will require the translation to be changed twice.
It is a way to describe what the group is doing, so it could be adding value also if the items exist.
I want to move the following to the Advanced filter form - they are not important and not really "View" either:
Branch revision filters are available in the toolbar as well as Advanced filter (except for reflog that is not in the form but in the toolbar even not in the dropdown).
Suggested order with motivation. This is what I would like to settle the most right now.
|
Regardless of what designers think, I know that submenus give a bad UX to me. Aiming and hovering is OK for tooltips. Being forced to wait one second until info is faded in, is a real pain (e.g. Windows taskbar). It stand by my argument regarding the logical linkage and usage frequency of the sections. |
That is a hack, will consider to add to this PR still
So do I... |
I'm currently away, but I'll try to review this in the next few days.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like what I see on the screenshots. Assuming these are current - 👍
I'm OK to have it included in v4.0. The disabled titles are a good idea but I wonder if we should not add a colon at the end to make it even clearer that it's not a menu entry that you could enable it one way or the other. Another remark on the View menu but I think it will surely be for later (because maybe it won't be possible for all the options, for example "Commit message body"): I like how the menuitems in the "Toolbars" submenu are handled where it doesn't close the View menu and you could see it applied in "live". I would love to have the same behavior for most of the "Grid Info" and "Columns" sections menuitems. It will make the use of these options much easier especially for beginners when you don't understand the effects and have to try and revert... A consequence to get consistency if we put in place this behavior is that maybe these sections should be put in submenus. |
Yes, updated
We do not have colons for other fake headings like in Copy, some in RevDiff
The problem here is that the grid need to be refreshed, the required data is not calculated if not needed. Maybe columns and a few more could be handled this way, most requires to read all data from scratch. -- Will fix the failing test, as well allow toggling with the reflog button (now it resets the branch pattern to AllBranches). |
I'd be advising against any UI/UX-related changes that deviate from the standard Windows UI/UX paradigms (e.g., this is not how Windows Explorer works). In cases where a live preview would be required, we should come up with different presentation mechanisms. |
@@ -1724,6 +1730,20 @@ public void ShowFilteredBranches() | |||
PerformRefreshRevisions(); | |||
} | |||
|
|||
public void ShowCurrentBranchOnly() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nit] Can we please retain ShowCurrentBranchOnly
where it was (i.e., lines:1690-...) and place ShowReflogs
method here (i.e., after ShowFilteredBranches
)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reordered them to match how they are used, but can revert.
The menu is getting longer, and I think it's worth considering how we can separate the grid configuration related items (e.g., the column visibility) from the graph rendering. However, this is a good step. Thank you. |
The first I would like to do is do move the four revision filter items to Advanced form, possibly the branch revision filter too. Then all revision filter handling can be moved to FilterInfo and some simplification and bug fixes (or "limitations") can be done. (Maybe even for 4.0.) #10189 (comment) But before merging I would like a mediation with @mstv comments in #10189 (comment) |
Thank you for this PR. My intention was to avoid additional updates of the docs for follow-up PRs. Should the headings have an italic font style as in the other menus? What do you think about "Show first parents only"? Sorry, yet another discussion: |
OK, implemented a further hack
Fine, but I want to move the option to Advanced form (keep the button).
I had changed to the first alternative, not updated the screenshot, done now |
That brings for me another question (sorry also): if there are in fact the same options, should we also add the same icons in the view menu? |
The same options. Images could be the same, or the options removed |
eda228e
to
39c0db4
Compare
I prefer adding the icons. I imagine that some users are used to go in the view menus to toggle it (even if I find the toolbar more convenient). But let's see what the others think about it... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 after updating translation https://ci.appveyor.com/api/buildjobs/joyxw2k74hpbihte/artifacts/English.xlf
Changed the "Group headers in italics" to use some more common code from an existing class Time to squash? |
GitUI/UserControls/FilterToolBar.cs
Outdated
@@ -24,9 +24,11 @@ internal partial class FilterToolBar : ToolStripEx | |||
public FilterToolBar() | |||
{ | |||
InitializeComponent(); | |||
tsmiShowReflogs.ToolTipText = TranslatedStrings.ShowReflog; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tooltip has been renamed to remove the 's' so maybe remove it in the names tsmiShowReflog
for consistency (here and everywhere else)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Git command is "reflog" but that doc is stating Reference logs, or "reflogs"
Maybe add it instead?
Should be consistent
https://git-scm.com/docs/git-reflog
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Google for "git reflog" 2.6M and "git reflogs" 0.9M.
Changing to reflog (except for fsck-objects --no-reflogs
)
Rebased on master to resolve conflicts
Yes, please. |
7b00072
to
07a1b5e
Compare
07a1b5e
to
ab8f46f
Compare
Group the menu items to reflect how the items are used, separated with group headings A number of related fixes: * stash and notes could be shown with current and filtered branches This normally did not occur as they were filtered, but it affected tests * Decouple ShowMergeCommits and ShowRevisionGridGraphColumn * Reflog was not coupled with other branch revision filters Even if Reflog dominated the other branch revision filters, this was not reflected in the menus. Also toggling the reflog (with the button) would set the branchfilter to all branches. * Add reflog to branch filter dropdown, to show current filter * Consistently name reflog/reflogs to "reflog" Except for "noreflogs" for "fsck-objects --no-reflog"
ab8f46f
to
f631ded
Compare
Left a reference in tmp/reorder-view-menu |
More work to restructure |
Merging this tomorrow |
Group the menu items to reflect how the items are used, separated with group headings A number of related fixes: * stash and notes could be shown with current and filtered branches This normally did not occur as they were filtered, but it affected tests. * Decouple ShowMergeCommits and ShowRevisionGridGraphColumn (column can be shown when this filter is enabled) * Reflog was not coupled with other branch revision filters Even if Reflog dominated the other branch revision filters, this was not reflected in the menus. Also toggling the reflog (with the button) would set the branchfilter to all branches. * Add reflog to branch filter dropdown, to show current filter * Consistently name reflog/reflogs to "reflog" Except for "noreflogs" for "fsck-objects --no-reflogs" (cherry picked from commit 480458b)
Maybe use PripertyGrid control instead? Like we do for the scripts
management
|
Yes, but that is a redesign, the primary intent here was to cleanup |
👀 I sent that email several weeks ago.... |
My priority is not very high on such a change, there are more urgent changes. And I get very frustrated by UI changes, which makes my wife even less happy so I do not see I will change this in the near future. |
Proposed changes
Reorder the menu items to reflect how the items are used
This menu has grown without much consideration over the years. The sorting options were recently changed in #10172 to be decoupled.
Changes the muscle memory, but even I have a problem understanding the type of setting today...
Branch filter mode (reverse order to how they are prioritized)
Reflog <- current branch <- filtered branches <- All
(Except for reflog visible in Advanced filter)
Note: Any branch filter could be ticked at the same time as Reflog, previously
Reflog added to the branch filter dropdown.
Further revision filters, mostly independent to filter modes
Show merges, first parents
(Other revision filters in Advanced filter)
History simplification, how to handle history with filters
Full history, simplify merges.
(Simplify by decoration in Advanced filter handled as a revision filter despite Git description https://git-scm.com/docs/git-log#Documentation/git-log.txt---simplify-by-decoration)
Highlighting etc
Added commits in grid
Artificial commits, stash, Git notes
Labels in Grid
Remote branches, tags, superproject info
Specific details in the grid
Columns to show
Sorting
Advanced filter form
Submenus could be added to explain the groups, should be a separate PRAdded group headers to explain usage
This will require an update in the doc too (a few other changes needed as well)
https://git-extensions-documentation.readthedocs.io/en/release-4.0/browse_repository.html
There is some overlap between the Advanced filter and View menu.
All revision filters and simplify history should be moved there as well as the reflog branch revision filter option be added.
That should be a separate PR
Screenshots
(Before displays Show stashes instead of Show latest stashes as it is from a branch, no other changes.)
Test methodology
manual
Merge strategy
I agree that the maintainer squash merge this PR (if the commit message is clear).
✒️ I contribute this code under The Developer Certificate of Origin.