This allows us a chance to correctly call start/stopRender on all
symbols which are used as part of the labels and ensure they are
nicely prepared and cleaned up.
Also adapt labeling engine to add calls to startRender/stopRender where
appropriate.
This causes the project to be read, but no data providers created for
layers (i.e. the same result as loading a project in the app and
choosing to leave bad layers in the project).
It's intended for occasions when you want to efficiently access properties
of a project without the (often very expensive) cost of actually
loading layers. E.g. to just read project metadata, parse the
layer tree structure, extract print layouts or renderer properties, etc.
* Add measurement tool bar.
* Add class for measure line.
* Get coordinate of clicked point.
* Add clicked point to string line.
* Store clicekd points to layer.
* Try to render the measurement line.
* Render the measurement line (with some problems).
* Store points in vector.
* Make identify and measure tool exlusive to each other.
* Add measurement dialog.
* Fix only one action must active.
* Some code suggestion from Martin.
* Revert code to show the line.
* Show segment length and the total.
* Implement close dialog means restart 3d measurement.
* Add new button.
* Add unit combo box.
* Fix shadowing private member of class.
* Add slot to combo box unit changes.
* Hide ellipsoid and cartesian radio button.
* Add measure line for QgsPoint.
* Add unit changes feature.
* Add help (pointed to 2D measurement tool).
* Add finish measurement using right click.
* Remove keypress event, it does not make sense.
* Add remove-last-point with middle button.
* Add crsChanged event.
* Remove confusing tooltip.
* Add pan (camera control) action tool for clear state of 3d map tool.
* Change 3D identify tool cursor.
* Fix distance 2D to 3D.
* Remove unclear method.
* Add unit test for measureLine3D.
* Add 3D measurement setting.
* Add header.
* Make extra 3D renderers refresh the scene when they are updated
+ update the 3D renderer every time the measurement line layer is modified
* Set Altitude clamping to absolute.
* Remove options for 3D measurement line.
* Remove help button in 3D measurement dialog.
* Merge duplicate code for handle clicked position.
* Use color for 3d measure line from 2d one.
* Remove unneeded reimplementation method.
* Remove 2D canvas reference.
* Unify update measurement layer.
Use local variable for feature and line
* Create measurement layer once.
* Use data provider to change the geometry.
* Add length3D for QgsLineString.
* Simplify distance calculation and presentation. Remove QgsDistanceArea measurement.
* Descaled z value based on the terrain vertical scale.
* Remove line when tool is deactivated.
* Enable changing the line color from setting, but after re-activation.
* Update color of measurement line after saving option.
* Remove debug message.
* Remove 3D length calculation from distancearea.
* Handle 2D case for length3D, more unit test, and docstring.
* Fix typos.
* Addressing Martin's and Nyall's review.
* Remove setMeasurement to avoid confussion.
to have a file filter string defined
Previously only an extension was settable, which prevented use when
multiple extension types are possible. A file filter string allows
for flexible file selection instead.
Many scopes/remark cross reference these, so by showing them in the
table of available operations we give users more clues how to pick
the correct one.
Adds:
- __len__ : returns number of symbol layers in symbol
- [ ] getter: returns a specific symbol layer, also allows negative indices to retrieve from end of symbol
- del [ ]: removes a specific symbol layer, also allows negative indices
- raise IndexError when an invalid symbol layer is requested
- allow iteration over symbol layers using
for layer in symbol:
print(layer.color())
Adds a new visitor pattern API for creation of visitors which visit
all the style entities (symbols, color ramps, text formats, and
label styles) associated with different objects. Can be used on a
renderer, map layer, or project wide level.
E.g. on a project wide level, allows collection of ALL the style
symbols/color ramps/text settings inside a project, including those
in layouts or annotations!
- Show area of use information, which gives users much more context
and clues for selecting the right transform from the list
- Fix missing scope and remarks for single operations
to handle creation of parameter definition widgets
Previously, these configuration widgets were all hardcoded into the Python modeler
dialog. This prevented 3rd party, plugin provided, parameters from ever being full
first class citizens in QGIS, as there was no way to allow their use as inputs to
user created models to be customised.
Now, the registry is responsible for creating the configuration widget, allowing
for 3rd party parameter types to provide their own customised configuration
widgets.
Refs #26493
This change makes it easier to subclass `Grass7AlgorithProvider` which
allows e.g. to expose GRASS Addons as QGIS plugins.
Disclaimer: `Grass7AlgorithProvider` is a private API and it may change
without warning. 3rd parties that rely on this should expect
that their code will break in future releases.
For more info please check the comments at #30252
Nevertheless, it currently is possible to subclass with something like this:
class CustomGrassBasedProvider(Grass7AlgorithmProvider):
# Set descriptionFolder to our own description directory
descriptionFolder = os.path.join(os.path.dirname(__file__), 'description')
# 3rd party plugins don't need an activation/deactivation setting
activateSetting = None
# define the rest of the methods that are needed (e.g. name(), id() etc)
# ...
Fixes#30241
Continues #9202