44804 Commits

Author SHA1 Message Date
Nyall Dawson
65f4c4acef Port orientation decoding code from composer 2017-12-17 14:14:48 +10:00
Nyall Dawson
447a94909f Fix items moving after altering page size or inserting/deleting pages 2017-12-17 14:14:48 +10:00
Nyall Dawson
f649f1f8a7 [layouts][needs-docs] Add control for whether pages should be
exported, including data defined setting

This replaces the 2.x data-defined "number of pages" setting.
Instead of requiring users to develop an expression to return
the number of pages, instead we allow individual pages to have
a data defined control of whether that page should be included
in the export.

This is more flexible, and works correctly with the mixed page
size model for layouts.
2017-12-17 14:14:48 +10:00
Nyall Dawson
3704c48bc0 Add links to open exported images in message bar 2017-12-17 14:14:48 +10:00
Nyall Dawson
26315894d1 Add some layout related actions to app toolbar 2017-12-17 14:14:48 +10:00
Nyall Dawson
5601fc985f Add new page icon to toolbar 2017-12-17 14:14:48 +10:00
Nyall Dawson
ca37a1ebd7 Fix drawing of map items (grids, overviews) when rendering map item as a raster item 2017-12-17 14:14:31 +10:00
Nyall Dawson
770ffdf614 Fix incorrect detection of grids with advanced effects 2017-12-17 14:14:31 +10:00
Nyall Dawson
ab7873cd23 Fix crash in ui while working with map grids 2017-12-17 14:14:31 +10:00
Nyall Dawson
c7abf46615 Update test masks 2017-12-17 14:14:31 +10:00
Nyall Dawson
2b0ed508bd Tweak logic regarding page item margins following forced re-render
of layout items when exporting (i.e. disabling of cached item render)

The old issue of semi-transparent pixels around the edge of the page
had reared again. This is caused by the antialiasing while rendering
the page symbol. In order to avoid this, we cater to the most common
use case of having pages with a solid, borderless fill and slightly
extend the fill symbol polygon outside the page by 2 pixels
(determined by trial-and-error). The less common use case of having
a page symbol containing a border suffers by this border being
clipped by a couple of pixels, but we must address the much more
common use case over this.
2017-12-17 14:14:31 +10:00
Nyall Dawson
d3aee951ef Tweak logic regarding when a map item forces the whole layout
to be rasterised
2017-12-17 14:14:31 +10:00
Nyall Dawson
261492ddca Add a messagebar to layout designer 2017-12-17 14:14:31 +10:00
Nyall Dawson
b992e871ee [layouts][FEATURE] Don't force the whole layout to be rasterized
when exporting to PDF

If an individual layout item needs rasterisation in order to
be exported correctly, it can now be individually rasterised
without forcing every other item to also be rasterised.

This allows exports to PDF keeping as much as possible as vectors,
e.g. a map with layer opacity won't force labels, scalebars, etc
to be rasterised too.

To accompany this, a new "Always export as vectors" checkbox
was added to layout properties. If checked, this will force
the export to keep items as vectors, even when it causes the
output to look different to layouts.

Fixes #7885
2017-12-17 14:14:31 +10:00
Nyall Dawson
91179f1396 Work on PDF export 2017-12-17 14:14:31 +10:00
Nyall Dawson
a59dce5048 Move containsAdvancedEffects test to QgsLayoutItem
And start a generic test library for all item types to ensure
correct behavior for QgsLayoutItem subclasses

Currently justs tests to ensure that overriden
containsAdvancedEffects methods also call the base class
test
2017-12-17 14:14:31 +10:00
Nyall Dawson
0110b43362 Update tests masks 2017-12-17 14:14:31 +10:00
Nyall Dawson
8b1e057d2c Make QgsLayoutExporter::generateFileName virtual, so exporter
subclasses can be made which customise the generated file names
2017-12-17 14:14:31 +10:00
Nyall Dawson
48b6e02c8f Spelling 2017-12-17 14:14:31 +10:00
Nyall Dawson
2f0969e2bd Expose antialiasing option in image export dialog
Allows for creating non-antialiased images from layouts. Note that
some layout item types do not correctly respect this setting, but
at least map items do and the API is in place for them to be
fixed later.

Fixes #9281
2017-12-17 14:14:31 +10:00
Nyall Dawson
0f9aaf4c44 Expose world file option in image settings dialog 2017-12-17 14:14:31 +10:00
Nyall Dawson
953d2c437d [layouts] Resurrect action for exporting to raster images
...this time, without all the useful code locked away in app!
2017-12-17 14:14:31 +10:00
Nyall Dawson
113664fe2e Port method for pausing layout view updates 2017-12-17 14:14:31 +10:00
Nyall Dawson
1b8f4a09ba Add method to determine file path for exports which encountered errors 2017-12-17 14:14:31 +10:00
Nyall Dawson
5cf36cd819 Add method to detect whether layout has uniform page sizes 2017-12-17 14:14:31 +10:00
Nyall Dawson
069a0baa40 Expose some more export related settings to GUI 2017-12-17 14:14:31 +10:00
Nyall Dawson
f08ff15feb Port some more world file generation related code 2017-12-17 14:14:31 +10:00
Nyall Dawson
56383e42b0 Port world file generation code to layouts 2017-12-17 14:14:31 +10:00
Nyall Dawson
afbd1400a5 Port georeferencing from compositions 2017-12-17 14:14:31 +10:00
Nyall Dawson
94b63d17b7 Fix updating gui after undoing layout settings change 2017-12-17 14:14:31 +10:00
Nyall Dawson
2e68dd7005 Add some masks for scalebar tests 2017-12-17 14:14:31 +10:00
Nyall Dawson
25d16380c0 Port reference map functionality from composer 2017-12-17 14:14:31 +10:00
Nyall Dawson
aa7986f8fc Implement methods for exporting layouts as raster, add tests 2017-12-17 14:14:31 +10:00
Nyall Dawson
a56c937012 Expand docs 2017-12-17 14:14:31 +10:00
Nyall Dawson
e8a42c92b4 Add method to determine largest page size 2017-12-17 14:14:31 +10:00
Nyall Dawson
71dd3b933a Port pageItemBounds method from composer 2017-12-17 14:14:31 +10:00
Nyall Dawson
d7e179cb5a Add unit test for resizing pages 2017-12-17 14:14:31 +10:00
Nyall Dawson
082733abda Fix unit test 2017-12-17 14:14:31 +10:00
Nyall Dawson
fe5bd47eb0 Work on resizing layouts to item bounds 2017-12-17 14:14:31 +10:00
Nyall Dawson
f4f5f75b80 Remove incorrect TransferThis annotation 2017-12-17 14:14:31 +10:00
Nyall Dawson
ecfacdf2fc Avoid Qt warning 2017-12-17 14:14:31 +10:00
Nyall Dawson
5828f5d343 Port method to determine whether page should be exported 2017-12-17 14:14:31 +10:00
Nyall Dawson
f3fcb68ec4 Port method to retrieve items of a set type on a page 2017-12-17 14:14:31 +10:00
Nyall Dawson
a3c9dc3923 Remember window position 2017-12-17 14:14:31 +10:00
Nyall Dawson
c496b3bcca Forward declare some classes 2017-12-17 14:14:31 +10:00
Nyall Dawson
fb712d7d65 Decouple QgsLayoutExporter from QgsLayout 2017-12-17 14:14:30 +10:00
Denis Rouzaud
be8d1d7782 run sipify 2017-12-16 10:45:52 -04:00
Denis Rouzaud
281392b103 [doxygen] fix badly placed \returns 2017-12-16 10:45:52 -04:00
Denis Rouzaud
e6f657cf81 add a test to check that returns are placed before since and note in Doxygen 2017-12-16 10:45:52 -04:00
Denis Rouzaud
92751d47e2 make sipfiles test macos compatible 2017-12-16 10:45:52 -04:00