40658 Commits

Author SHA1 Message Date
Juergen E. Fischer
47ab1a74ae fix typos 2017-08-08 01:47:27 +02:00
Matthias Kuhn
132d7f2a1e Fix postgres server imposed NOT NULL constraint 2017-08-07 19:46:13 +02:00
Nyall Dawson
5a64f586a6 Merge pull request #4928 from nyalldawson/layout_next
Layout chapter IV: snapping and guides
2017-08-08 00:25:23 +10:00
Nyall Dawson
14546ec935 Fix unit test 2017-08-08 00:02:47 +10:00
Nyall Dawson
3fd2e0921d Fix ownership issue with layout guides 2017-08-07 22:31:44 +10:00
Nyall Dawson
94362fe218 Add signal when page is about to be deleted 2017-08-07 21:43:31 +10:00
Nyall Dawson
04e6529efd Fix crash when creating guide and no pages in layout 2017-08-07 19:34:28 +10:00
Nyall Dawson
2f49329634 Use +/- icons instead of text 2017-08-07 19:34:28 +10:00
Nyall Dawson
419bdde558 Fix incorrect dialog title 2017-08-07 19:34:28 +10:00
Nyall Dawson
d3c2bf0f9c Fix locked widgets when switching to custom page size 2017-08-07 19:34:28 +10:00
Nyall Dawson
e453116101 [needs-docs] Refine snapping logic for layouts
Previously grids would always take precedence when both a grid
and guide were within tolerance of a point.

Now, guides will always take precedence - since they have been
manually set by users we make the assumption that they have
been explicitly placed at highly desirable snapping locations,
and should be selected over the general grid.

Additionally, grid snapping was previously only done if BOTH
x and y could be snapped to the grid. We now snap to the nearest
grid line for x/y separately. This means if a point is close
to a vertical grid line but not a horizontal one it will still
snap to that nearby vertical grid line.
2017-08-07 19:34:28 +10:00
Nyall Dawson
6d93411660 Add layout properties menu entry 2017-08-07 19:34:28 +10:00
Nyall Dawson
89f0ecd369 Add some other guide/ruler related actions to ruler right click menu 2017-08-07 19:34:28 +10:00
Nyall Dawson
66875641a3 Hook up snap to guides menu option 2017-08-07 19:34:28 +10:00
Nyall Dawson
9267f8676c Readd menu option to show/hide guides 2017-08-07 19:34:28 +10:00
Nyall Dawson
98ff702491 [FEATURE] Add a button in guide manager to apply current page's guides
to all other pages

This allows resetting all other pages to use the guide configuration
for the current page. Since guides are now single page only (required
to handle mixed page size/orientation layouts), this is a shortcut
to allow guide configuration to be setup on a single page and then
easily transferred to all other pages in the layout.
2017-08-07 19:34:28 +10:00
Nyall Dawson
c43a173ef8 Add a clear all guides button to guide manager 2017-08-07 19:34:28 +10:00
Nyall Dawson
33aa3525a3 Show different cursor and paint guide markers darker when hovering them in rulers 2017-08-07 19:34:28 +10:00
Nyall Dawson
4565d8d656 Add missing files 2017-08-07 19:34:28 +10:00
Nyall Dawson
df3bcddab7 Hook up clearing guides 2017-08-07 19:34:28 +10:00
Nyall Dawson
da4382309e Allow deletion of guides by dragging outside of pages 2017-08-07 19:34:28 +10:00
Nyall Dawson
e06b0af91b Support dragging existing guides in rulers 2017-08-07 19:34:28 +10:00
Nyall Dawson
c6c9c6fabf Show guide positions in rulers 2017-08-07 19:34:28 +10:00
Nyall Dawson
ab726c4777 Add methods to determine visible pages in a view 2017-08-07 19:34:28 +10:00
Nyall Dawson
9458f1f934 Support deletion of guides through manager 2017-08-07 19:34:28 +10:00
Nyall Dawson
6138b979b2 Slightly improved guide appearance 2017-08-07 19:34:28 +10:00
Nyall Dawson
e718f92bd5 Better headers in guide view 2017-08-07 19:34:28 +10:00
Nyall Dawson
048a5b79b6 Nicer table view for guide editing 2017-08-07 19:34:28 +10:00
Nyall Dawson
886a1208ef Dropping guides outside of pages doesn't create new guides 2017-08-07 19:34:28 +10:00
Nyall Dawson
b0956c9bd7 [needs-docs] Partial WIP of dragging rulers to create guide lines
Unlike in 2.x, Layouts in 3.0 adopt the standard UX of dragging
out rulers to create guide lines (instead of clicking on a ruler
position to create a guide)
2017-08-07 19:34:28 +10:00
Nyall Dawson
ef6727518d [FEATURE] Add a dock widget showing snap guides for current page
Allows creation of snap lines at specific locations, and
adjusting position of existing guides to exact coordinates
2017-08-07 19:34:28 +10:00
Nyall Dawson
f5126b0abd New class QgsLayoutGuideCollection for storing sets of layout snap guides
The class is a QAbstractListModel subclass, making it easy
for creation of different views showing the guides in a layout.

Additionally, a QSortFilterProxyModel (QgsLayoutGuideProxyModel)
has been created to filter QgsLayoutGuideCollection to guides
with matching page numbers and orientations.
2017-08-07 19:34:28 +10:00
Nyall Dawson
fa5eb4e5ad Refine QgsLayoutGuide API 2017-08-07 19:34:28 +10:00
Nyall Dawson
db36440cfc Start on classes for snapping guide items 2017-08-07 19:34:28 +10:00
Nyall Dawson
3aa231e547 Show snapped cursor position in status bar 2017-08-07 19:34:28 +10:00
Nyall Dawson
3dbc1a0c2a Refine z order for some new items 2017-08-07 19:34:28 +10:00
Nyall Dawson
0d0a3c2cdc Code refactor - split grid appearance settings into their own class 2017-08-07 19:34:28 +10:00
Nyall Dawson
55c7cc185e Start porting layout settings panel
Readd settings for grid tolerance/spacing/offset
2017-08-07 19:34:28 +10:00
Nyall Dawson
d0dfec72cb Add actions to switch grid display/snapping on/off 2017-08-07 19:34:28 +10:00
Nyall Dawson
798ec83681 Start on snapping marker 2017-08-07 19:34:28 +10:00
Nyall Dawson
f57212eee5 Hook up snapping for QgsLayoutViewTools
Tools can now indicate (via setFlags()) if they desire snapping
to be active for the tool. When a tool has the flag set,
any QgsLayoutViewMouseEvents it receives will have a snappedPoint()
available which returns the mouse event point snapped using
the layout's snapping settings.
2017-08-07 19:34:28 +10:00
Nyall Dawson
5be237fdd9 Add ability for QgsLayoutSnapper to snap to grid 2017-08-07 19:34:28 +10:00
Nyall Dawson
361dd312bc Start on layout snapper 2017-08-07 19:34:28 +10:00
Nyall Dawson
b42c055e97 Restore drawing of page grids 2017-08-07 19:34:28 +10:00
Nyall Dawson
ec5698393b Support data defined paper sizes 2017-08-07 19:34:28 +10:00
Nyall Dawson
57c9668398 Partially hook up data defined page size
TODO:
- preset page sizes
- reflow after update
2017-08-07 19:34:28 +10:00
Nyall Dawson
f802c56573 Merge pull request #4996 from nyalldawson/spelling_and_stuff
Fix some spelling, add parameter names to tooltips in processing
2017-08-07 19:11:26 +10:00
Mario Baranzini
0409da3a4c Fixed PEP8 missing blank line 2017-08-07 10:27:15 +02:00
Mario Baranzini
f187c43280 Add cmp() function 2017-08-07 10:27:15 +02:00
Mario Baranzini
b32212d451 Removed 2 calls to standard_library 2017-08-07 10:27:15 +02:00