Expand description
DockingLayout — a VS Code-style dockable layout: a fixed centre slot
(the app’s main content) surrounded by four collapsible, splittable,
draggable side regions (leading / trailing / top / bottom), backed by a
cloneable, serializable DockingModel.
See docs/docking.md for the full reference. The structure is four
levels deep:
DockingLayout
└── Centre + 4 Sides
└── Side = [optional DockActivityBar rail] + collapsible content region
└── content region holds ONE TabWidget (strip optional / replaced
by the rail)
└── Tab → DockArrangement (a Splitter of panes, each a single
DockWidget or a ToolBox of DockWidgets)
└── DockWidget — the atomic dockable unitStructs§
- Corner
Owners - Which side owns each corner. Default = the classic IDE shell where the top and bottom bars span the full width and the leading / trailing columns occupy only the middle band.
- Dock
Action - A dockless command button in the activity rail: it looks and behaves like an activity item, but opens no panel — activating it just runs a closure.
- Dock
Action Id - Stable identity for a
DockAction. - Dock
Layout State - The full serializable snapshot of a
DockingModel. - DockLoc
- Where a dock currently lives. One dock per Splitter pane, so a
(side, tab_idx, pane_idx)triple addresses it exactly. - Dock
Open Location - Target for
DockingModel::open_dock/DockingModel::move_dock. - Dock
Policy - App-declared policy that locks down end-user layout edits on a
DockingLayout. Each flag removes a user affordance only — the programmaticDockingModelAPI (a “Toggle panel” button,open_dock,set_tab_hidden, …) keeps working regardless, so the app can still drive the layout it has locked for the user. - Dock
Rail - App-facing configuration for a side’s activity rail (Rail presentation).
- Dock
Side State - One side’s persisted state.
- Dock
TabId - Process-unique identity for a dock tab (a tab of a side’s TabWidget).
- Dock
TabState - One tab’s persisted state: its Splitter sizing + the dock id in each pane (one dock per Splitter pane).
- Dock
Widget - App-facing declaration of a dock widget: identity, chrome metadata, and a
lazy content factory. Collect these on
DockingLayout::dock. - Dock
Widget Id - Process-unique identity for a registered dock widget (the atomic unit).
- Docking
Layout - The docking layout widget. See the module docs and
docs/docking.md. - Docking
Model - The shared docking-layout model.
Clone= share-by-handle. - Docking
Rects - The computed geometry: four side breakdowns plus the centre rect.
- Side
Layout - Per-side geometry inputs (all logical pixels), in LTR space.
- Side
Rects - The three sub-rectangles a side contributes: the always-visible rail, the
resizable content, and the resize handle. Any of them is [
Rect::ZERO] when absent.
Enums§
- Dock
Action Placement - Where a
DockActionsits along the rail’s column. - Dock
Corner - One of the four corners of the container. Each corner is owned by exactly
one of its two adjacent sides (Qt
setCorner). - Dock
Open Mode - Placement mode for a programmatically-opened dock.
- Dock
Rail Item Size - Activity-bar item size for a side’s rail (context-menu “Activity bar size”).
- Dock
Side - One of the four dockable sides.
Leading/Trailingare writing-direction-relative (mirrored under RTL by the caller);Top/Bottomnever mirror. - Dock
TabDisplay - How a side’s dock tabs render (context-menu “Tab size”).
- TabPresentation
- How a side surfaces its tabs: an in-side strip (the TabWidget’s own bar) or an always-visible activity rail outboard of the collapsible content.
Type Aliases§
- Dock
Content Factory - Builds a dock widget’s content on demand (keyed by its
DockWidgetId). - Dock
Icon Factory - Builds an icon for a dock widget’s tab / rail item on demand.
- Dock
Rail Slot - Factory for a rail slot widget (rebuilt on each rail rebuild).