180 Commits

Author SHA1 Message Date
Matthias Kuhn
35d9b83aa5 Merge pull request #4138 from nyalldawson/touch
Rework map touch tool
2017-02-16 12:00:16 +01:00
Nyall Dawson
516bdfeed9 Fix build 2017-02-14 13:48:11 +10:00
Nyall Dawson
be46f78d7c Remove QgsDataDefinedButton
Now completely replaced by QgsPropertyOverrideButton
2017-02-14 13:48:11 +10:00
Nyall Dawson
f70a03116e Add basic shell for widget 2017-02-14 13:48:11 +10:00
Nyall Dawson
c26ed69c6b Rework map touch tool
Qt5 allows runtime detection of touch devices. This commit reworks
the current touch map tool by pulling its behavior into the normal
pan tool when a touch device is detected.

It avoids the need for a seperate map tool for touch interaction,
and also avoids having this tool always appear on the Windows
builds (regardless of the presence of a touch device)
2017-02-12 15:06:24 +10:00
Nyall Dawson
41fe33551c Add missing python bindings 2017-01-30 17:40:41 +10:00
Nyall Dawson
c853f4fe89 Refactor annotations
Splits the rendering component of annotations out from map
canvas item component.

A new core abstract base class QgsAnnotation handles the
management of the common properties associated with an
annotation, and handles rendering the annotation onto a
QgsRenderContext destination.

Existing annotation classes have been ported to this, and
with the exception of the form annotation moved into core.
Form annotations are dependant on editor widgets and must
remain in GUI.

A new QgsMapCanvasAnnotationItem item class implements
a QgsMapCanvasItem which draws an annotation inside the
canvas, and handles synchronising the position and size
of the canvas item with the QgsAnnotation position/size.

This allows annotations to be safely used in a multi-canvas
environment, with a single QgsAnnotation being displayed
in multiple canvases (even if the canvases have different
extent/crs/etc).

Additionally it allows annotations to be directly rendered
to a map (eg in composer) without going through the
gui based Qt graphics scene framework.

Also removes lots of duplicate code, and adds some basic
unit tests for annotations.
2017-01-30 08:36:19 +10:00
Juergen E. Fischer
6a56cb0dd0 updates and fixes for windows qt5/py3 build 2017-01-24 01:25:59 +01:00
Nyall Dawson
d5664ed635 Clean up GUI for properties 2017-01-23 12:45:21 +10:00
Alexander Bruy
b74aefd3c9 move QgsHelp to gui 2017-01-10 17:55:51 +02:00
Martin Dobias
6c5956b22b QgsProject: cleanup of read/write method + removal of unused bad layer handler class 2017-01-04 20:29:53 +08:00
Nyall Dawson
0bfc9bb6e3 [FEATURE] Show field values in autocompleter in form filter mode
This adds a new gui widget QgsFieldValuesLineEdit which includes
an autocompleter populated with current field values.

The autocompleter is nicely updated in the background so that
the gui remains nice and responsive, even if there's millions
of records in the associated table.

It's now used as a search widget for text fields, so can be seen
in the browser window if you set the filter to a text field, or
if you launch the form based select/filter by selecting a layer
and pressing F3.
2016-12-23 05:44:38 +10:00
Nyall Dawson
5da25136a6 New QgsFloatingWidget widget for easy creation of widgets which "float"
above a layout.

Supports setting another widget as a anchor point for the widget, eg
the floating widget could be set so that it's always placed to the
top-right of the anchor widget.
2016-12-05 14:08:11 +10:00
Nyall Dawson
ebae15f23a Framework for task manager
Adds new classes:
- QgsTask. An interface for long-running background tasks
- QgsTaskManager. Handles groups of tasks - also available as a global
instance for tracking application wide tasks
- QgsTaskManagerWidget. A list view for showing active tasks and their
progress, and for cancelling them

A new dock widget has been added with a task manager widget showing
global tasks
2016-12-05 14:08:10 +10:00
nirvn
0b9fbeb983 QgsColorRampComboBox is dead, long live QgsColorRampButton 2016-12-03 13:40:27 +07:00
nirvn
deb18c40db color ramp button widget for gradiant fill and categorized renderer 2016-11-30 11:02:05 +07:00
Martin Dobias
e5f62e49ce Remove legacy QgsLegendInterface, move still valid methods to QgisInterface 2016-11-22 08:25:01 +08:00
nirvn
5e487cfea4 [FEATURE] Style management re-work and upgrade
- A new favorite grouping system was added, which the symbols list
widget defaults to
- The selected tag / smartgroup in the symbols list widget now
persists when switching layers (and across sessions)
- The symbols list widget will update the tag / smartgroup combo
box when users add / rename / remove categories
- Users can now directly tag, as well as add to favorites, symbols
while saving those to the style database
- To streamline style management, groups have been removed and
fully replaced by tags
- Tags have been integrated into the import/export user interface
2016-11-16 14:12:19 +07:00
Denis Rouzaud
a373f95707 [FEATURE] add functionnality to copy/move feature to move feature map tool 2016-11-15 11:28:47 +01:00
Alessandro Pasotti
4e96912c91 [bugfix][forwardport] File downloader for identify dialog hyperlinks
fixes #14703

Include C++ and Python tests

Travis won: ported all test cases to Python
and disabled C++ companion test (still useful locally and
for debugging)

For the curious: QTemporaryFile is not working as expected

Moved to Qt5 new style signals

Disabled C++ test and connected cancel to progress

Make string comparison on SSL errors more robust
2016-11-11 17:26:33 +01:00
Nyall Dawson
76c12ba94c Split QgsLabelingGui off into QgsTextFormatWidget
New widget allows for setting just the formatting properties
of text
2016-10-24 12:02:00 +10:00
Nyall Dawson
0b88de2487 New widget QgsTextPreview for previewing all formatting for QgsTextRenderer
Switch the labeling gui to use this widget, which has the benefits:
- previews all label settings, including shadow and background
- previews at a specified scale, so that any sizes using map units
will be correct
2016-10-24 12:02:00 +10:00
Nyall Dawson
ca7b504e5c Fix Travis warnings and missing docs/sip 2016-09-30 08:42:16 +10:00
Nyall Dawson
fd0c5ef950 Refactor symbol/renderer widgets to use QgsSymbolWidgetContext
instead of individually setting map canvas, expression context, etc

Will make it more easy in future to add additional parameters
to the widget context
2016-09-30 08:42:16 +10:00
Nyall Dawson
3c4f46dc79 Remove more code disabled under Qt5
Add todo note for QgsHttpTransaction and disable under docs and
sip bindings
2016-09-21 09:12:54 +10:00
Nyall Dawson
5e9619249e Merge pull request #3489 from nyalldawson/preset_color_ramp
[FEATURE] "Preset colors" color ramp
2016-09-17 08:33:13 +10:00
Nyall Dawson
7f9cc87f85 Merge pull request #3494 from nyalldawson/deprecated
Remove remaining deprecated methods
2016-09-16 21:02:25 +10:00
Nyall Dawson
2a9e5206e9 Remove deprecated QgsAttributeEditor 2016-09-15 18:50:39 +10:00
Nyall Dawson
ec50cac2ef [FEATURE] New "preset" colors color ramp option
Allows use of a color ramp consisting of a list of selected colors.
Currently there's no way in QGIS to classify a renderer using
some list of colors you've previously selected. So you can modify
the colors manually after classifying, but that's a pain
if you're regularly using the same color scheme.

Basically, it's like the color brewer color ramp options but
allowing users to pick their own preset list of colors to use*

(Because Cynthia Brewer isn't the only cartographic color expert!)
2016-09-14 19:17:26 +10:00
Patrick Valsecchi
57d00949f7 Add an editor widget for QVariantList 2016-09-13 09:16:17 +02:00
Matthias Kuhn
ac41436de3 Add QgsTabWidget
This is almost like the QTabWidget but has additional methods for
showing and hiding individual tabs
2016-09-09 14:26:27 +02:00
Patrick Valsecchi
e533f0ccf8 Add widget to edit QVariantMap 2016-09-08 11:11:08 +02:00
Patrick Valsecchi
7169079f91 Smarter default edit widgets with plugins to pick them
Now the widgets factories can give a score on how good they could handle
a widget.

Additionaly, plugins can be added to choose a widget factory in function
of an external information. One of them uses a table in PostgresQL to
allow specification of the widget type and configuration.

I took the opportunity to remove a few deprecated method in relation to
this.
2016-09-05 14:22:17 +02:00
Matthias Kuhn
a529b448e7 Revert "Merge pull request #3338 from pvalsecc/editor_widgets_selection"
This reverts commit bbafbf48872eda48a2be8876cc89a0770552c6ad, reversing
changes made to 13ac0434e10fc7edd1eca665ea7c8b6cb5fd212d.
2016-08-29 19:22:04 +02:00
Matthias Kuhn
b1448233e9 Move QgsMapLayerProxyModel and QgsMapLayerProxyModel to core
Because it's also useful for non-widget applications
2016-08-29 18:43:20 +02:00
Patrick Valsecchi
24bde35ce6 Smarter default edit widgets with plugins to pick them
Now the widgets factories can give a score on how good they could handle
a widget.

Additionaly, plugins can be added to choose a widget factory in function
of an external information. One of them uses a table in PostgresQL to
allow specification of the widget type and configuration.

I took the opportunity to remove a few deprecated method in relation to
this.
2016-08-29 07:42:50 +02:00
Nyall Dawson
7413db79b0 Rename color ramp dialogs to match new ramp class names 2016-08-24 21:01:03 +10:00
Nyall Dawson
8f4ca47b70 New QgsExpressionLineEdit widget
Consists of a filter line edit + button to open expression builder

This widget is a bit like the existing QgsFieldExpressionWidget,
but for cases where a combo box does not make sense. Eg, when
no fields are available for the expression to use.

It also has an optional multiline mode, which allows it to be
used in place of the full-blown QgsExpressionBuilderWidget when
space is a problem.
2016-08-22 08:39:33 +10:00
Juergen E. Fischer
3f22a7a77f another scripts/replacev2.sh with minor manual fixes 2016-08-10 12:12:28 +02:00
Martin Dobias
b4fe9002d8 [FEATURE] API to allow drag'n'drop of custom browser items
QgsDataItem implementations may provide hasDragEnabled(), mimeUri()
and QgsCustomDropHandler implementation to deal with drop of custom items.
2016-08-09 08:49:42 +02:00
Denis Rouzaud
f2c3fb003e renamed QgsSymbolLevelsV2Dialog to QgsSymbolLevelsDialog 2016-08-05 08:22:43 +02:00
Denis Rouzaud
275736de92 removed V2 from QgsSymbolV2* 2016-08-05 08:22:21 +02:00
Denis Rouzaud
c16d1393a2 removed V2 from QgsSymbolLayerV2* 2016-08-05 08:18:01 +02:00
Denis Rouzaud
3e197ae74a remove QgsColorButton in favor of V2 2016-08-04 14:27:31 +02:00
Martin Dobias
ab4a83b49b Goodbye to QgsMapRenderer (#3333)
For the time being the class is kept in the server code while it is still being used there.
2016-07-24 22:40:52 +02:00
Nyall Dawson
185ad05102 Remove deprecated QgsDataDefinedSymbolDialog class (#3315)
It's not used anymore, and QgsDataDefinedButton should be used
in its place.
2016-07-20 21:18:20 +10:00
Nyall Dawson
39b3e721bb Replace QgsNumericSortTreeWidgetItem with upgraded QgsTreeWidgetItem
QgsNumericSortTreeWidgetItem had a giant TODO saying "make it work".
This makes it work, and adds some other useful features like
being able to specify custom sort value and force items to always
sort on top.
2016-07-19 09:30:23 +10:00
Nathan
e097443771 Fix globe plugin 2016-07-07 10:27:04 +10:00
Nathan
fdf16e3c92 Rename QgsLayerStylingPanelFactory to QgsMapLayerConfigWidgetFactory
- Move QgsMapLayerPropertiesFactory into single factory object for
  dock and properties
2016-07-06 23:03:43 +10:00
Nathan Woodrow
e926e2d0aa [style dock] Add better API for panels 2016-06-13 18:07:39 +10:00