740 Commits

Author SHA1 Message Date
bdm-oslandia
40db5c8ef1 add sfcgal sip files 2025-09-05 09:30:02 +10:00
bdm-oslandia
ec0f29434e fix JoinStyle3D 2025-09-05 09:30:02 +10:00
bdm-oslandia
8b18258714 sfcgal: add buffer like operations 2025-09-05 09:30:02 +10:00
Mathieu Pellerin
3ff54d8166
Charts implementation, part 2: layout chart items (#62952) 2025-09-04 09:46:23 +07:00
Nyall Dawson
9c2c2d86a5 Add method for PyQGIS to determine whether the QGIS build has QtWebKit 2025-08-28 13:51:07 +10:00
Mathieu Pellerin
643d49bbb0
[plots] Introduction of a plot data gatherer from vector layers (#62938) 2025-08-26 13:44:30 +07:00
Mathieu Pellerin
bbbea51070 [plots] Add default marker/line and fill symbols for bar/line charts 2025-08-25 09:58:10 +07:00
Nyall Dawson
3e8c2cdf14 Add layer legend flags 2025-08-25 12:17:32 +10:00
Loïc Bartoletti
064eb69ecc
Merge pull request #62572 from lbartoletti/feature/add_chamfer_fillet
Feature/add chamfer fillet
2025-08-22 09:55:02 +02:00
Mathieu Pellerin
366fdfc307 Address second round of reviews 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
63ed8cb23a Add plot render context object and arguments 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
c6c099cbd2 Address review 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
c233382cd6 Break down qgschartplot.cpp/h into distinct files for each chart plot type 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
bb04984d95 QgsChartPlotRegistry -> QgsPlotRegistry 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
75ec5e4962 Address comments provided during the QEP review phase 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
abcb1785c9 Add missing files 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
d837af123f Implement a chart registry, to be used in GUI when offering a combobox of available charts 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
c89b4961c8 Implement {bar,line}chart writeXml and readXml function, add a plot type() virtual function 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
b0a73b65e3 Rework categories handling, move it into the QgsPlotData to increase logic robustness and simplicity 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
a0c45d9380 [plots] Add QgsBarChart and QgsLineChart classes, implement category typed axis rendering 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
a2caa8ea75 [plots] Add plot data classes 2025-08-22 10:41:20 +10:00
Mathieu Pellerin
a453dd65b6 [plots] Break Qgs2DPlot into a axis-less Qgs2DPlot and a X/Y axes Qgs2DXyPlot 2025-08-22 10:41:20 +10:00
Nyall Dawson
d6d8e307c0 Implement elevation profile manager model 2025-08-17 04:26:36 +10:00
Nyall Dawson
fdcda15365 [api] Create elevation profile manager, attached to QgsProject
This mimics QgsLayoutManager, but for storage of elevation profiles
attached to a project
2025-08-17 04:26:36 +10:00
Nyall Dawson
d7edbfe723 Introduce QgsMathUtils class
Currently contains a method for converting doubles to approximate
rational fractions
2025-08-07 11:56:06 +10:00
Loïc Bartoletti
1d246cdb27 refactor(QgsGeometryUtils): replace raw pointers by smart pointers 2025-08-05 11:53:27 +02:00
Loïc Bartoletti
b76cbadde8 refactor(chamfer/fillet): move logic to qgsgeometryutils 2025-08-05 07:24:23 +02:00
Loïc Bartoletti
351ae63ab1 feat(geometry): add chamfer and fillet core functions to QgsGeometryUtilsBase
Add createChamfer() and createFillet() methods for 2D geometric operations.
These low-level functions handle segment intersection, angle calculation,
and tangent point computation for CAD-style corner modifications.
2025-08-05 07:24:22 +02:00
Nyall Dawson
c686bb1f88 Generalise proxy model to support generic attached objects 2025-08-03 08:56:23 +10:00
Nyall Dawson
231b95bc45 Generalise QgsLayoutManagerModel to template class for project stored objects
Allows us to re-use the model for other attached object types
2025-08-03 08:56:23 +10:00
Nyall Dawson
24adfe7619 Move layout manager model to separate files 2025-08-03 08:56:23 +10:00
Nyall Dawson
cacdea42fd Create abstract base class for managers for objects attached to QgsProject
This generalizes the logic from QgsLayoutManager, so that additional
manager classes handling other object types can be added without
incurring a lot of near-duplicate code.

This is a step toward allowing storage of elevation profiles
within projects.
2025-08-03 08:56:23 +10:00
Nyall Dawson
741b9260fe Add processing documentation flag for algorithms which respect ellipsoid 2025-07-22 13:06:50 +10:00
signedav
bcddeb2605
Merge pull request #62343 from signedav/ordered
Relation Reference Order By Option
2025-07-18 12:18:45 +02:00
signedav
5603f44005 Use Qt::sortOrder to define if the order direction should be ascending or descending 2025-07-17 15:32:08 +02:00
Nyall Dawson
b04a908892
Clarify docs 2025-07-08 16:34:28 +10:00
Yoann Quenach de Quivillic
91e25e8051 Apply suggestions from review 2025-07-07 11:08:27 +12:00
Yoann Quenach de Quivillic
4c3aaa09ca Add methods to remove plugin-defined layout items when unloading plugin 2025-07-07 11:08:27 +12:00
Julien Cabieces
e83db3e361
Merge pull request #62139 from Simon-Lopez/simon/PR-add-profileSource
Add QgsMapLayer::profileSource
2025-07-03 14:54:30 +02:00
Mathieu Pellerin
8c7edbeec2 Rename rotation enum keys 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
ce2c8ac21f Address review 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
4bad76d876 Where did my pre-commit hook go? 2025-07-02 11:38:05 +12:00
Mathieu Pellerin
231929e6e3 Make the feature filter provider thread friendly, relocate old filter classes back into server 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
d8d7d5480e Fix rebase conflict 2025-06-30 11:07:37 +12:00
Mathieu Pellerin
d2377a0c48 Sipify 2025-06-30 11:07:37 +12:00
Nyall Dawson
9241880300 Fix ambiguity in QgsMapLayer::saveStyleToDatabase API
Don't require successful generation of both QML AND SLD, and return descriptive results flags
2025-06-25 10:19:31 +12:00
Simon Lopez
be9608f776 Add QgsMapLayer::profileSource
This commit adds a virtual method to QgsMapLayer to enable the creation of custom
elevation profiles for any type of layer.
The methods returns a pointer to a helper class of type
QgsAbstractProfileSource which is a factory for profile generators
(cf. documentation for QgsAbstractProfileSource).
Existing layers that derive from QgsAbstractProfileSource just override
this method returning a *this* pointer.
As the method is *sipified* it can be used in python to declare custom
profile source for classes derived from PluginLayer (ownership of the
QgsAbstractProfileSource must then be managed on the python side).
2025-06-24 23:24:00 +02:00
signedav
2ae1bec1fe Expression and order (direction) to sort entries of the relation reference widget. If not configured it takes the displayExpression.
This introduces a new expression and order value in the featurepickermodel and a sortvalue in its feature value gatherer. Sorting is still done in the model (not on feature request), to be not needed to make another request on re-ordering.
This resolves #48191
2025-06-20 12:00:22 +02:00
Nyall Dawson
fa40eedcd3 Return requires rasterization flag when required 2025-06-19 14:49:17 +12:00
Nyall Dawson
01cf5bbc63 Introduce paint effect flags 2025-06-19 14:49:17 +12:00