Skip to content

feat(gui): Pin tabs#2230

Merged
skylot merged 9 commits intoskylot:masterfrom
Mino260806:feat_pin_tab
Aug 1, 2024
Merged

feat(gui): Pin tabs#2230
skylot merged 9 commits intoskylot:masterfrom
Mino260806:feat_pin_tab

Conversation

@Mino260806
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor Author

@skylot let me know what you think!

@skylot skylot merged commit 6ab224e into skylot:master Aug 1, 2024
@skylot
Copy link
Copy Markdown
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