helium/core: complete nested (tree-style) tab support#1832
Open
ImTheSquid wants to merge 9 commits into
Open
Conversation
|
Reviews (1): Last reviewed commit: "Nested tabs initial implementation" | Re-trigger Greptile |
|
👀 this is sick, hopefully merged soon:tm: |
|
From the video it looks like the chevron icon for collapsing and expanding nested tabs isn't centered with the favicon. Also, putting the chevron directly over the favicon can make it hard to see. Suggestions:
|
|
i've compiled locally and it's running great on my end (m4 max) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For your pull request to not get closed without review, please confirm that:
(an approved feature request, or confirmed bug).
otherwise I have marked my PR as draft.
organization if I lied by checking any of these checkboxes.
Tested on (check one or more):
This PR adds fully-featured tree-style tabs to the vertical tabs strip. Tabs are automatically nested under their parents when Cmd+Clicking a link. You can also drag tabs around to manually child them, as well as collapse tabs to temporarily hide trees. I was a big Sidebery user (and even contributed to it!) so I wanted to add a similarly polished system to Helium. This is a core addition instead of a UI addition because of how many core tab management systems I had to touch to make this work.
The feature is gated behind a preference in
helium://settings.This PR is different from #1468 in that:
The architecture of this PR revolves around a new
NestedTabCollectionthat lives in the hierarchy of tab controllers. Its owner is the first child. I took susbtantial inspiration fromSplitTabCollectionandTabGroupTabCollection.I tried to minimize the number of impacted files, but with a change this big and trying to do it right and account for edge cases, there was only so much I could do.
Demo
demo.mp4
Known Issues
kChildIntoonto parent-with-nest: Nest-in-nest works but is degraded for non-NESTED drags (existing limitation).GetMovePositionfalls back to "append to end" for unresolvable destinations: May surprise users on weird drop positions.