Skip to content

Update branch adn fix errors#1

Merged
ostr00000 merged 1398 commits into
sewe2000:bug_18101-python-validation-bindingsfrom
ostr00000:bug_18101-python-validation-bindings
Feb 13, 2026
Merged

Update branch adn fix errors#1
ostr00000 merged 1398 commits into
sewe2000:bug_18101-python-validation-bindingsfrom
ostr00000:bug_18101-python-validation-bindings

Conversation

@ostr00000

Copy link
Copy Markdown
Collaborator

Description

Updating branch from changes from master. Also, I fixed some pre-commit errors.
In PR to QGIS base repo there is an error in DB, but maybe it is unrelated - this is not addresed here.

ViperMiniQ and others added 30 commits February 3, 2026 09:49
…-error-message

Fix raster calc opencl build error and add informative error message
Avoid module wide `QtConcurrent` imports
Cloned QgsRasterLayer objects in the copy constructor were never added
to mRasterLayers, so the destructor's qDeleteAll(mRasterLayers) never
freed them. Every clone() call (triggered by the rendering pipeline on
each pan/zoom) leaked all source raster layers.

Fixes qgis#64559
add merge tag for aggregate algorithm so that it shows up when searching for it
Unlike the other floater values which have a boolean hidden/visible
state only, these floater values support display in either
ellipsoidal or cartesian measurements. This commit adds the framework
for handling these new floater item types.

It's tricky to decide if the default should be ellipsoidal or
cartesian measurements. Elsewhere we tend to use ellipsoidal
measurements by default, but the whole CAD tools are built
strictly around Cartesian measurements (eg distance constraints
are always Cartesian). If we default to Ellipsoidal measurements
here to match the rest of QGIS measurement tools, then users will
get confused if they use a distance constraint for a set distance
and then immediately see a DIFFERENT total length measurement
readout! On the other hand, if we default to Cartesian measurements
to match the CAD constraints, then users will get confused when
the CAD floater shows a total area, and then immediately after
digitizing the identify tool show will show a DIFFERENT total
area! argh!

So to make things as user friendly as possible, we:

1. FORCE the user to make the choice. The area and length measurements
   default to hidden, and to show them the user must select the floater
   menu, "Show Area" submenu -> and then pick between "hidden",
   "show cartesian area" or "show ellipsoidal area" (and similar for
   total length). There can be NO ambiguity as the user has explicitly
   made a choice between them!
2. We show a small icon next to the floater area/total distance labels,
   with a curved line if the measurement is ellipsoid based, or a
   straight line if it's cartesian based
Required to allow canvases/map tools to emit status bar messages
bar while digitizing

Like the equivalent CAD float setting, these measures can be
individually controlled to hide them, or show in either ellipsoidal
or cartesian calculations
Contains utility functions for working with measurements
And avoid unnecessary forced conversion of text rotation to int --
the QPainter methods are capable of floating point rotation values
…tions

Instead of always left aligning these, expose a control for users
to choose alignment. This is especially useful for multi-line
annotations, which look ugly when left aligned on the left side
of the map.
nyalldawson and others added 27 commits February 13, 2026 18:54
And split to separate widget/dialog classes

Proper cleanup cannot be done here, due to need to maintain
the old Processing gui API
[tests] Add tests for QgsGeometryUtils::interpolateZ
QgsVectorFileWriter: fix writing NurbsCurve to OGR, by converting them to LineString
Fix incorrect path value when constructing QgsDataProvider
…dings' into bug_18101-python-validation-bindings

# Conflicts:
#	src/app/gps/qgsappgpsdigitizing.cpp
# Conflicts:
#	python/gui/auto_additions/qgisinterface.py
#	python/gui/auto_generated/qgisinterface.sip.in
#	python/gui/gui_auto.sip
@github-actions

github-actions Bot commented Feb 13, 2026

Copy link
Copy Markdown

🧮 Vcpkg update report

Added packages:
🍓 py-adbc-driver-manager: 1.10.0#1 (Features: )
🍓 py-adbc-postgresql: 1.10.0#1 (Features: )
🍓 py-adbc-sqlite: 1.10.0#1 (Features: )
🍓 py-fiona: 1.10.1 (Features: )
🍓 py-geopandas: 1.1.2#1 (Features: arrow, core, fiona, pyogrio)
🍓 py-pandas: 2.3.3#2 (Features: )
🍓 py-psycopg-c: 3.3.2 (Features: )
🍓 py-pydantic-core: 2.41.5#1 (Features: )
🍓 py-pyogrio: 0.12.1 (Features: )
🍓 py-tzdata: 2025.3 (Features: )
🍓 py-versioneer: 0.29 (Features: )

Removed packages:
🍄 qtlocation: 6.9.1 (Features: )

Updated packages:
🍇 arrow: 21.0.0#2 -> 22.0.0 +python
🍇 arrow-adbc: +core, postgresql, sqlite
🍇 blas: 2023-04-14#4 -> 2023-04-14#5
🍇 boost-algorithm: 1.89.0 -> 1.90.0
🍇 boost-align: 1.89.0 -> 1.90.0
🍇 boost-array: 1.89.0 -> 1.90.0
🍇 boost-assert: 1.89.0 -> 1.90.0
🍇 boost-atomic: 1.89.0 -> 1.90.0
🍇 boost-bind: 1.89.0 -> 1.90.0
🍇 boost-charconv: 1.89.0 -> 1.90.0
🍇 boost-chrono: 1.89.0 -> 1.90.0
🍇 boost-cmake: 1.89.0 -> 1.90.0
🍇 boost-concept-check: 1.89.0 -> 1.90.0
🍇 boost-config: 1.89.0 -> 1.90.0
🍇 boost-container: 1.89.0 -> 1.90.0
🍇 boost-container-hash: 1.89.0 -> 1.90.0
🍇 boost-conversion: 1.89.0 -> 1.90.0
🍇 boost-core: 1.89.0 -> 1.90.0
🍇 boost-date-time: 1.89.0 -> 1.90.0
🍇 boost-describe: 1.89.0 -> 1.90.0
🍇 boost-detail: 1.89.0 -> 1.90.0
🍇 boost-dynamic-bitset: 1.89.0 -> 1.90.0
🍇 boost-exception: 1.89.0 -> 1.90.0
🍇 boost-filesystem: 1.89.0 -> 1.90.0
🍇 boost-function: 1.89.0 -> 1.90.0
🍇 boost-function-types: 1.89.0 -> 1.90.0
🍇 boost-functional: 1.89.0 -> 1.90.0
🍇 boost-fusion: 1.89.0 -> 1.90.0
🍇 boost-headers: 1.89.0 -> 1.90.0
🍇 boost-integer: 1.89.0 -> 1.90.0
🍇 boost-intrusive: 1.89.0 -> 1.90.0
🍇 boost-io: 1.89.0 -> 1.90.0
🍇 boost-iterator: 1.89.0 -> 1.90.0
🍇 boost-lexical-cast: 1.89.0 -> 1.90.0
🍇 boost-locale: 1.89.0 -> 1.90.0
🍇 boost-math: 1.89.0 -> 1.90.0
🍇 boost-move: 1.89.0 -> 1.90.0
🍇 boost-mp11: 1.89.0 -> 1.90.0
🍇 boost-mpl: 1.89.0 -> 1.90.0
🍇 boost-multiprecision: 1.89.0 -> 1.90.0
🍇 boost-numeric-conversion: 1.89.0 -> 1.90.0
🍇 boost-optional: 1.89.0 -> 1.90.0
🍇 boost-predef: 1.89.0 -> 1.90.0
🍇 boost-preprocessor: 1.89.0 -> 1.90.0
🍇 boost-random: 1.89.0 -> 1.90.0
🍇 boost-range: 1.89.0 -> 1.90.0
🍇 boost-ratio: 1.89.0 -> 1.90.0
🍇 boost-regex: 1.89.0 -> 1.90.0
🍇 boost-scope: 1.89.0 -> 1.90.0
🍇 boost-scope-exit: 1.89.0 -> 1.90.0
🍇 boost-smart-ptr: 1.89.0 -> 1.90.0
🍇 boost-static-assert: 1.89.0 -> 1.90.0
🍇 boost-system: 1.89.0 -> 1.90.0
🍇 boost-thread: 1.89.0 -> 1.90.0
🍇 boost-throw-exception: 1.89.0 -> 1.90.0
🍇 boost-tokenizer: 1.89.0 -> 1.90.0
🍇 boost-tuple: 1.89.0 -> 1.90.0
🍇 boost-type-traits: 1.89.0 -> 1.90.0
🍇 boost-typeof: 1.89.0 -> 1.90.0
🍇 boost-uninstall: 1.89.0 -> 1.90.0
🍇 boost-unordered: 1.89.0 -> 1.90.0
🍇 boost-utility: 1.89.0 -> 1.90.0
🍇 boost-uuid: 1.89.0 -> 1.90.0
🍇 boost-variant2: 1.89.0 -> 1.90.0
🍇 boost-winapi: 1.89.0 -> 1.90.0
🍇 double-conversion: 3.3.1 -> 3.4.0
🍇 duckdb: 1.4.2 -> 1.4.3
🍇 egl-registry: 2024-01-25 -> 2025-05-27
🍇 fontconfig: 2.15.0#4 -> 2.17.1#1 +iconv, core
🍇 gflags: 2.2.2#9 -> 2.3.0
🍇 glib: 2.84.2#2 -> 2.86.2#1
🍇 h3: 4.4.0 -> 4.4.1
🍇 json-schema-validator: 2.3.0#2 -> 2.4.0
🍇 lapack-reference: 3.12.1#1 -> 3.12.1#2
🍇 libjpeg-turbo: 3.1.2 -> 3.1.3
🍇 liblzma: 5.8.1 -> 5.8.2
🍇 libpng: 1.6.50 -> 1.6.53
🍇 libpq: 16.9#1 -> 16.9#2
🍇 libsecret: 0.21.4#1 -> 0.21.4#2
🍇 libspatialite: 5.1.0#5 -> 5.1.0#6
🍇 libsystemd: 257.8 -> 257.8#1
🍇 meshoptimizer: 0.25#2 -> 1.0.1
🍇 nanoflann: 1.8.0 -> 1.9.0
🍇 o2: 1 -> 1.1
🍇 opengl-registry: 2024-02-10#1 -> 2025-10-23
🍇 pdal: 2.9.2#1 -> 2.9.3
🍇 pdal-dimbuilder: 2.9.2 -> 2.9.3
🍇 proj: 9.7.0 -> 9.7.1
🍇 protobuf: 5.29.5#2 -> 5.29.5#3
🍇 py-attrs: 24.2.0 -> 25.4.0
🍇 py-beautifulsoup4: 4.12.3 -> 4.14.3#1
🍇 py-click: 8.3.0 -> 8.3.1
🍇 py-cython: 3.0.5#1 -> 3.2.2
🍇 py-hatchling: 1.27.0 -> 1.28.0
🍇 py-jsonschema: 4.23.0 -> 4.26.0
🍇 py-jsonschema-specifications: 2024.10.1 -> 2025.9.1
🍇 py-maturin: 1.9.6 -> 1.11.5
🍇 py-networkx: 3.4.2 -> 3.6.1
🍇 py-pathspec: 0.12.1 -> 1.0.3
🍇 py-psycopg: 3.2.12 -> 3.3.2#1
🍇 py-pydantic: 2.12.4 -> 2.12.5#1
🍇 py-pyproj: 3.7.0 -> 3.7.2
🍇 py-pyqt-builder: 1.19.0 -> 1.19.1
🍇 py-pyqt6: 6.10.0 -> 6.10.2 +qtpositioning, qtserialport
🍇 py-pyqt6-sip: 13.10.2 -> 13.10.3
🍇 py-pysal: 24.7 -> 25.7
🍇 py-rasterio: 1.4.2 -> 1.5.0
🍇 py-referencing: 0.35.1 -> 0.37.0
🍇 py-rpds: 0.20.1 -> 0.30.0
🍇 py-shapely: 2.0.6 -> 2.1.2
🍇 py-sip: 6.14.0 -> 6.15.1
🍇 py-trove-classifiers: 2025.9.11.17 -> 2025.12.1.14
🍇 py-urllib3: 2.5.0 -> 2.6.3
🍇 pybind11: 2.11.1 -> 2.13.6
🍇 python3: 3.12.11 -> 3.12.11#1
🍇 qca: 2.3.7#2 -> 2.3.7#4
🍇 qt3d: 6.9.1 -> 6.9.3
🍇 qt5compat: 6.9.1 -> 6.9.3
🍇 qtbase: 6.9.1#2 -> 6.9.3 +xcb-sm, sessionmanager
🍇 qtcharts: 6.9.1 -> 6.9.3 +core, qml
🍇 qtconnectivity: 6.9.1 -> 6.9.3
🍇 qtdeclarative: 6.9.1 -> 6.9.3
🍇 qtimageformats: 6.9.1 -> 6.9.3
🍇 qtkeychain-qt6: 0.14.3 -> 0.14.3#1
🍇 qtlanguageserver: 6.9.1 -> 6.9.3
🍇 qtmultimedia: 6.9.1 -> 6.9.3
🍇 qtpositioning: 6.9.1 -> 6.9.3 -core, qml
🍇 qtsensors: 6.9.1 -> 6.9.3
🍇 qtserialport: 6.9.1 -> 6.9.3
🍇 qtshadertools: 6.9.1 -> 6.9.3
🍇 qtsvg: 6.9.1 -> 6.9.3
🍇 qttools: 6.9.1 -> 6.9.3
🍇 qtwebchannel: 6.9.1 -> 6.9.3
🍇 qtwebsockets: 6.9.1 -> 6.9.3
🍇 sqlite3: 3.51.0 -> 3.51.1
🍇 utf8proc: 2.11.1 -> 2.11.2
🍇 vcpkg-tool-rust: 2025-03-13#2 -> 2025-03-13#3
🍇 xsimd: 13.2.0 -> 14.0.0

🪟 Windows Qt6 builds

Download Windows Qt6 builds of this PR for testing.
(Built from commit 592cf5a)

@ostr00000 ostr00000 merged commit 5018ee9 into sewe2000:bug_18101-python-validation-bindings Feb 13, 2026
17 of 20 checks passed
@ostr00000 ostr00000 deleted the bug_18101-python-validation-bindings branch February 13, 2026 16:16
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.