1968 Commits

Author SHA1 Message Date
Matthias Kuhn
753a684c9f
Merge pull request #36265 from m-kuhn/export_label_positions
Abstract dxf export label provider away
2020-05-08 17:49:25 +02:00
Martin Dobias
ab2ec699e9 Clean up doxygen doc so that types are not mistaken as html tags 2020-05-08 12:55:08 +02:00
Martin Dobias
299be94459 Review fixes 2020-05-08 12:55:08 +02:00
Nyall Dawson
731ad8d788 Flesh out QgsVectorDataProviderTemporalCapabilities and implement
setDefaultsFromDataProviderTemporalCapabilities for QgsVectorLayerTemporalProperties

 Please enter the commit message for your changes. Lines starting
2020-05-08 11:46:46 +10:00
Nyall Dawson
bcbfc5eacd Fix sip 2020-05-08 11:46:46 +10:00
Nyall Dawson
82cc5a19cc Add sip casting 2020-05-08 11:46:46 +10:00
Nyall Dawson
0ca630115c Sipify 2020-05-08 11:46:46 +10:00
Nyall Dawson
d98defec1a [feature] Add basic temporal handling support for vector layers
This exposes some basic temporal capabilities for vector layers:
- static time range for layer (to match raster layer possibilities), this
sets a single static time range which applies to the whole layer. ALL
features from the layer will be shown whenever the canvas time
overlaps the layer time range
- "Single field with datetime": Allows selection of a single date
or datetime field from the layer. Features will be shown whenever
this field value is within the canvas time range
- "Separate Fields for Start and End Date/Time": Allows selection
of start and end date/datetime fields from the layer. Features will
be shown whenever the time interval calculated from these fields
overlaps the canvas time range

Some known limitations/inefficiencies:
- currently only date/datetime fields can be used. This was done
to simplify the format handling and avoid the need to worry about
string fields with different datetime formats. In future we should
allow selection of string fields and allow users to enter a custom
datetime format string
- unlike the Time Manager plugin approach, the approach taken here
is to rely completely on QGIS expressions and feature requests to
do the filtering (Time Manager uses layer filter strings and attempts
to set a native SQL filter syntax so that filtering is done on the
backend). This is intentional, because it provides a unified filter
approach regardless of the provider used (i.e. we don't need to worry
about the different SQL syntaxes used natively by the different
providers). The beauty of feature request expression compilation
**should** mean that the QGIS expressions are magically turned into
native backend queries, BUUUUUUUUUUUT... because we lack QGIS expression
support for date time literals, we currently rely on the "to_datetime"
expression function and coerce everything through strings. None of
the expression compilers handle this function, so currently ALL
filtering is done on the QGIS side. We need to add functions for
optimised datetime literal creation, and then ensure that the different
compilers correctly map these literals across to the backend
filter syntax to allow all the filtering work to be done on the database
side...

So currently, performance is much worse with large layers compared
to Time Manager. But, the advantage is that we can use the native
temporal framework and have vector layers animated alongside mesh
and raster layers!
2020-05-08 11:46:46 +10:00
Matthias Kuhn
50e63a785b Abstract dxf export label provider away 2020-05-07 17:13:25 +02:00
Denis Rouzaud
7a172b5756
Merge pull request #36236 from 3nids/fix25671
[layout] allow sorting attribute table by field not listed in the table
2020-05-07 06:02:41 +02:00
Nyall Dawson
8699f83d98 [FEATURE][layouts] Allow customisation of division and subdivision symbol
as distinct symbols vs the scalebar line symbol

Allows for styling division and subdivision symbols in a different
way compared with the horizontal line symbol in a tick scalebar

Sponsored by SLYR
2020-05-07 10:56:50 +10:00
Nyall Dawson
6e9b7ae594 Add clarification re meaning of number of subdivisions 2020-05-07 10:56:50 +10:00
Denis Rouzaud
28c20cf1d6 fix dox and layout 2020-05-06 20:01:20 +02:00
Denis Rouzaud
37efb4d598
Merge pull request #35382 from 3nids/dnd-across-qgis-instances
[FEATURE] allow to drag'n'drop layer across several QGIS instances
2020-05-06 16:04:07 +02:00
Denis Rouzaud
ee686b5bdb QgsLayoutTableColumn is not a QObject anymore 2020-05-06 14:46:45 +02:00
Denis Rouzaud
03f4cb9df3 do not use a specific class for the sort columns
for sake of simplicity this can live in the same class than the disaply columns
2020-05-06 14:46:45 +02:00
Denis Rouzaud
fcea343f79 allow sorting attribute table by field not listed in the table
fixes #25671

Instead of using a sort filter proxy model on top of the columns model, this uses a dedicated model for the sorting columns
2020-05-06 14:46:44 +02:00
Denis Rouzaud
c6ee633b7d add level and duration to message emitted 2020-05-06 14:45:55 +02:00
Nyall Dawson
1e0b890dc1 [feature][layouts] Expose control over layer legend splitting behavior on a layer-by-layer basis
This allows users to manually override the legend's default setting for "split layers"
on a layer-by-layer basis, by double clicking a layer in the layout legend panel
and choosing whether that layer:
- follows the default legend setting for splitting
- can ALWAYS be split over multiple columns (regardless of the legend's setting)
or
- can NEVER be split over multiple columns (regardless of the legend's setting)

Sponsored by SLYR
2020-05-06 16:27:31 +10:00
Andrea Giudiceandrea
a3397a8a2e
[feature][layouts] Add subdivisions in ticks scalebar right segments
Adds the ability to create subdivisions for segments included in the right part of the ticksscalebar

Fixes #20341
2020-05-06 09:12:37 +10:00
Nyall Dawson
aaed8f4901 Dox++ 2020-05-06 00:22:27 +10:00
Nyall Dawson
32c17c316e [FEATURE] Allow placing manual column breaks in legends
Adds the option when configuring a legend item to place a column
break before the item, causing it to be placed into a new column

This allows user control over the column content, for cases when
the automatic column generation doesn't result in the desired results
2020-05-06 00:22:27 +10:00
Vincent Cloarec
0d9a15b751
Snap on mesh elements (#36171)
[API] [FEATURE] Add a method in API to snap on mesh elements (vertex, edge, face)
The method returns the position of the snapped point on the closest mesh element :
2020-05-05 13:31:49 +02:00
Denis Rouzaud
c22c73dde2
allow fetching all features in QgsFeaturePickerWidget (#36193)
and more documentation
2020-05-05 11:08:56 +02:00
Denis Rouzaud
7fbc8a4843 add missing doc+ 2020-05-05 10:29:39 +02:00
Denis Rouzaud
01f766255b layer tree model can emit messages which will be shown in the message bar 2020-05-05 09:25:31 +02:00
Nyall Dawson
7a6220a77f [FEATURE][layouts] Allow overriding the default symbol for a legend node
This allows users to (optionally!) customise the symbol appearance
for a legend node, e.g. to tweak the colors or symbol sizes to better
provide a "representative" patch symbol compared with how those
corresponding features actually appear on the map.

It's useful for exaggerating symbol widths, or for manually tweaking
the colors of semi-transparent symbols so that the colors represent
the actual appearance of the symbols when rendered on top of the map
content. Or to tweak the marker interval/offset in marker lines so that the
markers are nicely spaced in the legend patch.

Fixes #14077
2020-05-05 11:49:05 +10:00
vcloarec
aa6d23d540 disable transparency for QgsInterpolatedLineRenderer 2020-05-05 05:53:25 +10:00
Martin Dobias
ac8b956640 Allow relative paths to vector tile layers in projects (fixes #36023) 2020-05-04 13:05:19 +02:00
Nyall Dawson
66a3b090da Maybe even LESS enum classes will help? 2020-05-04 05:38:48 +10:00
Nyall Dawson
6ec369e6b7 Travis says no to enum class 2020-05-04 05:38:48 +10:00
Nyall Dawson
d0ca4f31f8 Since 2020-05-04 05:38:48 +10:00
Nyall Dawson
e10c9f3b19 [labeling][FEATURE] Add a dedicated polygon placement mode for "outside"
When selected, labels will always be placed outside of polygons for the
layer

Sponsored by QGIS Swiss user group
2020-05-04 05:38:48 +10:00
Nyall Dawson
9fb85d3bc8 [FEATURE][labeling] Permit data defined control over placing labels outside
polygons

Options are:
- 'yes': allow placing outside the polygon if needed
- 'no': don't allow outside placements
- 'force': only ever put this label outside the polygon
2020-05-04 05:38:48 +10:00
Nyall Dawson
51820badc1 [FEATURE][labeling] Add option to allow polygon labels to be placed
outside of polygon features when required

When a label can't be placed inside the polygon and this option is checked,
then it will be automatically placed at a nicely selected location
just outside of the polygon

Sponsored by QGIS Swiss user group!
2020-05-04 05:38:48 +10:00
Denis Rouzaud
578ab8596d
Merge pull request #36089 from 3nids/expression-preview
Feature browser for preview in expression builder
2020-04-30 17:50:10 +02:00
Denis Rouzaud
9488f06025 code layout 2020-04-30 06:52:22 +02:00
uclaros
b6f890ec11 fix typo 2020-04-30 09:03:18 +10:00
Nyall Dawson
17c8a59e4e Refactor QgsLineString::interpolatePoint to extract segment traversal
to a separate visitor function

This allows other code paths to utilise this same logic in an efficient
way
2020-04-30 08:23:43 +10:00
Alessandro Pasotti
909dd31108
Merge pull request #36087 from Samweli/provider_metadata_bool_params
Functions for adding a variant of bool params in provider metadata
2020-04-29 18:47:22 +02:00
Denis Rouzaud
0119bb52e1 add setting for fetch limit 2020-04-29 15:54:16 +02:00
Denis Rouzaud
3090824cbf add a property to determine if geometry is fetched 2020-04-29 15:54:15 +02:00
Denis Rouzaud
ae5988cbb1 do not use template since they cannot be mixed with Q_OBJECT 2020-04-29 15:54:15 +02:00
Denis Rouzaud
780b581f03 use a template approach 2020-04-29 15:54:15 +02:00
Denis Rouzaud
01516d75e2 reintroduce reload current feature 2020-04-29 15:54:15 +02:00
Denis Rouzaud
82da0fd962 rename QgsFeatureChooser to QgsFeaturePicker 2020-04-29 15:54:15 +02:00
Denis Rouzaud
3cd237eca7 more work 2020-04-29 15:54:15 +02:00
Samweli
0cbb4dbb5b add setting of bool params in provider metadata 2020-04-29 14:05:08 +02:00
obrix
44fec550d5 Invert th meaning of min scale and max scale to be coherent with other qgis feature. Minimum scale is the most zoomed out scale, maximum scale the most zoomed in. Enrich the tooltip to be more explicit. Should fix issue #35786. 2020-04-29 13:00:39 +02:00
vcloarec
d28e3013f9 fix sip doc 2020-04-29 08:53:26 +10:00