83 Commits

Author SHA1 Message Date
Nyall Dawson
25125b089e Remove deprecated composer methods 2016-09-14 07:20:17 +10:00
Matthias Kuhn
58ea21124e Streamline expression context generation (#3350)
* Save more data to QML

 * Virtual fields
 * Map tips
 * Display expression
 * Read only flag

* Streamline expression context generation

Whenever an object is able to generate an expression context it
implements the method createExpressionContext() declared in
QgsExpressionContextGenerator.

This makes a cleaner API and allows using QgsFieldExpressionWidget and
QgsDataDefinedButton from python because standard OO programming
approaches are used instead of callbacks and void pointers.

* Colorize output of doc and sip tests

* Fix build

* Fix sip complaints

* Fix rebase problems

* Workaround failing bindings test
2016-08-10 19:44:30 +02:00
Juergen E. Fischer
0688621046 scripts/replacev2.sh run 2016-08-10 12:08:52 +02:00
Martin Dobias
ab4a83b49b Goodbye to QgsMapRenderer (#3333)
For the time being the class is kept in the server code while it is still being used there.
2016-07-24 22:40:52 +02:00
Nyall Dawson
4cfacf14e3 Make API more consistent
- rename methods with XML to Xml, CRS to Crs, WMS to Wms, ID to Id
- rename methods with SRS to Crs
- rename methods with abbreviations like "dest" to "destination"
- rename methods with abbreviations like "src" to "source"
2016-07-21 08:40:50 +10:00
Nyall Dawson
c7ffdfa5e9 Make sure variable editor widgets always show current variables
On behalf of Faunalia, sponsored by ENEL
2016-07-19 12:00:35 +10:00
Nyall Dawson
a240cd8f8e Replace doxygen MapComposer group with core/gui
Since the MapComposer group doesn't actually exist
2016-07-04 19:57:13 +10:00
Sandro Santilli
a211c982cf Allow to undo/redo composer grouping/ungrouping
Fixes #11371 (crash on ungrouping after moving the group) and more
undo/redo related issues.

Enable pending test for the crash (now passing) and add many more
undo/redo related ones (including signals testing).

Includes a new QgsGroupUngroupItemsCommand class
and its SIP bindings.
2016-06-17 13:41:56 +02:00
Nyall Dawson
bae8a0e5e0 [FEATURE] Georeference outputs (eg PDF) from composer
This commit makes composer automatically georeference outputs
(where output format makes this possible, eg TIF and PDF).

The existing option to create a world file has been separated
from the map selection for georeferencing. The new behaviour
is to always georeference outputs, and only create the
separate world file if that option is checked.
2016-05-29 00:46:39 +10:00
Nyall Dawson
4764b53518 [composer] Fix world file map is not restored from project 2016-04-09 09:38:09 +10:00
Blottiere Paul
7a8a5411e0 [FEATURE][composer] Add tools for drawing polygon and polylines 2016-04-01 11:05:03 +11:00
Juergen E. Fischer
a90be95f7b sip sync 2016-02-14 03:50:49 +01:00
Nyall Dawson
c3a57434d9 Fix clazy 'pass small and trivially-copyable type by value' warnings 2016-02-02 19:47:21 +11:00
Nyall Dawson
9cc9d424ce Add extra check for deprecations to documentation test
This check tests that if a function has been declared deprecated
with either Q_DECL_DEPRECATED or has a @deprecated Doxygen note
then it MUST have both the Q_DECL_DEPRECATD and @deprecated note.

It's important that both are used, as Q_DECL_DEPRECATED allows
throwing a warning if that method is used in code, while the
@deprecated doxygen note gives an indication to devs/PyQGIS users
of why it's deprecated and what should be used instead.

Ideally we'd also test for SIP /Deprecated/ tags, but I can't
find any reliable way to do this.
2015-12-07 21:55:36 +11:00
Nyall Dawson
c49b5b777f Change a lot of arguments to const references in core/gui
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
2015-10-07 12:02:04 +11:00
Nyall Dawson
e553a79256 [composer] Fix image size/resolution was not honored during export (fix #13438) 2015-10-05 08:21:36 +11:00
Nyall Dawson
dd759370bd [FEATURE][composer] Option to restrict image/SVG outputs to content
If selected, then the images output by composer will include only
the area of the composition with content. There's also an option
for margins to add around the item bounds if required.

If the composition includes a single page, then the output will
be sized to include EVERYTHING on the composition. If it's a
multi-page composition, then each page will be cropped to only
include the area of that page with items.

A new image export options dialog has been added to facilitate
this, which also includes handy shortcuts for overriding the
print resolution or exported image dimensions.

Sponsored by NIWA
2015-09-25 18:55:35 +10:00
Nyall Dawson
2f343008c1 [FEATURE][composer] Add fit page to contents option
New option in the composition panel, with optional extra margins
to add

Sponsored by NIWA
2015-09-25 18:55:35 +10:00
Nyall Dawson
2215d48712 [FEATURE][composer] Add option to hide pages from view/export
Sponsored by NIWA
2015-09-25 18:55:35 +10:00
Nyall Dawson
166e5bf9eb [composer] Make some set symbol methods clone symbol, nicer API
for PyQGIS (fix #13304)
2015-09-03 22:46:21 +10:00
Nyall Dawson
bfc8f56ad4 Display variables and functions from contexts in expression builder 2015-08-22 19:01:42 +10:00
Nyall Dawson
43bcc0c2a5 Finish porting composer to expression contexts 2015-08-22 19:01:40 +10:00
Nyall Dawson
3898d840bd Custom properties for QgsComposition and QgsComposerObject 2015-08-11 20:32:14 +10:00
Juergen E. Fischer
9752c468c1 indentation update 2015-07-29 11:52:14 +02:00
Juergen E. Fischer
abd4a04399 sip update 2015-02-03 02:21:52 +01:00
Juergen E. Fischer
9ceb5ceab6 sip sync 2014-11-21 01:17:21 +01:00
Juergen E. Fischer
d4f64d9bde indentation update and typo fixes 2014-11-13 23:13:13 +01:00
Nyall Dawson
7b537f640f [FEATURE][composer] Add view menu option to hide bounding boxes
This allows users to hide the bounding boxes for selected items
within a composition. It's a handy feature for allowing interaction
with items while previewing exactly how they will look when the
composition is exported, without large boxes blocking the view.
2014-11-01 06:38:51 +11:00
Nyall Dawson
0f4bd4e0fc [composer] Move ungrouping logic from composer view to composition
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.
2014-10-19 14:45:19 +11:00
Nyall Dawson
993f0dcd3d [composer] Move code for creating groups to QgsComposition
Previously this code was located in QgsComposerView. Moving it to
QgsComposition simplifies grouping items for plugins. Also start
a new unit test for QgsComposerItemGroup.
2014-10-19 14:45:19 +11:00
Nyall Dawson
8c502c19fc [composer] Fix pages are added but never removed with multiframe resizing 2014-09-29 22:19:08 +10:00
Nyall Dawson
272b79b6ca [FEATURE][composer] Add checkbox to frame items for preventing export
of page containing frame when frame is empty. This change allows
users to create multiple pages containing extra frames for multiframe
items (currently HTML and Attribute Table items), which are then only
printed/exported if required. Sponsored by the City of Uster, Switzerland.
2014-09-26 01:08:07 +10:00
Nyall Dawson
9fd73901a6 [composer] API docs and python bindings for QgsComposerTableV2 (sponsored
by City of Uster, Switzerland)
2014-09-17 22:58:49 +10:00
Nyall Dawson
7b84ccc9b1 [composer] Don't draw handles around locked items (fix #11059) 2014-08-25 22:58:42 +10:00
Nyall Dawson
d70235ffbe [composer] Show selected items in bold in items tree panel (fix #11057) 2014-08-25 21:46:11 +10:00
Nyall Dawson
4d1595ce79 [composer] Remove destructive 'Load from template' action, replace with
non-destructive 'Add items from template' action
2014-08-25 20:46:58 +10:00
Nyall Dawson
11686c7ad3 Fix typo in docs 2014-08-14 17:57:22 +10:00
Juergen E. Fischer
a2a66eabfd doxygen fixes 2014-08-13 19:15:24 +02:00
Nyall Dawson
0aeb357798 [composer] Locked items can't be selected by clicking them in the canvas. 2014-07-30 21:04:42 +10:00
Nyall Dawson
4506b81537 [FEATURE][composer] Implement an item tree panel for composer windows
(fix #4358). Allows for selection of items, hiding/showing items,
toggling lock status of items and double-clicking to edit item id.
2014-07-30 20:01:05 +10:00
Nyall Dawson
950c9b89f1 Follow up 3f0d0944 2014-07-29 20:48:40 +10:00
Nyall Dawson
e2d57d9b65 [composer] Clean up code, move some methods to QgsComposerUtils, const correctness, tests, doc improvements 2014-07-16 22:47:18 +10:00
Nyall Dawson
2041fc2480 [composer] Refactor QgsComposerItem:
- New class QgsComposerObject, which both QgsComposerItem and QgsComposerMultiFrame
derive from. This class contains the framework for data defined composition properties.
- New class QgsComposerUtils, containing helpful static functions previously in QgsComposerItem
- Test suites for data defined settings in QgsComposerObject and functions in QgsComposerUtils
2014-07-14 23:51:10 +10:00
Nyall Dawson
1e4ad28858 [FEATURE][composer] Data defined page size, orientation and number of pages for compositions. Funded by Canton of Neuchâtel, Switzerland 2014-07-06 01:55:38 +10:00
Nyall Dawson
0fd99d2820 [FEATURE][composer] Data defined item rotation. Funded by Canton of Neuchâtel, Switzerland 2014-07-05 20:08:37 +10:00
Nyall Dawson
be5aeac3b7 [composer] Initial framework for data defined properties in compositions and composer items. Funded by Canton of Neuchâtel, Switzerland 2014-07-05 14:58:50 +10:00
Nyall Dawson
a2a26c2829 [composer] Use pixels for snapping rather than mm, allowing for finer work when zoomed in. Merge grid and guide snapping settings to a single snap tolerance setting. 2014-06-29 16:05:22 +10:00
Nyall Dawson
899c2f8b5d [composer] Prevent hang on trying to export compositions and atlases to files which can't be overwritten, and warn user instead (fix #9283) (fix #10016). Fix mouse cursor getting stuck after failed atlas exports. 2014-06-26 20:16:14 +10:00
Sandro Mani
b199dc7be1 QgsComposition::addItemsFromXML for python (without optional arguments). Funded by Sourcepole QGIS Enterprise. 2014-06-04 13:30:05 +02:00
Juergen E. Fischer
45c0be1059 sip: remove enum constants 2014-06-02 21:52:02 +02:00