Skip to content
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

feat(gui): Pin tabs #2230

Merged
merged 9 commits into from
Aug 1, 2024
Merged

feat(gui): Pin tabs #2230

merged 9 commits into from
Aug 1, 2024

Conversation

Mino260806
Copy link
Contributor

@Mino260806 Mino260806 commented Jul 31, 2024

  • Pin button replaces close button when pinned image, clicking the button unpins the tab
  • Pinned tab cannot be closed by any mean (Close, Close All, Close All Right, Close Others)
  • Pin action automatically places pinned tab at index 0 (inspired from intellij)
  • The state of being pinned is saved along "Save project"
  • Frame for displaying pinned tabs

I think I need to ask you before implementing the last change. It would be hidden by default, and opened through View > Pinned Tabs. Please see below image. I'm waiting for confirmation

My draft for pinned tabs frame

pinned_tab_view

Edit:
The pinned tabs frame can also serve to display other kinds of tabs like bookmarked tabs, so once it's ready, I can PR bookmarks feature (#1078), and rename the frame to "quick tabs frame" or something similar


closes #1809
closes #847
closes one of the suggestions from #1684

Icons from: https://intellij-icons.jetbrains.design/

@skylot
Copy link
Owner

skylot commented Jul 31, 2024

Frame for displaying pinned tabs

@Mino260806 sure, this looks fine and can help navigation if the user pinned a lot of tabs.

And, for such optional panels, using some kind of dockable framework will be great (ModernDocking looks quite active), but this will be a huge task to do 😭

@Mino260806
Copy link
Contributor Author

Mino260806 commented Jul 31, 2024

And, for such optional panels, using some kind of dockable framework will be great (ModernDocking looks quite active), but this will be a huge task to do 😭

I think this deserves to be a seperate PR. ModernDocking seems to also support split panels and tabbed panes.
So if we start using ModernDocking, it's better to migrate other components like code split view, jnode tabbed pane, etc to preserve consistency of the codebase and the gui look.

So I'll implement this feature temporarily using normal swing framework, and then it shouldn't be difficult to migrate it to ModernDocking alongside other gui components.

@Mino260806
Copy link
Contributor Author

Almost done, some small tweaks and then PR is ready

Quick Tabs Tree

image

@Mino260806 Mino260806 marked this pull request as ready for review July 31, 2024 22:56
@Mino260806
Copy link
Contributor Author

@skylot let me know what you think!

@skylot skylot merged commit 6ab224e into skylot:master Aug 1, 2024
5 checks passed
@skylot
Copy link
Owner

skylot commented Aug 1, 2024

@Mino260806 thank you! Great work 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feature] Pinned tabs [feature] Add pin tab
2 participants