Changelog for QGIS 3.10

image1

Release date: 2019-10-25

QGIS 3.10 brings an extensive list of new changes and a lot of polishing of existing features - the highlights of which we will try to cover here. As always can we remind you that QGIS is an open source project and if you are able to, consider supporting our work through donations or contributions to the code documentation, web site and so on.

Thanks

We would like to thank the developers, documenters, testers and all the many folks out there who volunteer their time and effort (or fund people to do so). From the QGIS community we hope you enjoy this release! If you wish to donate time, money or otherwise get involved in making QGIS more awesome, please wander along to qgis.org and lend a hand!

QGIS is supported by donors and sustaining members. A current list of donors who have made financial contributions large and small to the project can be seen on our donors list. If you would like to become an official sustaining member, please visit our sustaining members page for details. Supporting QGIS helps us to fund our bi-annual developer meetings, maintain project infrastructure and fund bug fixing efforts. A complete list of current sustaining members is provided below - our very great thank you to all of our supporters!

QGIS is Free software and you are under no obligation to pay anything to use it - in fact we want to encourage people far and wide to use it regardless of what your financial or social status is - we believe empowering people with spatial decision making tools will result in a better society for all of humanity.

Map Tools

Feature: 3D line lengths shown in identify tool results

Using the Identify Features tool on a 3D linestring now includes the 3d Cartesian length of the line in the results (alongside the existing 2D Cartesian and 2D ellipsoidal lengths).

image2

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Symbology

Feature: Default resampling setting for newly-added raster layers

In QGIS 3.10 we’ve added a new setting for the default resampling mode to use when for newly-added raster datasets. (This setting can be found in the rendering panel of the options dialog).

image3

This feature was developed by Mathieu Pellerin

Feature: Improved copy/paste of symbols

We’re passionate about making QGIS a user-friendly cartographic tool which is a joy to work with, so we’ve added a bunch of new shortcuts throughout the interface which allow you to copy and paste symbols from one part of QGIS to another. E.g, you can copy a symbol from a category and paste it directly onto another category, or a layout shape item, or inside the style manager dialog!

image4

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)

Feature: “Center of segment” placement mode for marker and hash line symbol layers

We’ve added a brand new “Center of segment” mode for placement of marker line or hashed lines symbols. This allows you to place markers or hash lines over the center point of individual line segments, exposing cartographic effects which were not possible before (and improving the quality of layers converted from ArcMap using the SLYR tool).

image5

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: More flexible data defined offset expressions

In previous QGIS releases, only string values of the format ‘x,y’ would be permitted for data-defined symbol and label offsets. We’ve listened to user feedback that this was confusing, and in QGIS 3.10 we now allow arrays of numbers as a valid expression result for offsets. E.g. “array(3,5)”.

image6

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Labelling

Feature: Create and manage text formats and label settings in QGIS styles

In QGIS 3.10 we’ve finally implemented a long-awaited feature, allowing users to manage their own libraries of custom text formats and label settings alongside their existing symbol libraries!

Now, the Style Manager dialog can be used to manage text formats (which store the font, color, buffers, shadows, and backgrounds of text formats) and layer-wide label settings. (A “text format” includes just font settings and other appearance related settings, while a “labe setting” also includes layer-type specific settings such as label placement, priority, and rendering settings).

Text Formats and Label Settings offer all the same functionality as you’re used to for managing symbols and color ramps within styles, including import and export to XML files, tagging, smart groups, favoriting etc…

image7

This feature was funded by North Road

This feature was developed by North Road

Feature: Marker symbols as label backgrounds

Alongside all the other exciting labeling improvements which we’ve landed in 3.10, we now allow use of marker symbols as a background for labels. This allows you to use all the rich functionality available for marker symbols as a background to labels, and complements the existing shapes and SVG background choices!

image8

This feature was funded by North Road

This feature was developed by North Road

Feature: Label callouts!

A common practice when placing labels on a crowded map is to use ‘callouts’ - labels which are placed outside (or displaced from) their associated feature, with a line connecting the label and the feature. In QGIS 3.10, we’ve added native support for quickly and easily creating beautiful label callouts (no more expression mangling or drawing by hand!).

We’ve added many settings for controlling exactly how these label callouts are drawn, and naturally, you can take full advantage of the richness of QGIS line symbol support within your callouts! This includes all the existing line symbol styles, layer effects, and even support for data-defined settings!

In 3.10, we expose options for either a “simple” (direct line) or “Manhattan” (straight lines) callout styles. If you’re interested in sponsoring additional callout styles in a future release, get in contact with the QGIS team to find out how you can make this happen!

image9

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)

Feature: Change multi-line label alignment for individual labels

We’ve added an additional option to allow you to control multi-line alignment on a label-by-label basis. Just active the Label Properties tool and click on your map labels, and a new setting for the text alignment is now available.

image10

This feature was developed by Mathieu Pellerin

Feature: Show unplaced labels

If you’ve ever been concerned about automatic label placement hiding away important labels on your map – this feature is for you! In QGIS 3.10 we’ve added an option to show “Unplaced labels” on your map, so you can see immediately exactly what’s been hidden from view (AKA “see what others can’t”)!

This new setting (which is accessed through the Labeling toolbar) will render these Unplaced Labels in a red color (but the color can be changed from the project Label Settings dialog). After identifying any missing labels in your map, we suggest you use the existing Labeling tools such as the “move label” or “show/hide label” tool to rearrange your map and make these labels visible again.

image11

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Overrun distance for line labels

We understand that making a cartographic masterpiece is a demanding task, so in QGIS 3.10 we’ve extended the capabilities of curved labels by adding a new “overrun distance” setting. This setting allows you to control exactly how far a curved label is allowed to extend past to ends of a line feature. Bumping up the distance will result in giving the labeling engine more flexibility in placing your labels, resulting in more labels being placed in better locations on your map! Win! The setting works for both curved and parallel label modes, and supports distances in mm/map units/pixels/etc, and data-defined distances.

image12

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Data defined control for “label every part of multipart features” setting

The “label every part” option was one of the very few settings which couldn’t be previously data-definable for labels. We’ve remedied this omission in QGIS 3.10, and you can now control whether you want all parts labelled on a feature-by-feature basis!

image13

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Control “label all parts” via the label properties tool

We aren’t lying when we say that QGIS 3.10 is a love-letter to map labelling! Another new option we’ve added in this version is interactive control over whether all parts of a feature should be labeled via the Label Properties tool.

image14

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Vertical text orientation

As of 3.10, QGIS is now fully equipped to render vertically oriented labels. To our Chinese, Japanese, and Korean users: spread the word! :)

You can choose between two vertical orientation mode: one that always renders labels vertically, or an alternative mode that dynamically picks the orientation based on the label rotation.

image15

This feature was developed by Mathieu Pellerin

Feature: Control over font kerning

Another option we’ve added for improving the conversion of ArcMap symbology to QGIS (via SLYR) is a new setting for controlling whether label fonts are kerned (or not).

image16

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Rendering

Feature: Rendering raster layers outside the reported extent

Depending on the server technology used, sometimes the map extent reported by raster layers may be smaller than the actual area which can be rendered (especially notably for WMS servers with symbology which takes more space than the data extent). Previous version of QGIS would crop raster layers to the reported extents, resulting in truncated symbols on the borders of these layers. Now, there’s a new option to allow you to override this behaviour and ignore the reported extent for affected servers.

This feature was developed by Matthias Kuhn (Opengis.ch)

Feature: Georeference PDFs and TIFs when saving the map canvas as image/PDF

In QGIS 3.10 we’ve implemented support for embedded georeferencing within PDFs and TIFs when using the save [map canvas] as image or PDF.

image17

This feature was developed by Mathieu Pellerin

Feature: New map canvas image decoration

We’ve added a brand new decoration for the QGIS main canvas, allowing you to add a bitmap and SVG image overlay (logo, legend, etc.) to your map window.

As with other parts of QGIS, the image decoration supports customizable fill and outline color for parameter-enabled SVGs.

image18

This feature was developed by Mathieu Pellerin

Feature: Logarithmic scale classification

You can now use a logarithmic based classification technique when creating ranges for the graduated renderer.

image19

This feature was developed by OPENGIS.ch

3D Features

Feature: Measurement tool in 3D map view

Now you can measure distances in 3D map views! This new tool is available in the 3D map view toolbar, and has the same workflow as the 2D measurement tool (with the same configuration settings of rubber band color, units, decimal place, etc). It also has the same behavior (left-click to add a new point, middle-click to delete the last point, and right-click to restart the measurement). This allows you to measure distances in 3d, e.g. the distance between two building’s roofs or the length of a river running down a mountain. See the 3D measurement tool in action:

This feature was funded by Google Summer of Code Program

This feature was developed by Ismail Sunni

Feature: Billboard Rendering for Points

We added a new kind of rendering style for point layers. It allows you to show the point with a QGIS symbol (e.g. marker, SVG, etc) that always faces the user and always has the same size. You can see sample usage in the video.

This feature was funded by Google Summer of Code Program

This feature was developed by Ismail Sunni

Feature: 3D On-Screen Navigation

In earlier QGIS versions, you could already navigate the 3D world by using a mouse and keyboard. Unfortunately, for a new user, it is not easy to start using them! 3D On-Screen Navigation will help to navigate the 3D world. There are buttons to zoom in/out, tilt up/down, pan up/down/left/right, and rotate the 3D map view. This feature can be activated from the 3D map view toolbar. See how to use it in this video:

image20

This feature was funded by Google Summer of Code Program

This feature was developed by Ismail Sunni

Expressions

Feature: New expression functions

  • attributes(): returns a map containing all attributes from a feature, with field names as map keys. We’ve got flexible, robust support for working with map values in expressions now, so this allows rapid conversion of all feature attributes to a map to use with these handy functions!

  • New optional “format” parameters were added to the to_date, to_datetime, and to_time functions

  • collect_geometries: this new function collects a set of geometries into a multi-part geometry object. Geometry parts can either be specified as separate arguments to the function or (more flexibly), as an array of geometry parts. This function allows geometries to be generated using iterator based approaches, such as transforming an array generated using generate_series, e.g:
    collect_geometries(     array_foreach(       generate_series( 0, 330, 30),       project($geometry, .2, radians(@element))     )   )
    Gives a nice radial effect of points surrounding the central feature point when used as a MultiPoint geometry generator
  • A new make_line expression function variant which accepts an array of points. This allows creation of lines from variable numbers of points, and from sequences from aggregates/dynamically generated sequences.

Digitising

Feature: GPS timestamp support

We’ve overhauled the existing GPS based functionality in QGIS 3.10, adding new options for automatically retrieving and storing GPS timestamps alongside GPS based features.

This feature was funded by NIWA

This feature was developed by Alessandro Pasotti (North Road)

Feature: Allowed gap exceptions

In QGIS 3.4 we introduced the ability to configure QGIS layers to run topological checks on every save operation. For 3.10, we have now added a new option to the check for “gaps” which allows you to actively mark some gaps as allowed. These exceptions will be saved on a separate, configurable layer. Whenever a gap is detected, you either have the possibility to fix it or to add it to the allowed exceptions with the press of a button.

image33

This feature was funded by Kanton Solothurn

This feature was developed by Matthias Kuhn (OPENGIS.ch)

Data Management

Feature: Composite Foreign Keys

In QGIS 3.10, we added the possibility to create layer relationships which utilise composite foreign keys. QGIS now fully supports editing parent and child features which are linked with more than one attribute. This functionality is accessed in the Project Properties -> Relations tab.

image34

This feature was funded by California Geological Survey

This feature was developed by OPENGIS.ch

Feature: Add circular data dependencies

Ever had issues with snapping when editing a feature that is modified by someone else (or a nasty database trigger)? Data dependencies allow refreshing the content of the dependent layers when the data is changed. We improved the dependencies support in QGIS by allowing refreshing the modified layer itself, which is kind of a circular dependency (a point layer and a line layer depending on each other for instance). No more snapping on ghost features!

More info in the pull request

image35

This feature was funded by QGIS.org

This feature was developed by Julien Cabieces (Oslandia)

Forms and Widgets

Feature: Update depending widgets real-time

Updates widget values on real time while editing the referenced fields. When widget A contains a default value depending on widget B, it updates as soon as widget B is edited.

image36

This feature was funded by Kanton Schaffhausen

This feature was developed by David Signer (OPENGIS.ch)

Analysis Tools

Feature: Stored filter expressions for attribute tables

While previous versions of QGIS allowed you to filter attribute tables using a custom expression, these expressions were lost whenever the attribute table was closed. Now, we’ve added the ability to store and manage your custom expression filters to the attribute table dialog. You can now build up your own personal collection of useful filters, which will always be available for re-use with a few simple mouse clicks!

image37

This feature was funded by Kanton Schaffhausen

This feature was developed by David Signer (OPENGIS.ch)

Feature: New operators for Raster Calculator

You ask, we listen: abs , min and max are now available in the Raster Calculator user interface!

image38

This feature was developed by Alessandro Pasotti

Processing

Feature: New algorithm “Point to layer”

This algorithm creates a new vector layer which contains a single feature with geometry matching a point parameter. It can be used in models to convert a point input into a layer, which can then be used for other algorithms which require a layer based input.

image39

This feature was developed by Olivier Dalang

Feature: Advanced model parameters

When creating inputs for a Processing model, you can now mark these input parameters as “Advanced” options. (Advanced parameters are hidden by default when users run your model through the Processing toolbox)

image40

This feature was developed by Alex Bruy

Feature: All GDAL based algorithms now support free-form “additional parameters”

We added an optional “Additional command-line parameters” parameter to all GDAL algorithms , useful for cases when you need to pass a specific command-line argument(s) which is not exposed in the algorithm UI.

image41

This feature was developed by Alex Bruy

Feature: Metatile size for XYZ tiles

You can now specify a custom metatile size when generating XYZ tiles. Larger values may speed up the rendering of tiles and provide better labelling (fewer gaps without labels) at the expense of using more memory.

image42

This feature was developed by Martin Dobias

Feature: New parameter type for colors

QGIS 3.10 brings a new parameter type for use in Processing models and scripts, which allows for users to pick a color value. Useful for any models and algorithms which require a color value as an input!

image43

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: New algorithm “Create style database from project”

This algorithm extracts all style objects (symbols, color ramps, text formats and label settings) from a QGIS project and stores them in a new style XML database, which can then be managed and imported via the Style Manager dialog.

image44

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)

Feature: File filter and default values for file and folder inputs in models

For file or folder inputs in Processing models we’ve added a new file filter setting (with some standard file formats available as an optional preset), and now allow you to set a default value for these inputs.

image45

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: New algorithm “Combine style databases”

The new “Combine style databases” algorithm combines multiple QGIS style databases into a single output style database. If any symbols exist with duplicate names between the different source databases these will be renamed to have unique names in the output combined database. It’s designed to give users an easy way to condense multiple separate style databases into a single unified database.

It works brilliantly with results generated by running the “Create style database from project” in a batch mode!

image46

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)

Feature: Generate XYZ tiles using multiple threads

The existing Generate XYZ tiles algorithm has been optimised and can now generate tiles using multiple processing threads.

image47

This feature was developed by Isghj5

Feature: New algorithms for exporting and importing bookmarks to/from map layers

To complement the spatial bookmark overhaul in QGIS 3.10, we’ve added new Processing algorithms which allow you to create a bunch of new bookmarks corresponding to the features from a layer, or to export existing spatial bookmark extents to a new polygon layer.

image48

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: New algorithm “Split features by character”

This brand new algorithm splits features into multiple output features, by splitting a field value with a specified character.

For instance, if a layer contains features with multiple comma separated values contained in a single field, this algorithm can be used to split these values up across multiple output features. Geometries and other attributes remain unchanged in the output.

Optionally, the separator string can be a regular expression for added flexibility.

This algorithm was designed for use in models which need to process input files with multiple concatenated values in a single attribute, e.g. geocoding a table with “address1,address2,address3” format strings.

image49

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)

Feature: New algorithm Climb Along Line

Previously available as a plugin, the “Climb Along Line” algorithm has been added to the out-of-the-box QGIS toolset. This algorithm calculates the accumulated height differences for lines in an input line layer, calculated using the Z values of the line vertices. A copy of the input line layer is returned with additional attributes for accumulated climb and descent, as well as the minimum and maximum Z values for each line.

image50

This feature was developed by Håvard Tveite (NMBU) and Matteo Ghetta (Faunalia)

Feature: Port Create Grid algorithm to C++

We ported the Create Grid algorithm from Python to C++ in order to speed up the algorithm. The algorithm now performs much faster for you and is also capable of creating point|line|rectangle|diamond|hexagon regular vector grids in high resolution in huge extents (eg. whole nations) in a reasonable amount of time.

image51

This feature was funded by Clemens Raffler

This feature was developed by Clemens Raffler

Browser

Feature: Extract symbols from QGIS projects within the browser

QGIS’ Browser panel just keeps getting more and more powerful! In 3.10, we’ve added a new option when right-clicking a QGIS project within the browser: “Extract Symbols”. Selecting this option opens a style manager dialog showing all symbols, color ramps, text formats and label settings from the selected project, allowing you to easily export the browse these symbols.

image52

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

General

Feature: Show news items on welcome page

A curated QGIS news feed is now shown on the welcome page. This finally gives us a direct channel to push project news to ALL our users! Expect to see lots of interesting QGIS news, tips, and events coming your way!

image53

This feature was funded by QGIS.org

This feature was developed by Nyall Dawson (North Road)

Feature: Milliradians (SI definition) and mil (NATO) units

QGIS 3.10 allows you to measure angles in two new units, milliradians (SI definition) and mil (NATO) units.

image54

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Interface Customization dialog filtering

We’ve added a new “search” box to the Interface Customization dialog, which allows you to filter through the widgets and easily find the widget you are trying to customize…

image55

This feature was developed by DelazJ

Feature: Improved auto-fix broken layers

When a layer path is fixed in a project, QGIS 3.10 will automatically scan through all other broken paths and try to auto-fix any others which were also pointing to the same original broken file path. Any change which speeds up fixing broken layer paths is a welcome change in our view!

image56

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Spatial bookmarks supercharged!

We’ve totally revamped how spatial bookmarks are exposed and managed in QGIS 3.10. Spatial Bookmarks are now shown in the browser panel, and can be regrouped into custom, categorized folders. This offers a much easier way to navigate and manage your bookmarks.

We also added a brand new bookmark editor dialog, which features an extent widget that greatly facilitates bookmark editing.

Bookmarks can also now be dragged and dropped onto canvases, allowing secondary canvases to zoom to a particular bookmark. This allows bookmarks to play nice in multi-canvas projects, since you can drop them onto a specific canvas to zoom.

image57

This feature was developed by Mathieu Pellerin, Nyall Dawson

Feature: “Reselect Features” action in Edit -> Select menu

Ever spend 10 minutes painstakingly creating an interactive selection of features, only to accidentally deselect them all through an errant mouse click? If so, this feature is designed just for you! Now, you can restore a layer’s selection following a selection clear operation via the new “Reselect Features” option in the Edit menu.

image58

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: Parallelize snap index build

The idea was to parallelize for each layer the snap cache computing (sequential at the moment) and to make it non blocking. As a consequence it is still possible to use QGIS even if snap cache is currently building. User can for instance start to edit node while the snap cache build is in progress.

This feature was developed by Oslandia

Feature: Templates for QGIS Projects

QGIS 3.10 includes the ability to directly use Project Templates from the welcome page. Additionally, you can now ship project templates to your whole organisation by placing them in a system folder, next to the already existing possibility to put it into a user profile folder.

image59

This feature was funded by The QGIS Project

This feature was developed by Matthias Kuhn (OPENGIS.ch)

Data Providers

Feature: Read-write support for .shz and .shp.zip

For QGIS builds based on GDAL 3.1, you can now open and edit single-layer ZIP compressed shapefiles (.shz), or multi-layer ones (.shp.zip). Regardless of where you sit on the Shapefile vs Geopackage battle, you’ll welcome this ability to de-clutter your folders and store shapefiles as a single file!

This feature was developed by Even Rouault

Feature: Oracle provider authentication

We’ve updated the Oracle database provider to add full support for QGIS built-in authentication system.

This feature was developed by Jürgen Fischer

Feature: Improved PostGIS raster support

PostGIS raster layers are now shown in the Browser panel and from the Data Source Manager dialog, allowing you to easily manage and add these layers to your projects. Currently only read support from browser is supported - you cannot drag rasters into a PostGIS database using the browser.

This feature was developed by Alessandro Pasotti

Feature: Oracle - Database transaction support

For version 3.10, we’ve enhanced the Oracle database provider and added support for editing layers via transactions.

This feature was developed by Nyall Dawson (North Road)

Feature: Z/M dimensions in delimited text layers

We’ve added optional support for Z and M fields to QGIS’ delimited text provider, allowing you to create Z or M enabled layers directly from CSV files.

image60

This feature was developed by Mathieu Pellerin

Feature: Static data providers

One huge behind-the-scenes job we completed for QGIS 3.10 is a refactoring of the provider infrastructure. Now, providers allow both dynamic and static linking. This was a pre-requisite to be able to build QGIS libraries on platforms that do not support dynamic linkage (iOS), and allows for QGIS based tools like the Input data collection app to be distributed for iOS based devices!

This feature was funded by Lutra Consulting Ltd.

This feature was developed by Peter Petrik, Martin Dobias

QGIS Server

Feature: Using SVG in QGIS Server

Earlier QGIS server versions had rendering issues when remote SVG files were used in a project (e.g. those hosted via external http servers). We’ve improved how QGIS Server fetches these resources, and it’s now possible to use remote SVG paths in your layers and publish them as WMS without rendering issues in QGIS Server.

image61

This feature was funded by Ifremer

This feature was developed by René-Luc D’Hont (3Liz)

Feature: WMS dimension

In QGIS 3.10 a WMS server can provide support for several type of dimensions such as time, elevation or other types of dimensions. The dimension has to be defined as the layer level and can be used by the WMS client to filter requested information. WMS Time is part of the WMS Dimension.

image62

This feature was funded by Ifremer

This feature was developed by René-Luc D’Hont (3Liz)

Feature: Server OAPIF (aka WFS3) support

QGIS 3.10 Server is one of the very first geospatial servers which supports the new OGC API - Features - Part 1: Core standard (also known as WFS3)!

This is a completely new implementation that provides an HTML and JSON based service for your web mapping developments, including a simple WebGIS interface which is available out of the box and it is easily customizable through an HTML template system.

More information is available in the documentation

image63

This feature was developed by Alessandro Pasotti

Programmability

Feature: New class QgsBookmarkManager

Attached to QgsProject and QgsApplication, this new class provides a stable, supported method of managing project and global bookmarks (vs the old undocumented, not stable approach of directly manipulating project keys or a sqlite database). Now your plugins and scripts are capable of reading, modifying, and managing spatial bookmarks!

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)

Feature: New API for provider database connections

Thanks to funding from the QGIS grant program, you can now use a new API aimed to manage DB connections in a unified way. The new connection API also provides a set of useful methods that can be used by plugin authors to access information about tables, schemas etc. and to run SQL arbitrary queries and get the results back into a handy Python array.

This feature was funded by QGIS

This feature was developed by Alessandro Pasotti

Notable Fixes

Feature: Bug fixes by Alessandro Pasotti

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

Crash when deleting print layout items

#31549

DB manager python error

#31457

QGIS 3.4.11: Clicking a PDF URL in GetFeatureInfo response generates error

#31542

Already fixed (by me) on 3.8 and Master

Watch file not adding new columns

#31452

Loss of labels background from older project/style

#31427

PR #3164

“Text formats” dialog shows modifiable buffer properties while the “draw text buffer” is unchecked

#31428

PR #3173

Symbology tab widget does not horizontally expand in the layer properties dialog extent

#31449

PR #3166

Watch file not adding new columns

#31452

Unreported but related to #31452

PR #3168

Unable to add WMS service in QGIS, same URL works in other clients

#31661

QGIS Server - Download of capabilities failed: SSL handshake failed

#31675

apparent regression in raster calculator multiplying conditionals

#31193

PR #3169

Broken GPKG browser actions

#31730

PR #3173

Resizing the data source manager dialog fails to resize unfocused panels

#31732

PR #3174

In place processing multipart to singleparts does not handle unique constraints

#31634

PR #3175

PR #3181

crash when adding legend via python

#31713

UI: Legend does not refresh after classifincation bounds updated

#31643

Not affected

PR #3183

UI: PostGIS layer error message not helpful, disappears and shouldn’t happen

#31799

PR #3184

Server GetLegendGraphics contextual (BBOX) fails if no WIDTH and HEIGHT are supplied

#31846

PR #3186

PR #3188

extend/trim crash

#31864

UI: any click on number of classes updown triggers twice

#31635

PR #3187

GPKG project is not marked dirty after it is deleted from the storage

#30550

PR #3187

Fix unreported issue with QVariantList to JSON conversion in QgsJsonUtils

unreported

PR #3192

Crash on adding WMS

#31927

#31927

PR #3197

Raster calculator change sign does not work when OpenCL is on

#32023

PR #3202

Snapping map units always show “meters even when the project is in different units

#31961

PR #3201

QGIS Raster Calculator outputs nodata only rasters

#32025

PR #3202

Opening projects from PostgreSQL issue

#32050

PR #3206

GetLegendGraphic shows all identical symbols for content based legend

#32020

WFS doesn’t recognize advertised GeoJSON outputFormat string

#32065

PR #3210

creating indexes on geopackage failes (QGIS 3.8.3)

#32094

DB manager import option “Create single-part geometries instead of multi-part” is broken

#32089

PR #3210

GetLegendGraphic shows all identical symbols for content based legend

#32020

PR #3212

WFS contextual legend issue when canvas CRS is different than layer’s CRS

unreported

PR #3212

PostGIS/geojson: Cannot input negative numbers in int fields

#32149

PR #3216

Information tab in WMS layer properties is unresponsive if a WMS service contains many layers

#32213

PR #3226

Data Source UI - PostgreSQL table multi-line comments make the grid table hard to read

#32257

PR #3233

More null pointer dereferences when plugins are off

#32347

PR #3235

null pointer dereferences when plugins are off

#32338

PR #3234

“Merge features” and “merge feature attributes” have broken numerical functions

PR #3236

PR #3236

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Alessandro Pasotti

Feature: Bug fixes by Alexander Bruy

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

GDAL scripts in Processing need quoting on attribute names

#30878

PR #3171

PR #3171

Processing GDAL algorithms does not handle correctly WFS input layers

#29663

PR #3173

shp files in zip files files cannot be used in Processing with 3rd party providers (SAGA, GRASS…)

#29001

PR #3174

PR #3178

Not possible to toggle use selected features in the Processing layer combobox

#30636

PR #3173

Connect to postgis database fails in “Layer - Add Postgis layer” on databases with weird table names

#27040

PR #3176

GRASS v.build.polylines dosn’t work in Qgis 3.4.10

#31037

Processing Algorithms written with the @alg decorator don’t get the gear icon

#31252

PR #3188

v.drape - no 25D export with SpatiaLite format

#30066

Service url cannot include custom query parameters

#26761

Processing: python error on startup

#29535

Saving Processing’s Package Layers algorithm’s output to default temporary output leaves no result

#30535

[Georeferencer] GDAL script does not set target SR

#31353

PR #3189

Processing “Build virtual vector” now fails in certain cases

#29336

PR #3190

Unreported issue with missed import in the Processing algorithms dialog

unreported

PR #3190

db manager: python error when clicking “edit table” if the table is a postgis raster

#30214

PR #3190

DB Manager: Renaming a PostGIS geometry column causes it to lose its geometry type and SRS

#27613

PR #3192

Georeferencer incorrectly shows last image when reopened

#26700

PR #3193

DB Manager: Create Layer dialog should be closed or cleared once the new layer is generated

#25535

PR #3195

[Vector Save As…] Extension is not replaced in filename when switching format

#26054

PR #3196

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Alexander Bruy

Feature: Bug fixes by Peter Petrik

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

Reproducible Crash: retrieving QgsHighlight instance stored as a widget property

#30766

PR #3173

PR #3197

Layer styling Mesh layer does not respond to change of Color ramp (first time)

#29188

PR #3198

qgis crashed on close in QSortFilterProxyModel

#31721

QGIS freezes

#29742

Crash when trying to save a project

#29896

Crash on exit with advanced digitizing active

#29143

Renaming macOS app causes authentication error

#32163

QGIS cannot be opened after updating to Mac OS Catalina

#32167

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Peter Petrik

Feature: Bug fixes by Even Rouault

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

QGIS master crash upon exit @ QgsCoordinateTransformPrivate::freeProj on Windows platform

#31762

PR #3176

Commit 08bb3fe

QGIS master crash upon exit @ QgsCoordinateTransformPrivate::freeProj on Windows platform

#31762

PR #3184

PR #3185

QGIS WFS stripping of viewparam KVP from WFS Feature Requests

#31026

PR #3176

PR #3188

Crash: right click on image ->export ->save as->”save raster layer as”

#30937

PR #3176

PR #3178

crash in discover relations for postgresql layers

#31213

PR #3176

PR #3177

Exporting raster as raw data to GeoPackage fails silently

#30644

PR #3177

PR #3178

QGIS crashes after deactivating a GDAL driver in use in the project

#29212

PR #3177

PR #3180

Crash exporting to GS7BG format

#31775

PR #3178

PR #3183

pgdump is no longer a recognized format for the GDAL/OGR convert format algorithm

#31421

PR #3181

not worth

PBF files not loading correctly

#31062

PR #3181

PR #31835

Error importing cover from Geoserver WFS service

#29844

PR #31813

PR #31867

Feature count from online Geojson not updated upon refresh

#30518

PR #31860

not worth

Edits in GeoJson datasources are not saved anymore

#28580

GDAL https://github.com/OSGeo/gdal/pull/1846

Backported to GDAL 3.0 and 2.4 maintenance branches

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Even Rouault

Feature: Bug fixes by Sandro Santilli

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

Adding Postgis rasters from DB Manager ask for password for each add

#31162

[processing] segmentizebymaxdistance puts qgis in endless CPU loop

#31832

Commit 6942b4b9

Commit 3225f491

file INSTALL cannot find doc/api/html

#31842

Commit 3225f491

n/a

QGIS died on signal 11 # at start up

#31350

repository files modified by make check

#25830

PR #31980

CMake Error at cmake/FindGEOS.cmake:162

#32170

Commit bc9bb888

Commit 27f13936

False success from ogr provider’s committChanges

#32144

Commit f421dc4f

Commit 136cec24

TestSagaAlgorithms: line 139, in check_algorithm: ‘NoneType’ object has no attribute ‘checkParameterValues’

#32143

Commit 76b39de1

n/a

PostGIS Data Loads Extemely Slow

#26186

PR #31858

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Sandro Santilli

Feature: Bug fixes by Matthias Kuhn

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

Crash when opening symbology tab of invalid layer

#32041

#32041

n/a

PR reviews

Many :D

qgz are marked as temporary on windows

#32118

Allow selecting geometry type in context

#32121

PR #32125

n/a

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Matthias Kuhn

Feature: Bug fixes by Paul Blottiere

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

Fixes invalid schemaLocation in GetCapabilities doc

#32085

PR #32352

Invalid WMS GetFeatureInfo response with json info_format

#32326

PR #32386/files

QGIS Server SELECTION doesn’t work with Postgres ids of type bigint or text

#29779

Regression with opacities for the WMS GetPrint request

#29317

Unreported regression: Invalid renderer type after loading a QML style file

unreported regression

PR #32388

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Paul Blottiere

Feature: Bug fixes by Nyall Dawson

Bug Title

URL issues (if reported)

URL PR or commit

3.4 backport PR or commit

Fix crash when deleting layouts from designer window

#32465

Commit e643e7f6

n/a

Fix model to python when model has no input parameters

Commit 6f1c42e7

n/a

Fix string escaping when converting models to python code

#32451

Commit e3eb4f54

n/a

Fix memory leak

Commit 5be31915

n/a

Fix potential overflow in raster renderer

Commit 1ba8db41

n/a

Restore project variables early in the project read cycle

#32382

Commit d76835fe

n/a

Improve docs for Join by Nearest, raise warning in log

#32317

Commit 670c81f9

n/a

Catch some reprojection exceptions during raster rendering

#32301

Commit 1dfc0c1e

n/a

[labeling] Fix broken numeric formatting settings, add tests

#32393

Commit b58dd674

n/a

Fix uncaught transform exception when determining AFS layer bounds

unreported

Commit 857697dd

n/a

Fix qt warning thrown when converting a 2.18 project

unreported

Commit 12ad9fca

n/a

Add option to take no action (“Leave as an unknown CRS”) when a layer is loaded which has no CRS

#19762, #27634, #24815 (and probably others)

Commit ffe66bff

n/a

Don’t force fallback to WGS84 for unknown layer CRSes

unreported

Commit 93741566

n/a

Fix memory layers cannot use non-EPSG CRS codes

unreported, but likely a cause of many bugs

Commit 2dad68f7

n/a

Fix crash after deleting report sections

#31302

Commit 3356460c

Commit d3230ac0

Ensure polygon rings generated for rendering are always closed

unreported

Commit a69e38d9

n/a

Don’t crash QgsTessellator when an empty polygon is added

unreported

Commit 761b2e77

n/a

Fix crash in topology checker plugin after a check is canceled

unreported

Commit 606bcd35

n/a

Fix topology checker multipart check

#28361

Commit 5101386b

n/a

Fix crash on exit when topology checker dock is open with visible results

unreported

Commit 64375ad4

n/a

Don’t load print layouts when opening project browser items

via email

Commit 9f1ce084

n/a

Add QgsProject flag to avoid loading print layouts when reading a project file, avoids crashes when project is loaded in background thread

via email

Commit d0ed3746

n/a

Don’t try to load HTML content when a layout is created in a background thread

via email

Commit 53252496

Commit 5fcab0e7

Huge speed up to QgsTessellator

Commit 577e1e96

n/a

[processing] Ensure all objects used by the model are correctly imported

#32004

Commit e5e3fe47

n/a

[processing] Avoid confusing use of expression parameter type in Random Points in Polygon algorithm

#27640

Commit 196e15a0

n/a

[layouts] Update map settings variables in UI when map extent/rotation changes

#24136

Commit 86c83537

n/a

[layouts] Fix layout variables set programmatically do not show in GUI

#28837

Commit 1afdd935

n/a

[layouts] Ensure variable panels are updated when layout or atlas properties change

#26402

Commit 2b31e03a

n/a

[layouts] Move page background setting to a per-page option

#25695

Commit 45e847ef

n/a

Optimize QgsContrastEnhancementFunction

Commit f5c21a0f

n/a

[layouts] Prevent removal of the last remaining page in a layout

via email

Commit e6ecfdd3

Commit b65f23f8

[layouts] Fix crash when exporting layout with no pages

via email

Commit b784d698

Commit f8355cbb

Fix conditional formatting panel high dpi issues

Commit 1f033fe8

n/a

Fix loss of font setting when editing conditional format

Commit 72efc1ed

n/a

Avoid overflow in QgsImageOperation

Commit aefbf662

Commit 9f4d3a87

[processing] Extend api for retrieving a layer in a compatible format

via 3rd party plugin bug tracker

Commit 651c5071

n/a

Fix conditional styles in feature list view do not update when the layer’s conditional styles are changed

Commit bccd5a46

n/a

Fix broken display of conditional styles in feature list view

Commit 5f7264d4

n/a

Fix incorrect conditional styling applied to rows in some cases

Commit c15c7271

n/a

Use invalid colors, not transparent colors, to indict not set colors in conditional formats, fixes incorrect colors used for conditionally styled rows

Commit bc82cffd

n/a

“[labeling] When an extreme number of features are being labeled from a single layer, place additional limits on the maximum number of

labeling candidates to generate for features in this layer”

Commit 61bfced6

n/a

[layouts] Fix incorrect alignment of items when the align or distribute tools are used with items with a non-top-left reference point

#31900

Commit b4550dc4

n/a

[processing] Respect user set default vector output format in vector split algorithm

Commit 90bac82f

n/a

Fix GUI is not updated when layout atlas is set to use the default filename expression

#20786

Commit a4da849e

n/a

[reports] Remove useless extra set of export actions

#26384

Commit d6b41813

n/a

[reports] Fix crash when print button clicked before a report section is opened

unreported

Commit c93fd0a4

n/a

[reports] Reduce minimum width of report organiser dock

#25916

Commit 7c490848

n/a

[layouts] Add a page number selection combo box at the top of the guide manager dock

#25700

Commit 2f22aeaf

n/a

Show color button style “Pick color” and “Chooe Color” and symbol button menu

#25696

Commit 39cfd0f9

n/a

Fix out of sync layout bounds after page removal

#26665

Commit d498eed0

n/a

[layouts] Fix odd selection behavior when keyboard modifiers are pressed when rectangular selection ends

Commit 37b5af54

n/a

Fix interaction with group members in items panel

#26674

Commit 5154240f

n/a

[layout] Fix invalid svg exports when including metadata

#28130

Commit cc94aebc

n/a

[legends] Fix missing symbols for inverted polygon layers when using filter by map content

#22718

Commit abc9f47c

n/a

Use a slightly larger font size in CRS details on Windows

#31297

Commit 757017c2

n/a

[processing] Add warning when packaging a geopackage with no layers

#31888

Commit f11e6603

n/a

[layouts] Fix crash when opening layout with dynamic image in html label

#28996

Commit 5db6165f

Commit e29865cd

Expose report feature settings when an attribute table is used in an atlas

#28441

Commit 9fd17c8f

n/a

[layouts] Fix attribute table ignores cell margin for top/bottom aligned text

#31259

Commit 7b356fe4

n/a

Fix truncated legend symbol borders when layer has opacity set

Commit 30e14938

n/a

Fix adding/moving legend is very slow with large projects

#29058

Commit 758ac909

n/a

[reports] Fix predefined scale mode is incompatible with report outputs

#29196

Commit fcd21e48

n/a

Ensure atlas expression evaluation has access to coverage layer scope

#31807

Commit 3de05939

n/a

Resizing pages to content should not create empty page size if no items are present

#29034

Commit 421e68cf

n/a

Fix map rotation does not immediately restore in reports

#31217

Commit f5afebe5

n/a

Do not return nan values when an assistant is used with min val == max val

#31242

Commit 97923751

n/a

[layouts] Fix label items don’t update when their opacity < 100

#29079

Commit f9a47738

n/a

Fix project load status indicator can get “stuck” after project load

unreported

Commit 40d95b69

n/a

Fix corrupted expressions in filter indicator tooltips

Commit 393e623b

Commit 8e0e368f

Fix cannot use GPS panel to draw features in multi polygon/line

#29144

Commit dc2b209d

n/a

Fix loss of label background settings when restoring projects.

#31427

Commit aa4a8da3

n/a

Fix crash in point displacement renderer

Commit 7043933f

n/a

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

This feature was developed by Nyall Dawson