Previously rotation was only allowed for pictures set to "Zoom" mode,
which causes pictures to change size when the rotation changes (frame
size is constant). This change allows pictures set to "Zoom and resize"
mode to have rotation set. Altering the rotation when in this mode
keeps the picture size constant and changes the frame size to suit.
(fix#10640)
Don't set the parent object of a composition to a composer view, as
we manage deletion of compositions manually and don't always want
the composition deleted when a view a deleted.
As per previous commit, this is useful for plugin authors. It also
fixes a potential bad crash (itemRemoved emitted for group item after
the group item was already deleted) and adds unit tests.
Previously this code was located in QgsComposerView. Moving it to
QgsComposition simplifies grouping items for plugins. Also start
a new unit test for QgsComposerItemGroup.
Previous behaviour was that if the start or end marker was cleared
than the old marker was drawn. This made it impossible to remove
an svg marker from the start or end of the line after one had been
assigned.
Also fix a Qt warning caused by trying to draw markers if the marker
size is set to 0.
Adds an argument to QgsExpression::replaceExpressionText to allow
passing an optional QgsDistanceArea to use during calculations.
Ensure that html and label composer items correctly specify this
argument.
Line edits are set to readonly to make it possible to copy values from disabled
forms. Unfortunately Qt uses a style that makes them look editable even though
they are not. This patches the text color to have the appearance that hints an
uneditable widget.
Fix#11413
Since multiframe changes can remove and create new frame items,
it's not safe to directly manipulate frame items in
QgsComposerItemCommand. Now, commands which apply to a frame always
fetch a reference to the correct frame item directly from the
parent multiframe. Also added unit tests for this crash.