Version: [5969] ArcGIS-like Workspace 0.4.2 Experimental

### Fixed
- **Tab and ribbon toolbars shared one row.** `ToolbarBuilder` added
both
  with a bare `addToolBar(TOP, ...)`, which appends to the last
existing
  toolbar row: in QGIS 4.2 the ribbon was squeezed to 124px (only its
  "Project" label visible, everything else behind the overflow
chevron),
  under the still-visible native toolbars. Both are now inserted in
front
  of the top-left native toolbar, each on its own row
  (`ToolbarBuilder._place_toolbar()`), and stay there across
re-applies.
- **Native toolbars left above the ribbon.**
`mDataSourceManagerToolBar`
  was missing from the hide list, and several toolbar names were QGIS
3
  spellings only (`mAnnotationsToolBar`, `mMeshToolBar`, `mGpsToolBar`
added).
  `QGIS_DEFAULT_VISIBLE_TOOLBAR_NAMES` is corrected against a fresh
QGIS
  4.2 profile -- the 0.4.1 list didn't match it (it included Manage
Layers,
  which stock 4.2 hides, and a `mProjectToolBar` 4.2 doesn't have).
- **Hard-coded light colors.** The stylesheet is now built from the Qt
  palette at apply time, so it stays readable in dark themes (0.4.1
drew
  light button text on a white ribbon under a dark palette).
- **Ribbon labels truncated** ("Zo...ut"): the stylesheet's
`min-width` made
  the toolbar size ribbon buttons to 82px instead of their 108px size
hint.
- **Contextual ribbon groups hid unreliably.**
`ActionGroup.set_visible()`
  called `QWidget.setVisible()` on toolbar widgets, which Qt documents
as
  unsupported. Each ribbon entry is now a `QToolButton` wrapping the
native
  action, added via `addWidget()`, and groups toggle the
`QWidgetAction`s
  they own.
- **Snapping restore could hit the wrong project.** Apply on project
A,
  open project B, Restore wrote A's snapping into B. The saved
original is
  now dropped when the project is cleared, a snapping change made
after
  Apply is left alone, and neither Apply nor Restore marks a clean
project
  dirty. Only the four settings Apply changes are saved and compared
--
  comparing the whole config failed as soon as a layer was added.
- **Find button did nothing on QGIS 4.** `findChild(QgsLocatorWidget)`
  returns None there (the widget is only known to PyQt as a
`QWidget`);
  it's now found by Qt class name and `sip.cast()`.
- **Locator filter duplicated results and wasn't thread-safe.** QGIS's
  built-in layer, bookmark and processing filters already run without
a
  prefix, so every layer/bookmark/algorithm hit showed twice. The
filter
  now only emits ArcGIS tool-name aliases the built-ins can't find,
and
  reads a registry snapshot taken in `prepare()` (main thread) instead
of
  touching QGIS objects from `fetchResults()`'s worker thread.
- **Dock lookup depended on the UI language.** Docks are now matched
by
  exact object name first (`Layers`, `Browser`, `ProcessingToolbox`,
...);
  the title-substring match is only a fallback, and can no longer pick
up
  "Browser (2)".

### Changed
- Digitizing and Snapping toolbars show only while the active vector
  layer is in edit mode; Labeling only while a vector layer is active.
- "Add Data" (Data Source Manager) added to the Insert menu and Layers
  ribbon group, replacing the now-hidden Data Source Manager toolbar.
- Notifications uses QGIS's Log Messages icon with a painted
unread-count
  badge instead of a "(N)" text suffix.
- Ambiguous ArcGIS aliases (Erase, Merge, Append, Mosaic, Raster to
  Polygon, Polygon to Raster) now point at exact algorithm ids;
"Mosaic"
  used to match every algorithm with "merge" in its name.
- Stylesheet Restore removes only this plugin's marker-delimited
block, so
  rules another plugin added in the meantime survive.

yes

JanSolo99

2026-10-12T20:33:12.021460+00:00

3.28.0

4.99.0

None

yes

Version management

Plugin details