90025 Commits

Author SHA1 Message Date
qgis-bot
37b7c62b34 auto sipify 🍺 2025-02-09 22:14:32 +00:00
Martin Dobias
0ebbcaa79a Chunk nodes: fix a crash when updating a node already pending update
Follow up of #60225 where we have allowed that a QgsChunkLoader could
be a job assigned to node update - but I have forgotten to handle
cancellation correctly, so it was possible that in cancelActiveJob()
when a node was waiting for an update, we would mistakenly call
cancelLoading() instead of cancelUpdating(), triggering an assert.
2025-02-10 08:11:40 +10:00
Alessandro Pasotti
b8f6a0aa66 Queued connection for browser refresh (to not deadlock the credentials dlg request) 2025-02-10 08:09:32 +10:00
Alessandro Pasotti
df8f6c115e Lazier metadata load
This do not load the metadata unless the widget is visible.

It is an attempt to fix #60335 (which I cannot reproduce after the
previous commit)
2025-02-10 08:09:32 +10:00
Alessandro Pasotti
a30edf3068 Fix deadlock when calling datasource manager dialog refresh
Fix #60335
2025-02-10 08:09:32 +10:00
uclaros
23a85ff0cf Check conformance classes to avoid duplicate collection/item entries 2025-02-09 13:32:48 +01:00
uclaros
5b255a84cb Let collections list grow with QgsStacSearchParametersDialog 2025-02-09 13:29:30 +01:00
uclaros
b8f8c87567 Hide zoom/pan to when there's no map canvas 2025-02-09 13:29:30 +01:00
uclaros
df19dcbee1 Use model's extent role for zoom/pan to 2025-02-09 13:29:30 +01:00
uclaros
3193a28bf5 Fix Add button enabled while connecting 2025-02-09 13:29:30 +01:00
uclaros
4242244592 Fix endless fetching if dialog is closed while fetching 2025-02-09 13:29:30 +01:00
uclaros
9e8600d748 Fix Add Layer showing when no layers to add 2025-02-09 13:29:30 +01:00
uclaros
bf374f5fdd Fix zoom/pan to crs typo 2025-02-09 13:29:30 +01:00
Stefanos Natsis
327ab77b93
Add toggle editing and undo/redo buttons to point cloud editing toolbar (#60357) 2025-02-09 13:23:15 +01: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