Nyall Dawson
cdf5cf21e1
Add report section subclass with single layout as body
2018-01-05 11:15:04 +10:00
Nyall Dawson
acb44643e3
Add missing factory annotation
2018-01-05 11:15:04 +10:00
Nyall Dawson
1ea5a5fb98
[FEATURE] Reporting framework
...
Reports are based on the new layouts engine. They consist of multiple
nested sections. Each individual section (and the report itself)
can have an optional header and footer (which are themselves layouts,
and can consist of multiple pages!).
Two different types of sections are implemented so far:
- a standard section, which has a single, static body layout. This
can be used to embed static layouts mid way through a report
- a "field group" section, which repeats its body layout for
every feature in a layer. The features are sorted by the selected
grouping feature (with an option for ascending/descending sort).
If a field group section has child sections (e.g. another field
group section with a different field, then only features
with unique values for the group feature are iterated over.
This allows nested reports, e.g.
Report
- Country: Australia
- State: NSW
- Town: Sydney
- Town: Woolongong
- State: QLD
- Town: Beerburrum
- Town: Brisbane
- Town: Emerald
- Country: NZ
- State: ... etc
In this example country, state or town groups can have their
own headers and footers which will be inserted in the report.
Reports are configured through a new panel in the layout designer
dialog, which is shown when editing a report (created through
the Layout Manager Dialog). The organizer allows for adding
(and removing) sections to the report, and for selecting which
layout (e.g. headers, footers, bodies) to edit within the
layout designer.
2018-01-05 11:15:04 +10:00
Nyall Dawson
811145eb96
Remove const from count method
2018-01-05 11:15:04 +10:00
Nyall Dawson
4d2f0deb1a
Add a clone method to QgsLayout
2018-01-05 11:15:04 +10:00
Nyall Dawson
5bc543af6a
Refactor layout context
...
Split render context from reporting context
2018-01-05 11:15:04 +10:00
Nyall Dawson
9af7c63884
Ensure that every iteration through a layout iterator only
...
references the current iteration layout
2018-01-05 11:15:04 +10:00
Nyall Dawson
be7dae7d52
Expand exporter tests
2018-01-05 11:15:04 +10:00
Nyall Dawson
8de8bb387f
Try (and fail) to avoid a qApp->processEvents() call
...
I just can't find any other reliable way to wait until javascript
execution in a web page has completed.
2018-01-05 11:15:03 +10:00
Nyall Dawson
88a839061d
Restore more unit tests
2018-01-05 11:15:03 +10:00
Nyall Dawson
ec67ddfc0e
Restore more atlas tests
2018-01-05 11:15:03 +10:00
Nyall Dawson
3d03128e4a
Restore some more atlas related tests
2018-01-05 11:15:03 +10:00
Nyall Dawson
1b932319a2
Fix some layout expression context handling, restore some tests
2018-01-05 11:15:03 +10:00
Nyall Dawson
327d311e21
Fix broken atlas handling of z/m layer types
2018-01-05 11:15:03 +10:00
Nyall Dawson
70e7185cb5
Force a refresh after disabling view updates
2018-01-05 11:15:03 +10:00
Nyall Dawson
7d8953f1da
Restore atlas multiple pdf exports
2018-01-05 11:15:03 +10:00
Nyall Dawson
427da5c081
Restore atlas single file pdf export
2018-01-05 11:15:03 +10:00
Nyall Dawson
9751c77063
Restore svg atlas export
2018-01-05 11:15:03 +10:00
Nyall Dawson
409d10f43d
Restore atlas raster format handling
2018-01-05 11:15:03 +10:00
Nyall Dawson
5a782f4880
Hookup raster atlas export in gui
2018-01-05 11:15:03 +10:00
Nyall Dawson
d81bf5d95a
Add api to export layout atlas as images
2018-01-05 11:15:03 +10:00
Nyall Dawson
b6f1425828
Flesh out QgsAbstractLayoutIterator interface
2018-01-05 11:15:03 +10:00
Nyall Dawson
e312d02c2b
Tighten QgsAbstractLayoutIterator interface
2018-01-05 11:15:03 +10:00
Nyall Dawson
69ddc32d0f
Restore atlas map handling
2018-01-05 11:15:03 +10:00
Nyall Dawson
3ffdda3e30
Port predefined scale handling to layouts
2018-01-05 11:15:03 +10:00
Nyall Dawson
7c086beb92
Fix some map item todos
2018-01-05 11:15:03 +10:00
Nyall Dawson
49eaebbf40
Remove outdated icon support for item metadata
...
Now handled in QgsLayoutItem directly
2018-01-05 11:15:03 +10:00
Nyall Dawson
aafe1cc477
Fix some untranslatable strings
2018-01-05 11:15:03 +10:00
Nyall Dawson
5160ad942f
Remove some outdated todos
2018-01-05 11:15:03 +10:00
Nyall Dawson
3994c4a476
Restore legend atlas behavior
2018-01-05 11:15:03 +10:00
Nyall Dawson
2ef3a5f199
Port current geometry from atlas to layouts
2018-01-05 11:15:03 +10:00
Nyall Dawson
92003c8797
Code shuffle, to make QgsLayoutContext aware of parent QgsLayout
2018-01-05 11:15:03 +10:00
Nyall Dawson
4a7813b953
Restore picture atlas handling
2018-01-05 11:15:03 +10:00
Nyall Dawson
fee1c211a6
Restore HTML item atlas functionality
2018-01-05 11:15:03 +10:00
Nyall Dawson
8072d4d357
Restore some more atlas style related UI
2018-01-05 11:15:03 +10:00
Nyall Dawson
6506bcda20
Restore some more atlas handling
2018-01-05 11:15:03 +10:00
Nyall Dawson
a5ab4e16e4
Restore shape atlas handling
2018-01-05 11:15:03 +10:00
Nyall Dawson
e72e20b8e0
Restore attribute table atlas handling
2018-01-05 11:15:03 +10:00
Nyall Dawson
b602b3d58e
Working label updates on atlas feature change
2018-01-05 11:15:03 +10:00
Nyall Dawson
5d1d25b36b
Add atlas expression context scope to layouts
2018-01-05 11:15:03 +10:00
Nyall Dawson
3318bfbb4d
Restore atlas based autogenerated filenames
2018-01-05 11:15:03 +10:00
Nyall Dawson
60a28e32b7
Add some unit tests
2018-01-05 11:15:03 +10:00
Nyall Dawson
171f402ab0
Use messagebar for atlas messages instead of message box
2018-01-05 11:15:03 +10:00
Nyall Dawson
b7596970bc
Remove outdated TODO
2018-01-05 11:15:03 +10:00
Nyall Dawson
108c9548a7
Atlas sort can be an expression
2018-01-05 11:15:03 +10:00
Nyall Dawson
520c2aab19
More work on atlas GUI
2018-01-05 11:15:03 +10:00
Nyall Dawson
e169c219b3
Work on modernizing atlas
2018-01-05 11:15:03 +10:00
Nyall Dawson
d62bc35f64
Undo/redo for atlas settings changes
2018-01-05 11:15:03 +10:00
Nyall Dawson
25170da03f
Start porting atlas GUI
2018-01-05 11:15:03 +10:00
Nyall Dawson
f86c2988bb
Serialize atlas settings
2018-01-05 11:15:03 +10:00