feat: VS-style dock tabs with middle-elision and full context menu

- Remove stylesheet from dock tab bars; handle all painting in
  MenuBarStyle (CE_TabBarTabShape + CE_TabBarTabLabel) so middle-
  elision actually works (QStyleSheetStyle was intercepting labels)
- Accent line on selected tab, dark background, bottom border
- Tab font synced with editor font for correct sizing
- Full right-click context menu: Close, Close All Tabs, Close All
  But This, Close All But Pinned, Copy Full Path, Open Containing
  Folder, Float/Dock, Pin/Unpin Tab, New Horizontal/Vertical
  Document Group
- Add View → Reset Windows to re-tabify all docks
- Remove old View → Split/Remove Split
- Guard deferred timer lambdas with QPointer<QDockWidget>
- Extract setupDockTabBars() for idempotent tab bar configuration
- Register close-all.svg and split-vertical.svg icons
This commit is contained in:
IChooseYou
2026-03-05 15:16:01 -07:00
committed by IChooseYou
parent 4160a229c6
commit 877ceea4c1
3 changed files with 431 additions and 53 deletions

View File

@@ -90,7 +90,6 @@ private:
PluginManager m_pluginManager;
McpBridge* m_mcp = nullptr;
QAction* m_mcpAction = nullptr;
QAction* m_removeSplitAction = nullptr;
QMenu* m_sourceMenu = nullptr;
QMenu* m_recentFilesMenu = nullptr;
@@ -132,6 +131,7 @@ private:
TabState* tabByIndex(int index);
int tabCount() const { return m_tabs.size(); }
QDockWidget* createTab(RcxDocument* doc);
void setupDockTabBars();
void updateWindowTitle();
void closeAllDocDocks();