76 Commits

Author SHA1 Message Date
Nyall Dawson
ee45ec9772 Add page number selection to new item dialog 2017-11-24 10:24:35 +10:00
Nyall Dawson
1f769da68d Work on resurrecting overviews 2017-11-07 11:32:38 +10:00
Nyall Dawson
7f0142c86a Working move item content tool 2017-11-07 11:32:38 +10:00
Nyall Dawson
753f6f5050 Start hooking up map widget gui 2017-11-07 11:32:38 +10:00
Nyall Dawson
87ef5c52b0 Allow cancelation of polygon/polyline creation 2017-11-07 11:32:38 +10:00
Nyall Dawson
9a08fad506 Exclude selected nodes item when snapping during node move 2017-11-07 11:32:38 +10:00
Nyall Dawson
938b239277 Port more node tool actions 2017-11-07 11:32:38 +10:00
Nyall Dawson
ab7bb7235a Start work on node edit tool 2017-11-07 11:32:38 +10:00
Nyall Dawson
44fe2a8d08 Add tools to create node based items 2017-11-07 11:32:38 +10:00
Nyall Dawson
b41fea90e2 Fix layout items appear in random order in gui 2017-11-07 11:32:38 +10:00
Nyall Dawson
8ca6d3e717 Refactor layout item gui registry to allow metadata for duplicate item types
This allows registration of item creation actions which create
items with an existing item type, but custom creation functions.

E.g. allowing actions for creation of ellipse/triangles/etc
from a single layout item type.
2017-11-07 11:32:38 +10:00
Nyall Dawson
c0b63a6778 After creating an item with the add item tool, switch immediately to select tool 2017-11-07 11:32:38 +10:00
Nyall Dawson
e836fc49b1 When selecting a different item, but the item is the same
type of item, just update the existing panel to show the new
item's properties

This means that flicking between selecting items of the same
type will not create a new properties widget, so scroll
bar positions, focused widgets, etc are all maintained.

Makes using layouts less annoying.
2017-11-07 11:32:37 +10:00
Nyall Dawson
ea453beb73 If the same item is reselected in a layout, don't create a new
properties widget for it

Because if we do annoying things happen, like loss of focused
widget and scroll bar position
2017-11-07 11:32:37 +10:00
Nyall Dawson
b2414d8d8d Start porting item properties widget 2017-11-07 11:32:37 +10:00
Nyall Dawson
d3836e502a Move population of layout gui registry from GUI->app
Since we don't want all the item type subclass config widgets
to have to reside in gui, we need to populate the registry
from app instead.
2017-11-07 11:32:37 +10:00
Nyall Dawson
606ad21a51 Port group actions from composer 2017-10-09 19:23:46 +10:00
Denis Rouzaud
6e14854f90 [sipify] remove redundant private sections 2017-10-09 09:51:40 +02:00
Nyall Dawson
88a7f02c77 Port preview modes from composer 2017-10-06 17:48:25 +10:00
Nyall Dawson
95a76eeef8 Port delete action - TODO: undo/redo 2017-10-06 17:48:25 +10:00
Nyall Dawson
e3616f08c4 [FEATURE][layout] Add actions to auto resize items in a selection
Options are resize to narrowest, widest, shortest and tallest.
2017-10-06 17:48:25 +10:00
Nyall Dawson
5141c05ba7 [FEATURE][layout] Add item distribution actions
Adds actions for distributing selections of items by their
left/center/right/top/bottom edges.

Useful for quickly evenly distributing items in the layout

Needs new icons
2017-10-06 17:48:25 +10:00
Nyall Dawson
0939333273 Port item alignment to layouts 2017-10-06 17:48:25 +10:00
Nyall Dawson
822d6f76a3 Move actions which apply to selected items only to QgsLayoutView
Selections are a gui concept, so these actions belong to the
gui class instead of cluterring QgsLayout
2017-10-06 17:48:25 +10:00
Nyall Dawson
4cba2b90ef Port select next above/below actions 2017-10-06 17:48:25 +10:00
Nyall Dawson
b494a71feb Port selection actions to layout 2017-10-06 17:48:25 +10:00
Nyall Dawson
639ecd1748 Correctly handle item focusing in layout designer 2017-10-06 17:48:25 +10:00
Nyall Dawson
d8ffab1523 [FEATURE][layouts] Snapping to item bounds when creating new items
Previously snapping to item bounds would only occur when resizing
or moving items, now it also applies to item creation
2017-10-06 17:48:24 +10:00
Nyall Dawson
e0089fb84c Move mouse handles to select tool 2017-10-06 17:48:24 +10:00
Nyall Dawson
d7bd44d9e7 Work on interactive moving of items 2017-10-06 17:48:24 +10:00
Nyall Dawson
b9ecb4f941 Add method to push messages to layout designer status bar 2017-10-06 17:48:24 +10:00
Nyall Dawson
df3bcddab7 Hook up clearing guides 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
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
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
20029c2956 Add a lot of framework code for showing item properties in designer
And hook up a non-functional page properties widget which is
shown when right clicking on a page in the view.
2017-07-25 12:54:58 +10:00
Nyall Dawson
0f90e23fe6 Refine item widget creation methods in layout item gui registry 2017-07-25 12:54:58 +10:00
Nyall Dawson
72bf2924d4 Port base class for item configuration widgets 2017-07-25 12:54:58 +10:00
Nyall Dawson
f1dfd3dbe2 Add an interface for creation of QgsLayoutView context menus
Allows display of custom right click menus when right click
events are not handled by the current layout view tool.
2017-07-25 12:54:58 +10:00
Nyall Dawson
416e1e4bbf Fix drawing of rulers with multipage layouts 2017-07-25 12:54:57 +10:00
Nyall Dawson
3021fc86d2 QgsLayoutUnitComboBox can be linked to spin boxes so that their
values are automatically updated when the combo box unit changes

This means that you can flip between units and things like
the existing width and height are converted immediately to the
new unit
2017-07-25 12:54:57 +10:00
Nyall Dawson
7f066672b3 Add method to specify item groups for item classes in QgsLayoutItemGuiRegistry
This allows the designer dialog to group the corresponding item
actions together (i.e. grouping all basic shape creation actions
together), but without any hardcoded special handling so that
plugin based items can also be grouped.
2017-07-18 12:42:06 +10:00
Nyall Dawson
de2626d65c Add unit types to new item properties dialog, handle different reference
point settings
2017-07-18 12:42:06 +10:00
Nyall Dawson
d14f3b9c13 Add QComboBox subclass widget for selecting layout units 2017-07-18 12:42:06 +10:00
Nyall Dawson
cdec70babe [needs-docs] Add a new item properties dialog
When adding a new item to a layout, if the user just does a single
click of the mouse (vs a click and drag to set the new item
position/size), then a dialog is shown asking to user for
the new item size/position/reference point.

This allows easy creation of items with an exact position/size
and is common behavior in most proper DTP/illustration apps.
2017-07-18 12:42:06 +10:00
Nyall Dawson
b4f5025d4f Port shape items to layouts 2017-07-18 12:42:06 +10:00
Nyall Dawson
1b93cdae71 Spelling update 2017-07-11 14:24:14 +10:00