values are automatically updated when the combo box unit changes
This means that you can flip between units and things like
the existing width and height are converted immediately to the
new unit
All user settings/plugins, etc are now loaded from APPDATA for each
platform and no longer .qgis3 and are isolated from each other.
This allows for different profiles depending on what the user of QGIS
needs, e.g test, prod, demo, etc
Profile menu allows for switching between profiles, or creating new
ones.
Instead of duplicate labeling specific unit enum, reuse
the QgsUnitTypes::RenderUnit enum in labeling.
This brings several improvements, including:
- label offset/distance/repeat units now works correctly
in all available unit types (inc pixels, map unit meters,
points, inches, etc)
- less duplicate code
- labeling can use the robust QgsRenderContext methods for
converting between different units and painter coordinates
Also change comments for members to doxygen comments, so
that these get included in the API docs.
Button widgets for configuring symbol properties were reimplemented
multiple times throughout the codebase. This commit creates a new
standard QgsSymbolButton widget which should be used whenever
a button for configuring symbol properties is required.
Features include:
- automatic use of inline panels whenever possible
- dropdown menu with shortcuts to color settings, copy/pasting colors
- accepts drag and dropped colors to set symbol color
This allows the designer dialog to group the corresponding item
actions together (i.e. grouping all basic shape creation actions
together), but without any hardcoded special handling so that
plugin based items can also be grouped.
direct QPainter argument
This will make use of other rendering code within layout items
much easier - since symbology/text renderer/diagrams/etc all
require QgsRenderContexts for use, it makes sense for
layout item rendering to also use this approach.
This also avoids lots of duplicate code which was scattered
throughout different composer item types to manually handle
creation of QgsRenderContexts when required.