1274 Commits

Author SHA1 Message Date
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
Denis Rouzaud
33071f4720 fix doxymentation 2017-07-24 13:44:25 +02:00
Nyall Dawson
d055def2d1 Merge pull request #4907 from nyalldawson/symbol_button
New QgsSymbolButton widget
2017-07-24 20:29:14 +10:00
Nyall Dawson
78b05c1a7f Allow copying and pasting symbols between QgsSymbolButtons 2017-07-24 16:57:30 +10:00
Denis Rouzaud
2723f4f199 remove duplicate method
followup 391712d2d42a761acb4bacce81cbe9ed8da52f6b
2017-07-24 07:30:48 +02:00
Nathan Woodrow
391712d2d4 Always log message bar messages to message log
Mainly so they don't just disappear on the user
2017-07-24 15:19:07 +10:00
Nyall Dawson
46f6f83fb9 Port some symbol buttons across to QgsSymbolButton
- composer shape style button (no other composer ones for now- they're
all getting removed with layouts anyway)
- point cluster/displacement renderer buttons
2017-07-24 11:07:55 +10:00
Nyall Dawson
22c4740f63 [FEATURE] New standard widget for symbol buttons
Button widgets for configuring symbol properties were reimplemented
multiple times throughout the codebase. This commit creates a new
standard QgsSymbolButton widget which should be used whenever
a button for configuring symbol properties is required.

Features include:
- automatic use of inline panels whenever possible
- dropdown menu with shortcuts to color settings, copy/pasting colors
- accepts drag and dropped colors to set symbol color
2017-07-24 11:07:55 +10:00
Nyall Dawson
faa4a09ed0 Merge pull request #4877 from nyalldawson/layout_next
Layouts, chapter II
2017-07-24 08:42:51 +10:00
Juergen E. Fischer
90fa6c2e91 sub layer dialog: sort by layer id and feature count numerically (fixes #16917) 2017-07-22 13:41:20 +02:00
Nyall Dawson
38c8268400 Allow setting width/height spin boxes to link to QgsRatioLockButton
When set, these spin boxes will automatically be updated when their
accompanying spin box changes value so that the ratio is maintained.
2017-07-21 14:20:45 +10:00
Mathieu Pellerin
0665072d94 [FEATURE] Locked aspect ratio state for Save as image/PDF" (#4880)
Sponsored by Andreas Neumann.
2017-07-19 15:04:52 +07:00
Juergen E. Fischer
4f9a9e0360 s/( )/()/; s/== /== /; s/!= /!= /; 2017-07-19 09:19:37 +02:00
Alessandro Pasotti
0b263f9ac6 Merge pull request #4737 from boundlessgeo/browser-sync
[bugfix] Sync the browser connections when changed from the select dialogs
2017-07-18 13:27:32 +02:00
Mathieu Pellerin
6acd326a8f [FEATURE] Draw extent onto canvas in save as image/PDF dialog (#4878) 2017-07-18 18:13:52 +07:00
Alessandro Pasotti
bd925cd648 Rebase and partially revert 9bae83275368
All signals are now in the base class, even if only
a subset of available providers actually emits them.

This way we can handle all source select dialogs
the same way, regardless if they are vector, DB
or raster (or others).
2017-07-18 12:15:57 +02:00
Alessandro Pasotti
e83ef2e8b5 Store canvas into the base class and set extent/crs from the arcgis classes
This modification was necessary because the current implementation
of the source select dialogs within the unified add layer dialog
create the provider dialogs the first time and do not destroy
them, this means that the canvas extent and CRS can change from
a dialog invocation to the next and the extent and CRS need to
be updated at layer creation time.
2017-07-18 11:45:07 +02:00
Alessandro Pasotti
73b66fa1f5 Homogenize signals from different source select dialogs, move to base class 2017-07-18 11:45:07 +02:00
Alessandro Pasotti
f6c8ef3ad1 Complete documentation for connectionsChanged signals 2017-07-18 11:42:02 +02:00
Alessandro Pasotti
c4e26d72c0 Renamed base class to QgsAbstractDataSourceWidget 2017-07-18 11:42:02 +02:00
Alessandro Pasotti
aba9da5bc4 Refactored all providers to use the new base class
Also use refreshConnections from the data items when
a refresh is required, this function also emits
the signal to update the other GUI elements.
2017-07-18 11:42:02 +02:00
Alessandro Pasotti
1e6a4ab301 Added since 3.0 to the renamed class 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
7bb797f8a9 Renamed QgsSourceSelectDialog to QgsArcGisServiceSourceSelect 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
bc516cf82a Added since 3.0 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
385bb86854 SIP include 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
593770a579 Added python bindings for the base source select class 2017-07-18 11:38:53 +02:00
Alessandro Pasotti
e57399bae0 [bugfix] Sync the dialogs connections when changed from the browser
For now it's only for WMS but you get the idea.

There is a new abstract base class for the source select
dialogs, that will grow with common behavior for all
the select dialogs.

Signals are forwarded from the (root) data items to the
app and then delivered to the various browser instances
and to the unified layer dialog.

A change in one of the browser items should trigger a
refresh in all the other browsers and dialogs.
2017-07-18 11:38:53 +02:00
Alessandro Pasotti
9ff73c0b77 [bugfix] Sync the bowser connections when changed from the select dialogs
For now, the sync works only in one direction: from the dialogs
to the browser instances
2017-07-18 11:38:53 +02: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
Juergen E. Fischer
9bae832753 add (unemitted) signals to provider source selectors to silence data
source manager connection warnings
2017-07-18 00:09:32 +02:00
Juergen E. Fischer
bae6d56388 consider datum transformation when pasting features (fixes #16846) 2017-07-17 22:22:49 +02:00
Nyall Dawson
1b93cdae71 Spelling update 2017-07-11 14:24:14 +10:00
Nyall Dawson
28cd9addab Restore rulers in layout designer 2017-07-11 14:21:35 +10:00
Nyall Dawson
c25aab16b0 Port display of cursor location from composer 2017-07-11 12:57:38 +10:00
Nyall Dawson
02d0a046f8 Add some shortcuts to zoom to layout/layout width in status bar combobox 2017-07-11 12:23:30 +10:00
Nyall Dawson
e27a32d41c Add status bar zoom control to layout designer 2017-07-11 11:48:22 +10:00
Nyall Dawson
ac83093570 Port zoom actions from composer to layout designer 2017-07-11 11:06:36 +10:00
Nyall Dawson
cf488d34a4 Split layout item registry into two separate registries
Instead of relying on forward declared c++ classes from
gui in QgsLayoutItemRegistry, instead create a
QgsLayoutItemGuiRegistry which handles registration
of all the GUI specific behavior relating to layout items.

Remove all GUI related code from QgsLayoutItemRegistry.

This creates a cleaner split between core/gui code, and
given that there'll be a lot of gui specific behavior
which needs to be handled by a registry it makes sense
to keep this isolated in gui.

It also plays nicer with the sip bindings, which can't
handle forward declared gui classes in core.
2017-07-11 11:06:36 +10:00
Nyall Dawson
0307cac325 Port ability to pan layouts with middle mouse button depressed 2017-07-11 11:06:36 +10:00
Nyall Dawson
b9bbd91754 Port ability to navigate layouts using space-pan and ctrl-space zoom 2017-07-11 11:06:36 +10:00
Nyall Dawson
20ca51b59c Port ability to wheel zoom into/out of layout designer 2017-07-11 11:06:36 +10:00
Nyall Dawson
4065a7ff67 Add shell for non-functional layout select tool 2017-07-11 11:06:36 +10:00
Nyall Dawson
dc0425abee Update cursor on alt press/release for zoom tool 2017-07-11 11:06:36 +10:00
Nyall Dawson
7974597c08 Add a zoom tool to designer dialog 2017-07-11 11:06:36 +10:00