108 Commits

Author SHA1 Message Date
Julien Cabieces
43062c8833 fix(CMYK): treat review comments 2024-07-11 21:13:42 +10:00
Julien Cabieces
7e527d182b feat(CMYK): add API color model and profile methods to project
API allows to define a color model without a color space. If both are
set, consistency between defined color model and color space one is
checked (only in Qt version 6.8.0 or greater because it's not possible
to retrieve color model from color space before that)
2024-07-11 21:13:42 +10:00
Mathieu Pellerin
f9d3ca3afe [qml] Add missing QgsProject's transactionMode property 2024-06-02 07:32:36 +07:00
Nyall Dawson
6ee262f401 Add option to invert the elevation filter widget
If checked, this option reverse the slider in the elevation filter
so that the widget goes from high values at the bottom to low values at the top.

See justification in https://github.com/qgis/QGIS/issues/56995

Fixes #56995
2024-05-01 13:48:19 +10:00
Nyall Dawson
1698bd3391 Store elevation filter fixed range size in project
Remember this setting between sessions for a project
2024-05-01 13:48:19 +10:00
Nyall Dawson
264f426ba9 Expand documentation 2024-04-26 20:26:41 +10:00
Nyall Dawson
9f2b519d7e [api] Add QgsProject::crs3D
Returns the CRS to use for the project when transforming 3D data,
or when z/elevation value handling is important.

The returned CRS will take into account verticalCrs(), e.g. by
returning a compound CRS consisting of crs() + verticalCrs().

This method may still return a 2D CRS, e.g in the case that crs()
is a 2D CRS and no verticalCrs() has been set for the project.
I.E. It is NOT guaranteed that the returned CRS will actually
be a 3D CRS, but rather it is guaranteed that the returned CRS
is **ALWAYS** the most appropriate CRS to use when handling 3D data.
2024-04-26 20:26:41 +10:00
Nyall Dawson
b5a8722446 Improve documentation 2024-04-10 09:05:23 +10:00
Nyall Dawson
37c69d1b60 Add validation to calls to QgsProject.setVerticalCrs 2024-04-10 09:05:23 +10:00
Nyall Dawson
e2a3edc76d [api] Add vertical crs option to QgsProject
If the project crs() is a compound CRS, then the CRS returned
by QgsProject::verticalCrs()  be the vertical component of
QgsProject::crs(). Otherwise it will be the value explicitly
set by a call to setVerticalCrs().

The vertical crs is a persistent property of a project, which
is saved/restored to xml.
2024-04-10 09:05:23 +10:00
Nyall Dawson
07294f7252 Add elevation range to QgsProjectElevationProperties
And expose through Project Properties elevation settings widget

This setting allows users to specify the upper and lower
elevation limits associated with the project. (I.e. its an
equivalent to QgsProjectTimeSettings::temporalRange)
2024-03-09 06:57:53 +10:00
Even Rouault
15ea5c46bc
Header files: remove all mentions of '\since QGIS 3.0' 2024-02-18 20:57:23 +01:00
Even Rouault
02caeb9db7
Header files: remove all mentions of '\since QGIS 2.' 2024-02-18 20:46:01 +01:00
Even Rouault
a5c8f01003
Header files: remove all mentions of '\since QGIS 1.' 2024-02-18 20:46:00 +01:00
Nyall Dawson
de532a62aa Fix doxygen warning 2024-02-06 21:04:43 +10:00
Nyall Dawson
ac2f1179c8 More item data role enum to enum class conversions 2024-02-06 21:04:43 +10:00
Nyall Dawson
f1e3ba9e2d Use correct sip method
And use INDENT-OFF annotations to avoid astyle messing up
formatting of enum with inline macros
2024-01-31 13:48:49 +10:00
Nyall Dawson
b5aca7c0b5 Promote another enum to enum class 2024-01-31 13:48:49 +10:00
Nyall Dawson
e891ac8fec [feature] Add "movie" mode to temporal controller
This mode is purely for animated map movies -- the user can set
the total number of frames, and the animation will progress
frame by frame for that number of frames, advancing the current
map settings frame at each step (also the @frame_number expression
variable).

No time based filtering of data is performed when in this mode.
2023-11-30 13:54:02 +10:00
Nyall Dawson
82e8212971 Apply suggestions from code review 2023-08-18 14:10:02 +10:00
glebpinigin
77f8fecae8 Version added to sip 2023-08-18 14:10:02 +10:00
glebpinigin
c8ff4df805 Updated sip wrappers 2023-08-18 14:10:02 +10:00
Nyall Dawson
4ebfa34eeb Correctly cleanup project archive files before attempting
to clear/replace archive

Otherwise the temporary archive directory cannot be removed,
resulting in many "QTemporaryDir: Unable to remove" warnings
and leftover temporary directories

Refs #53034
2023-06-09 11:19:33 +10:00
Nyall Dawson
8a2c0e3561 Replace QgsDebugMsg(...) with QgsDebugError(...) and ensure it
is ONLY used for error message reporting

Everything else gets bumped to QgsDebugMsg(..., >= 2)
2023-05-20 16:19:17 +10:00
Nyall Dawson
50c76929e1
Followup 30700f1, ensure links to Qgis members are set in docstrings 2023-03-31 10:46:24 +10:00
Yoann Quenach de Quivillic
c5e1ca5249 Add missing comparison operators 2023-03-30 08:22:36 +10:00
Mathieu Pellerin
d2b117a3c8 [sensors] Brand new sensors framework (manager, registry, sensor types) 2023-03-24 15:28:47 +07:00
Julien Cabieces
8f32f07433 Treat review comments
Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>
2023-02-27 09:24:40 +01:00
Nyall Dawson
f9c3da1e06 Move unit enums to Qgis, promote to enum class 2023-02-19 13:29:06 +10:00
Vincent Cloarec
3ca858af66
Global map terrain shading (#51535)
* QgsShadingRendering and pipe to render global elevation map

* gdal utils with datatype and resampling method enum

* raster layer elevation map

* optimize raster elevation map with rotation

* handle  no data value in the map elevation raster pipe

* mesh layer and some little fixes

* fix nodata and hillshading z factor

* render shading on layout

* activate/deactivate the shading from ui

* shading only for layer that have elevation

* apply Z scale and offset of layer elevation properties

* ui settings

* allow elevation from point cloud even edl is deactivate for pointcloud

* fix ui

* sipify

* Shading renderer widget in styling panel

* icone for shading renderer settings widget

* two methods to combin elevation

* rewording

* remove check box at the bottom of canvas

* use band of elevation properties

* fix styling pannel

* render shading in layout

* keep EDL point cloud shading individually

* add shading rendering tests

* add missing code for local EDL for point cloud

* shading inactive by default

* rework raster layer resampling

* improve nodata in elevation map

* don't allow elevation map with != size to be combined

* remove EDL from point cloud

* renaming

* sipify

* colorize tests

* renaming

* RGB32

* renaming leftover

* some ui fixes

* fix border for EDL alg

* fix EDL closed next to nodata value

* fix first shading when activated

* renaming and typo

* fixes for doc, doxygen, indentation and spelling

* remove leftover member

* fix clang-tidy

* fix edl tests

* fix dll export

* minor fixes

* adapt images of tests

* fix narrowing

* fix indentation

* sipify

* WIP

* minor ui changes
2023-01-26 15:02:16 +01:00
Nyall Dawson
ce6cf4a001 Move responsibility for managing GPS time stamp destination field
to QgsProjectGpsSettings, and store time stamp destination fields
in projects
2022-11-09 05:17:03 +10:00
Nyall Dawson
d0b4bcfc66 Resurrect option to follow layers 2022-11-07 18:24:52 +10:00
Nyall Dawson
544641c17f Add a destination layer property to QgsProjectGpsSettings 2022-11-07 18:24:52 +10:00
Nyall Dawson
8aa0857cba Spelling 2022-11-06 17:55:20 +10:00
Nyall Dawson
89c1952def Rename methods for consistency 2022-11-06 17:55:20 +10:00
Nyall Dawson
816eb16460 Create new QgsProjectGpsSettings class
Destinated for a storage location for GPS settings which are
project specific
2022-11-06 17:55:20 +10:00
Nyall Dawson
4a3e0b5b4b Add formal api for setting/retrieving project coordinate axis order
Instead of requiring informa fragile/slow project readEntry calls
2022-10-17 14:35:26 +10:00
Mathieu Pellerin
6b071d3be5 Apply suggestions 2022-09-05 11:18:38 +10:00
Mathieu Pellerin
2dae176bf5 Add missing dox 2022-09-05 11:18:38 +10:00
Mathieu Pellerin
b20cc301e7 Implement MapGeographic vs CustomCrs 2022-09-05 11:18:38 +10:00
Mathieu Pellerin
1570643d1d [api] Add project's default coordinate display type functions +
Q_PROPERTY for coordinate display type, distance units, and area units
2022-09-05 11:18:38 +10:00
Nyall Dawson
b79ca2951f Cleaner docs 2022-08-23 10:07:54 +10:00
Damiano Lombardi
67bdadfead
Fix rollback not leaving a consistent state for buffered transaction 2022-08-23 10:04:17 +10:00
Nyall Dawson
f9415af325 Add API to QgsProjectViewSettings to allow setting default map rotation
Provides a stable means for scripts to set the map rotation
2022-08-16 12:22:05 +10:00
Nyall Dawson
33788b6cb4 Remove more old qt fallbacks 2022-08-12 20:36:07 +10:00
Nyall Dawson
9b09445c08 Change project style disabling from being a project load flag
to a new project "capability"

This avoids the unwanted cost of initialising a blank style database
whenever QgsProject::clear is called and project styles are not
required (eg. for server)
2022-07-11 15:22:11 +10:00
Nyall Dawson
c6beb62216 Add project style database, which contains styles specific to each
individual project.

Project style database is embedded in the .qgz archive file
2022-05-17 16:36:00 +10:00
Nyall Dawson
190bdfbaa2 Don't offer to save new symbols in read only style databases 2022-05-17 16:36:00 +10:00
Nyall Dawson
9fe94822b5 Add path role to model 2022-05-17 16:36:00 +10:00
Nyall Dawson
8462884554 Add model for project style databases 2022-05-17 16:36:00 +10:00