Changelog for QGIS 3.10

image1

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.

Podziękowania

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 jest wolnym oprogramowaniem i nie masz obowiązku płacić za jego używanie - w rzeczywistości chcemy zachęcić ludzi aby go używano wszędzie, niezależnie od statusu finansowego i społecznego - wierzymy, że wyposażanie ludzi w narzędzia do podejmowania decyzji przestrzennych doprowadzi do ulepszenia społeczeństwa dla całej ludzkości.

Narzędzia mapy

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)

Styl

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)

Etykietowanie

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)

Renderowanie

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.

Wektoryzacja

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

Przeglądarka

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)

Ogólne

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)

Źródła danych

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