356 Commits

Author SHA1 Message Date
nirvn
6e607313bd [feature] Handy null painter device class to use with map renderer custom painter jobs 2021-12-30 11:06:41 +07:00
bdm-oslandia
345dd4dd87 fix: replace referer http header by dedicated class QgsHttpHeader 2021-12-02 11:16:53 +10:00
Nyall Dawson
bab7a911b2 [API] Add new map layer class "QgsGroupLayer"
A group layer is a map layer which consists of a set of
child layers, where all component layers are rendered as a single
flattened object during map renders.

This commit sets up the base framework for QgsGroupLayer only
(i.e. no rendering changes).
2021-11-23 16:08:05 +11:00
Denis Rouzaud
1bb212ee9a
Merge pull request #45962 from 3nids/ux-db-table-filter
improve filtering of layers in DB dialogs
2021-11-10 15:13:03 +01:00
Nyall Dawson
5b8d164008 Split qgscolorramp.h/.cpp out into qgscolorrampimp.h/.cpp
Avoids a bunch of unwanted includes throughout QGIS
2021-11-10 18:42:42 +11:00
Denis Rouzaud
93bb188e2a add python bindings 2021-11-09 14:13:52 +01:00
Nyall Dawson
e733b517b3 Split QgsVertexId out to own file, promote type to enum class 2021-10-12 14:54:26 +10:00
Nyall Dawson
db4b0fed86 Move to core 2021-09-24 15:47:10 +10:00
David Marteau
ee6acb0ca2
Refactorize server properties 2021-09-16 14:10:07 +02:00
Etienne Trimaille
21c3f3fcbf
Add API for having many metadataUrl on a layer 2021-09-16 14:10:06 +02:00
Nyall Dawson
a87206dbdf Create QgsAbstractAnnotationItemEditOperation as base class for
edit operations on annotation layers, with initial implementation
as QgsAnnotationItemEditOperationMoveNode

This class encapsulates edit operations which apply to annotation
layers/items
2021-09-10 15:01:26 +10:00
Vincent Cloarec
46013949fb
Force mesh by polylines (#44962)
[mesh] [feature] allow modify mesh frame elevation by force/break lines
2021-09-09 10:26:32 +02:00
Nyall Dawson
4ff1e55a21 [api] Add method to retrieve the nodes for an annotation item
For now all nodes just directly represent vertices in the item,
but the intention here is that they can represent any form of handle
which can be used to manipulate an item (e.g. a bezier curve point,
some "smart shape" handle for resizing or rotating an item, etc)
2021-09-03 08:06:48 +10:00
Nyall Dawson
660433d9a9 [api] Add framework for collecting rendered item details during map
renderer operations

This follow a similar pattern as how labeling results could be collected
after a map render job, but generalises the API so that it can be
used for storing details of rendered items of any type.

It's currently used for storing details of rendered annotation items,
so that map tools can retrieve details of annotation items visible
in the canvas in an optimised way.
2021-08-31 11:04:29 +10:00
Alessandro Pasotti
889359c3a1 Form DD action widgets initial implementation 2021-08-14 19:06:52 +02:00
Nyall Dawson
612af1fb7b Add a registry for GPSbabel formats 2021-07-31 10:12:16 +10:00
Julien Cabieces
82e16cf38c [External Storage] Add QgsCopyFileTask 2021-07-30 10:16:45 +02:00
Julien Cabieces
6967b1cd2b [External Storage] Define API 2021-07-30 10:16:45 +02:00
Nyall Dawson
0a77401d1c Add python bindings 2021-07-30 16:07:36 +10:00
Nyall Dawson
8ce347397e Add QgsProjectUtils utility class with function for retrieving layers matching a file path from a project 2021-07-28 19:39:12 +10:00
Vincent Cloarec
8cd8bec5f2
[mesh] mesh frame editing part 3 - Advanced editing (#44169)
[mesh] [feature] Delaunay triangulation and face refinement for advanced mesh editing tools
2021-07-19 08:21:31 +02:00
Alessandro Pasotti
aaff7cebf3
Merge pull request #43520 from Gustry/version
[CLI] Add --version and -v to know QGIS version
2021-07-07 15:25:40 +02:00
nirvn
4b52b7be7f Move QgsExifTools utility class to core 2021-07-07 13:46:11 +07:00
Nyall Dawson
288321505a Start on sublayer model 2021-07-06 17:57:21 +10:00
Nyall Dawson
1355b39be0 Add QgsProviderUtils with a method for determining whether a list
of sublayer details is incomplete and requires a more in-depth scan
2021-07-02 09:49:33 +10:00
Nyall Dawson
7c6afc0761 Create QgsProviderSublayerTask for retrieving sublayer details in a thread
This can sometimes take a looooong time, so it's worth doing in the
background
2021-07-02 09:49:33 +10:00
Etienne Trimaille
bb9c45db6f
[CLI] Add --version and -v to know QGIS version 2021-06-25 17:24:20 +02:00
Vincent Cloarec
d326d38660
[mesh] mesh frame editing part-1 (qgis_core) (#43828)
[feature] qgis_core changes to allow mesh layer editing (part-1 or QEP#228)
2021-06-25 16:17:13 +02:00
Sandro Mani
83f73027ad Install missing headers, fix includes from installed location 2021-06-24 01:08:45 +02:00
Nyall Dawson
e59f343110 Introduce QgsProviderSubLayerDetails 2021-06-22 08:43:39 +10:00
Nyall Dawson
dc50988147 Move logic to calculate combined extent of a set of map layers
to new QgsMapLayerUtils class
2021-05-21 18:12:21 +10:00
Nyall Dawson
06844626d1 Move QgsLayerItem icon related static methods to new QgsIconUtils class
These utilities are used in a LOT of places in QGIS, but the
qgslayeritem.h include is a very heavy dependency. It makes sense
to have these utilities in a nice lightweight generic class.
2021-05-21 09:22:05 +10:00
Nyall Dawson
b5aace6e82 Split qgsdataitem.h/cpp into multiple files for individual classes
to avoid mega file which triggers an include explosion
2021-05-21 09:22:05 +10:00
Nyall Dawson
68c98b55e7 Move core browser and map renderer files to src/core/browser
and src/core/maprenderer subfolders

Helps keep src/core a little more organized
2021-05-21 09:22:05 +10:00
Nyall Dawson
0c4dd068c4 Move generic provider related files to src/core/providers
Minor clean up
2021-05-19 10:16:43 +10:00
Nyall Dawson
b5dfe8f155 Refactor enum handling
- Add enums to qgis.h instead of qgscoreenums, so that they belong to
a Qgis namespace
- Split up the various symbol headers into multiple files so that we
can fine-tune their inclusion and forward declare more readily, speeding
up recompilation
- Move QgsSymbol enums to qgis
2021-05-18 16:59:22 +10:00
Nyall Dawson
af6c08bb26 Move QgsMapLayerType to separate generic header for core enums
Avoids the need to include the whole qgsmaplayer.h header and
all its dependancies when only the QgsMapLayerType enum is required.
2021-05-17 16:09:13 +10:00
Nyall Dawson
b6f60f6120 Add QgsCoordinateReferenceSystem::operation() for retrieving details
of the associated proj operation for a CRS

Allows callers to determine the projection used for CRS objects and
their details.

Also add QgsCoordinateReferenceSystemRegistry::projOperations() for
retrieving a complete list of all available PROJ operations
2021-05-11 14:25:53 +10:00
Nyall Dawson
7604b6e47e Add QgsCoordinateReferenceSystemRegistry::celestialBodies() for
retrieving a list of all known celestial bodies from PROJ

Requires PROJ 8.1+
2021-05-10 21:58:03 +10:00
Nyall Dawson
bfb1dd7672 [api] Add QgsCoordinateReferenceSystem::factor()
Calculate various cartographic properties, such as scale factors,
angular distortion and meridian convergence for the CRS at a
given geodetic point (in geographic coordinates).

Depending on the underlying projection values will be calculated
either numerically (default) or analytically. The function also
calculates the partial derivatives of the given coordinate.

Internally uses the proj library proj_factors API to calculate the factors.

Fixes #41952
2021-05-08 07:49:27 +10:00
Nyall Dawson
31d1df320a Move projection/transformation related files to core/proj
Minor cleanup
2021-05-08 07:49:27 +10:00
Nyall Dawson
e9cf180dac [api] Add methods for retrieving datum ensemble details for a
QgsCoordinateReferenceSystem

Requires proj >= 8.0
2021-05-07 11:45:07 +10:00
Nyall Dawson
1a4d7b0288 Improved conversion of MapInfo line symbols
Many MapInfo line symbols don't translate well into OGR styles, so
in order to improve the quality of the conversion this commit introduces
a new QgsMapInfoSymbolConverter class which contains utility functions
for converting MapInfo symbols by ID to their QGIS equivalent.

Implemented for line symbols only for now.
2021-05-07 06:38:09 +10:00
Nyall Dawson
3bdb2bbcbd Move layer notes utils to a new QgsLayerNotesUtils class so that they are accessible from core 2021-05-05 08:44:22 +10:00
Nyall Dawson
1a9a533fca [feature] Automatically translate layer data from ESRI Filegeodatabases
to QGIS layer metadata

Translate as much as possible of the original ESRI metadata across
to the QGIS metadata, so that it's immediately available for
use by users after loading a .gdb file.
2021-04-30 06:37:42 +10:00
Damiano
598f6c73f0 Moved QgsSettings class in subdir settings 2021-04-19 10:22:04 +02:00
Damiano
2087a7f4f8 Removed settings struct 2021-04-15 17:32:59 +02:00
Damiano
21c19aba9c static inline settings 2021-04-01 09:38:56 +02:00
Nyall Dawson
63a365a6a2 Add some utility functions to new QgsMapLayerFactory class for easier reuse 2021-03-10 09:39:46 +10:00
Nyall Dawson
50082a396f Create new "Embedded Symbol" renderer
This renderer will draw features using their embedded feature symbology
2021-03-06 16:37:46 +10:00