These providers will be used to control how the browser data items
behave within GUI, and to allow separation of GUI related
properties of browser items from the core code.
A new registry QgsDataItemGuiProviderRegistry has been created
(modeled off QgsDataItemProviderRegistry), with an application
wide instance available from QgsGui::instance()->dataItemGuiProviderRegistry()
And catch segmentation faults from GRASS commands and show a nice
helper text advising user that QGIS isn't at fault here ;)
Also add a tip to try disabling the v.external option if that setting
is enabled and a GRASS segfault occurs
drag and drop of style .xml files to main QGIS window
Double clicking the databases or dragging them to QGIS
triggers the import from style dialog with the corresponding
input file already selected
Replace with just f[idx]. Calling QgsFeature.attributes()
allocates a list of all attributes, which is inefficient
when only a single attribute value is needed.
# 1: Replaced time-consuming call on all attributes by a more specific request - responsible for about 90% of running time in my tests.
# 2: Minor speedup by calling items() before the for loop (1s in a large layer).
Fix a deadlock in geometry validation. This happens when the mainthread "waits for finished" of a checker thread.
What happened in this case was, that the main thread canceled the feedback and waited for any jobs to finish.
If a job was waiting for a feature source (or something else to be executed on the main thread) this resulted in a mighty deadlock.
What we do here is that we regularly check if we ought to cancel while waiting for our slot on the main thread and can bail out if we should cancel before the main thread gets around to take care of our function.
The difference is, we still execute the code on the background thread and make sure that the main thread is not doing anything during this time to avoid working on the same data structures in parallel.
within the browser panel
Allows direct export of these files (e.g. to a different format,
crs, etc) without having to actually load them into a project
first.