94 Commits

Author SHA1 Message Date
Alessandro Pasotti
987c38eda6
[auth][api] QgsAuthConfigurationStorage classes and tests (#57992)
Implementation of QEP 
Authentication System: allow Database storage for authentication DB
https://github.com/qgis/QGIS-Enhancement-Proposals/issues/248
2024-09-12 09:18:15 +02:00
Nyall Dawson
15a7079a39 [api] Implementation of labeling engine rules
See https://github.com/qgis/QGIS-Enhancement-Proposals/issues/299

Implements the API framework for setting advanced labeling engine
rules for a project, and implements 4 initial rule types:

- QgsLabelingEngineRuleMinimumDistanceLabelToFeature: prevents labels
  being placed too *close* to features from a different layer
- QgsLabelingEngineRuleMaximumDistanceLabelToFeature: prevents labels
  being placed too *far* from features from a different layer
- QgsLabelingEngineRuleMinimumDistanceLabelToLabel: prevents labels
  being placed too close to labels from a different layer
- QgsLabelingEngineRuleAvoidLabelOverlapWithFeature: prevents labels
  being placed overlapping features from a different layer

(note that the first 3 rules require a build based on GEOS >= 3.10,
they are not available for older GEOS builds)

Also implements a registry for storing available rule classes,
and serialization of rules and configuration in QGIS projects
2024-09-11 02:06:41 +10:00
Nyall Dawson
ef0289f3ec Fix formatting of Python ..deprecated annotations in docstrings
Fixes https://github.com/qgis/pyqgis-api-docs-builder/issues/174
2024-09-02 11:42:12 +10:00
Nyall Dawson
47a3c98218 Fix typo 2024-08-30 10:07:04 +10:00
Nyall Dawson
17bc7d5f6d Don't use copydoc for methods exposed to SIP
Fixes #54429
2024-08-30 10:07:04 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Germán Carrillo
65ad23a769 [core] Introduce QgsProfileSourceRegistry to store sources other than map layers, e.g., based on web services 2024-05-22 13:44:52 +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
Nyall Dawson
c8658efde4 Setup core infrastructure for tiled scene 2d renderers 2023-08-07 18:43:10 +10:00
Mathieu Pellerin
d2b117a3c8 [sensors] Brand new sensors framework (manager, registry, sensor types) 2023-03-24 15:28:47 +07:00
Nyall Dawson
06b3678a57 Don't allow users to set maximum thread count for rendering to 1
(This setting can sometimes unwantedly occur when using the same
profile across sessions of newer to very old QGIS versions)

The option is a misleading, as it's actually setting the global
thread limit for the entire QGIS application. If we allow this
to be set to a limit of 1 thread, then deadlocks
occur from the QImage internals in unpredictable ways.
2023-03-03 16:48:34 +10:00
Denis Rouzaud
448eaa3810 deprecate settings registry 2023-01-26 08:52:33 +01:00
Denis Rouzaud
42f4e1c80e
Merge pull request #51295 from 3nids/settings-registry-migration-core-5-tree-element
Tree structures for settings
2023-01-23 08:53:33 +01:00
Denis Rouzaud
2a5838433b rename QgsSettingsTreeElement to QgsSettingsTreeNode 2023-01-17 11:53:39 +01:00
rldhont
27b3ff753d [API] Defined QgsApplication::applicationFullName()
Returns the QGIS application full name.

It can be defined by the environment variable QGIS_APPLICATION_FULL_NAME or the /qgis/application_full_name
in the QGIS config file.

By default it is equal to `QgsApplication::applicationName()+' '+QgsApplication::platform()`
2023-01-16 12:05:44 +01:00
Denis Rouzaud
44039d164c sipify them all 2023-01-16 09:00:49 +01:00
Alessandro Pasotti
35403d507f Layer metadata provider API
Implementation of QEP #250 DB metadata storage.

- General API for registering layer metadata providers
- Metadata provider GPKG
- Metadata provider POSTGRES
- Metadata provider POSTGRES RASTER

Tests and custom python metadata provider implementation.

No GUI.

Funded by: ARPA Piemonte
2022-08-31 18:53:12 +02:00
Nyall Dawson
602edc11d9 Attach font manager to QgsApplication 2022-06-20 13:01:55 +10:00
Nyall Dawson
0108041c68 Add query log 2022-04-26 14:02:27 +02:00
Nyall Dawson
0aad51c6d4 Base default image cache size on system memory
Instead of always defaulting to 100mb, then base the cache size
on the system memory:

- > 32gb, use 500mb
- 16-32gb, use 250mb
- else 100mb

The larger sizes can make a big difference to rendering speed for
complex projects, so let's let powerful systems utilise all that
memory!

(Only supported on linux for now)
2022-04-04 19:12:11 +10:00
Nyall Dawson
dd368a4289 When processing is initialized in external scripts, ensure the GRASS,
SAGA and OTB providers are included by default

Fixes #45935
2022-02-01 18:14:48 +10:00
Matthias Kuhn
28fac71bb4
Merge pull request #46419 from Joonalai/improve-format-datetimes 2021-12-09 13:41:20 +01:00
Joonalai
8ba472b1e7 Format date and datetime fields based on locale (#45617) 2021-12-09 13:17:14 +02:00
Joonalai
74ae3ded1c Emit localeChanged signal when locale is changed (#45617) 2021-12-09 09:00:49 +02:00
Nyall Dawson
d4d3652ea8 Add docs 2021-12-01 09:53:38 +10:00
Nyall Dawson
2ce70c5975 Default to "external" for QgsApplication::platformName(), and only
use "desktop" when actually run from the desktop. Also add
"qgis_process" platform.
2021-12-01 09:09:34 +10:00
Nyall Dawson
db4b0fed86 Move to core 2021-09-24 15:47:10 +10:00
Nyall Dawson
612af1fb7b Add a registry for GPSbabel formats 2021-07-31 10:12:16 +10:00
Julien Cabieces
6967b1cd2b [External Storage] Define API 2021-07-30 10:16:45 +02:00
nirvn
f55fe4e1fb Add note 2021-07-14 13:19:50 +07:00
nirvn
a580968983 Remove QgsApplication::shortNameRegExp altogether, document API break 2021-07-14 10:36:47 +07:00
nirvn
03d99a4202 Migrate away from QRegExp in the core application class 2021-07-14 08:42:36 +07:00
Sandro Mani
a29ce541a4 Add QgsApplication::translation as counterpart to QgsApplication::setTranslation 2021-06-22 08:33:04 +10:00
Nyall Dawson
cd6aa7f665 Add parameterized color support to QgsApplication::getThemeIcon
Adds framework to allow for icons which can have dynamic coloring
2021-05-17 10:54:44 +10:00
Damiano
810af987d3 Removed setting entries from the python api 2021-04-29 11:18:55 +02:00
Damiano
95dfe0f45c Removed settings struct 2021-04-26 15:07:21 +02:00
Damiano
00a7936389 Moved most core settings to SettingsEntry 2021-04-26 15:04:07 +02:00
Nyall Dawson
ffa99b7b64 Fix doxygen blocks which don't use the * prefix on all lines, which
prevents the auto format and sipify scripts from doing their full
formatting magic
2021-04-19 12:54:13 +10:00
Damiano
21c19aba9c static inline settings 2021-04-01 09:38:56 +02:00
Denis Rouzaud
ba8a445850 run sipify 2021-03-22 21:13:52 +01:00
Nyall Dawson
50b9beaad6 [sipify] Catch more class references and insert :py:class: annotations 2021-01-31 05:41:22 +10:00
Nyall Dawson
149925043c Add a new QgsCoordinateReferenceSystemRegistry singleton attached
to QgsApplication

In the long term all methods for retrieving available CRS details
should be moved here (instead of being scattered all over the place,
as they are now). But for now the logic for saving and updating
user CRS definitions has been moved here only.

The initial motivation is to create a central place where objects
can connect to in order to listen for when a user makes changes
to their custom projections.

Refs #40704
2021-01-28 02:25:09 +10:00
Martin Dobias
0cf985f671 Peter's review 2021-01-20 18:30:02 +01:00
Martin Dobias
302469450f Singleton, code cleanups, more tests, error reporting 2021-01-20 18:30:02 +01:00
Matthias Kuhn
af709503d5 Cache svg paths
Rebuilding them for each access from the settings is costly
2020-12-24 10:13:12 +07:00
Nyall Dawson
a6d61c000a Start on registry for 2d point cloud renderers 2020-11-13 02:59:05 +10:00
nirvn
c606cf8b61 Only apply device pixel ratio in scaleIconSize for tested use 2020-10-16 13:05:38 +07:00
nirvn
0607504202 Move and unify scaleIconSize into QgsApplication::scaleIconSize 2020-10-15 11:48:09 +07:00
Nyall Dawson
56b349479b Spelling 2020-10-13 10:47:21 +10:00