90015 Commits

Author SHA1 Message Date
Juho Ervasti
b0ce109adb Allow setting merge policy in the GUI 2025-02-12 17:10:56 +02:00
Juho Ervasti
1e7604686d Apply merge policies in merge dialog 2025-02-12 17:09:44 +02:00
Juho Ervasti
b0a12f78aa Add new Field Domain merge policy 2025-02-12 17:06:13 +02:00
Juho Ervasti
d03746bd9f Add merge policy as a member in QgsField 2025-02-12 17:02:12 +02:00
qgis-bot
e38c80ef30 auto sipify 🍺 2025-02-07 06:20:39 +00:00
Alessandro Pasotti
7c5db3b307
Update to_string 2025-02-07 07:17:35 +01:00
Alessandro Pasotti
c1e5e62cf6
Merge pull request #60410 from elpaso/bugfix-gh_60396-mapinfo-multipolygon
[ogr] Fix mapinfo (multi)polygon type  layers
2025-02-07 07:16:06 +01:00
Nyall Dawson
669e1a096d More fine-grained error reporting 2025-02-07 16:15:03 +10:00
Nyall Dawson
529b36aa1b Tweak API so that password helper read success state can be determined easily 2025-02-07 16:15:03 +10:00
Nyall Dawson
83ad87fcda Documentation precision 2025-02-07 16:15:03 +10:00
Nyall Dawson
e4a083d61a Only skip existing password verification when changing master pw
if user is still using the default auto-generated random password
2025-02-07 16:15:03 +10:00
Nyall Dawson
af8394f740 Don't dump hashes to console 2025-02-07 16:15:03 +10:00
Nyall Dawson
8d4fc0821c Add boolean setting for whether the user is still using a random
default generated keychain password
2025-02-07 16:15:03 +10:00
Nyall Dawson
ea9ac1dde1 When changing master password, don't prompt for the existing
password if it is stored in the system password helper and
is valid
2025-02-07 16:15:03 +10:00
Nyall Dawson
0450bf5719 Add method to reset master password using the existing password
stored in the password helper keychain
2025-02-07 16:15:03 +10:00
Nyall Dawson
f7702bc446 Add method to verify that password stored in password helper is valid 2025-02-07 16:15:03 +10:00
Jacky Volpes
4677b6de92 fix(reshape-line): keep original direction on reshaping linestrings
When the reshape line goes backwards against the original line, the
result sometimes follows the reshape line direction, sometimes the
original line direction.

We fix this by always choosing the original line direction (except when
the reshape line completely overrides the original line).
2025-02-07 06:43:33 +01:00
Nyall Dawson
1403b2181b Rename qstringfixup to code_fixup 2025-02-07 13:10:27 +10:00
Nyall Dawson
e6746f35da Also upgrade make_shared 2025-02-07 13:10:27 +10:00
Nyall Dawson
0ac9936b62 Upgrade std::unique_ptr xx( new XX ) to auto/std::make_unique 2025-02-07 13:10:27 +10:00
Nyall Dawson
2db0254c9e Catch another variant of make_unique 2025-02-07 13:10:27 +10:00
Nyall Dawson
038036d021 Use "auto" for std::unique_ptr<X> = std::make_unique<X>
Refs https://github.com/qgis/QGIS-Enhancement-Proposals/pull/319
2025-02-07 13:10:27 +10:00
Nyall Dawson
55288fe8c3 Update some auth strings 2025-02-07 13:10:10 +10:00
Nyall Dawson
7eb4125dca Use translated string 2025-02-07 13:10:10 +10:00
Nyall Dawson
61f36f1b65 Don't try to sync passwords on CI runs 2025-02-07 13:10:10 +10:00
Nyall Dawson
49146a4926 Explicitly state when new password will be stored in the system wallet
When resetting the master password and wallet storage is enabled,
tweak the reset password dialog label to explicitly state that
the new password will be stored in the wallet.

This keeps users fully advised of what's about to occur.
2025-02-07 13:10:10 +10:00
Nyall Dawson
b3308cf587 If password keychain helper is enabled, always sync password
stored in keychain when password is changed

This used to be a separate menu action that the user had to
remember to run. Let's err on the side of being helpful and
assume that if the user is storing the password in their
keychain, then they want that stored password always to be
the correct one.
2025-02-07 13:10:10 +10:00
qgis-bot
96b09f244d auto sipify 🍺 2025-02-07 02:28:08 +00:00
Nyall Dawson
e73c0100d7 Update tests/src/gui/testqgslabelingwidget.cpp 2025-02-07 12:25:19 +10:00
Julien Cabieces
c5dee65d0f fix(RuleBasedRendering): keep rule key while cloning when needed
rule key is used by other object as reference (masking for instance)

Fixes #46402
2025-02-07 12:25:19 +10:00
Hannes
b7bd622523 Fix QgsError.isEmpty() documentation
The method checks if there is an empty message list. It will actually return `TRUE` if there is *no* error message and `FALSE` if there *is* an error.
2025-02-07 12:24:59 +10:00
qgis-bot
a4ccbb07a8 auto sipify 🍺 2025-02-07 00:26:40 +00:00
uclaros
e8c0d706f2 use null value when pasting as temporary layer and attributes cannot be converted 2025-02-07 10:23:48 +10:00
Jean Felder
a46f3e9752 postprocessing: Use QgsLayerTreeRegistryBridge to add layers
When a profile tool is already opened, the output of a procssing is
not added to its layer tree. This is because it relies on a
`QgsLayerTreeRegistryBridge`. Indeed, `QgsLayerTreeRegistryBridge`
listens to the `QgsProject::legendLayersAdded()` signal in order to
update the elevation profile tree view. However this signal is not
triggered by the current logic in `Postprocessing.py`because
`QgsProject::addMaplayer` is called with `addToLegend` set to
False. Then, the layer is added to the tree by calling
`QgsLayerTreeGroup::insertChildNode`.

This issue is fixed by creating a
`QgsLayerTreeRegistryBridge::InsertionPoint` to set the insertion
point and then calling `QgsProject::addMaplayer` with `addToLegend`
set to True.
2025-02-07 10:22:53 +10:00
Jean Felder
bd4eb2f2cf qgslayertreeregistrybridge: Add a layerInsertionPoint getter 2025-02-07 10:22:53 +10:00
Alexander Bruy
bf6268f2ff when adding WMS/WFS layers from Browser use project CRS if it is
supported by the server (fix #44325)
2025-02-07 10:05:29 +10:00
Jean Felder
98bfa4a589 qgsvectorlayer: Properly invalidate extent cache on feature deletion
This change is similar to the previous commit on feature addition.

When a feature is removed from a `QgsVectorLayer`
`QgsVectorLayer::deleteFeature` is called. This function makes mostly
2 things in case of a successful operation:
1. it calls `QgsVectorLayerEditBuffer::deleteFeature` which itself
   will emit the `QgsVectorLayerEditBuffer::featureDeleted`
   signal. Finally, `QgsVectorLayer` listend to this signal to
   directly emit the `QgsVectorLayer::featureDeleted` signal
2. Call `QgsVectorLayer::updateExtents()` to invalidate the cache of
   the extent

In practice, this means that the `QgsVectorLayer::featureDeleted`
signal may be emitted before the cache of the extent is
invalidated. This can cause some issues.

This issue is solved by calling `updateExtents()` before emitting the
`featureDeleted` signal.
2025-02-07 09:59:26 +10:00
Jean Felder
912bf7da3f qgsvectorlayer: Properly invalidate extent cache on feature addition
When a new feature is added to a `QgsVectorLayer`
`QgsVectorLayer::addFeature` is called. This function makes mostly 2
things in case of a successful operation:
1. it calls `QgsVectorLayerEditBuffer::addFeature` which itself will
   emit the `QgsVectorLayerEditBuffer::featureAdded` signal. Finally,
   `QgsVectorLayer` listend to this signal to directly emit the
   `QgsVectorLayer::featureAdded` signal
2. Call `QgsVectorLayer::updateExtents()` to invalidate the cache of
   the extent

In practice, this means that the `QgsVectorLayer::featureAdded` signal
may be emitted before the cache of the extent is invalidated. This can
cause some issues.

For example, in the elevation profile tool,
`QgsElevationProfileCanvas` listens to the
`QgsVectorLayer::featureAdded` signal in order to regenerate the
profile of a vector layer when a feature is added. This causes the
creation of a new `QgsVectorLayerProfileGenerator` which needs to copy
the extent of the vector layer. However,
`QgsVectorLayer::updateExtents()` has not been called yet. Thus, it
will use an outdated version of the extent.

This issue is solved by calling `updateExtents()` before emitting the
`featureAdded` signal.
2025-02-07 09:59:26 +10:00
Mathieu Pellerin
48b7079375 [symbology][gui] Fix symbol selector dialog not passing on its context to its widget 2025-02-07 08:47:23 +10:00
uclaros
c004c6662b Use reply content as an error string if it is plain text 2025-02-07 08:46:29 +10:00
Alessandro Pasotti
58b9c3ed1d Fix test 2025-02-06 16:39:26 +01:00
Alessandro Pasotti
2f6bcb31a0
Merge pull request #60479 from elpaso/bugfix-gh60440-to_string-not-locale-aware
Mention in the docs that to_string is not locale-aware
2025-02-06 16:21:00 +01:00
Alessandro Pasotti
c90eb46a44 Address PR comments 2025-02-06 14:39:49 +01:00
Alexander Bruy
6b4ffb39a8
Merge pull request #60480 from alexbruy/processing-script-editor-typos
add missed import and fix getThemeIcon() call (follow-up #60261)
2025-02-06 12:10:34 +00:00
Julien Cabieces
278eb796fc
fix(Build): fix warning issues (#60428) 2025-02-06 11:34:43 +01:00
Alexander Bruy
b6d1d7e8d6 add missed import and fix getThemeIcon() call (follow-up #60261) 2025-02-06 09:54:48 +00:00
Alessandro Pasotti
685a002e6f Mention in the docs that to_string is not locale-aware
Fixes #60440
2025-02-06 10:24:50 +01:00
qgis-bot
d4526d748f auto sipify 🍺 2025-02-06 09:24:44 +00:00
Loïc Bartoletti
79e4ccbe16 fix(QgsMapToolCapture): Allow snapping point with different crs 2025-02-06 19:21:50 +10:00
Julien Cabieces
ab9582b247
Merge pull request #60470 from nyalldawson/deprecated_mask
Silence deprecation warnings for QgsMaskPaintEngine
2025-02-06 08:51:20 +01:00