This is the log for the next release of QGIS - version 2.16.0 ‘Nødebo’.
The Department of Geoscience and Natural Resource Management
Forest and Landscape College in Nødebo were hosts to the First International
QGIS conference and developer meeting in May 2015.

This is not a Long Term Release

This release is not designated as a Long Term Release (LTR). Users wishing to
have a version of QGIS which does not change and receives bug fixes for at least
1 year are invited to use the current LTR release 2.14 (which now becomes our
official LTR with the release of QGIS 2.16).

New Features in QGIS 2.16 ‘Nødebo’

If you are upgrading from QGIS 2.14 you will find a great many new features in
this release. We encourage you to peruse the changelogs for previous releases as this
QGIS 2.16 release includes all features published in those releases too.

Whenever new features are added to software they introduce the possibility of
new bugs - if you encounter any problems with this release, please file a ticket
on the QGIS Bug Tracker.

Pronouncing Nødebo…

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 sponsors. 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 project sponsor, please visit our
sponsorship page
for details. Sponsoring QGIS helps us to fund our six monthly developer meetings,
maintain project infrastructure and fund bug fixing efforts. A complete list of
current sponsors is provided below - our very great thank you to all of our sponsors!

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.
If you are able to support QGIS, you can .

Annually we also receive support from various organisations who appreciate the
work we do and would like to facilitate the sustained development effort that
goes into the project. These sponsors are listed below with our thanks!

The previous setting for include WKT when copying features has been replaced with
a choice of copying features as “Plain text, attributes only”, “Plain text, WKT
geometry” and a new “GeoJSON” option. When set to “GeoJSON”, copying features in
QGIS will place a GeoJSON text representation of the features on the clipboard
for easy pasting into other applications/JavaScript code. These settings can be
found in the Settings->Options->DataSources->Copyfeaturesas.

QGIS clipboard handler can now parse many additional text formats, including
native support for GeoJSON feature collections. This allows you to directly copy
and paste GeoJSON strings into QGIS and have them automatically converted into
QGIS features and geometries.

A magnifier tool has been added to QGIS, which allows you to magnify the map at
a given scale. This allows you to zoom in to a map without altering the map scale,
making it easier to accurately tweak the positions of labels and symbols.
Additionally, a default magnification value can be defined in settings, which
is very useful for high resolution screens!

QGIS 2.16 brings improvements to the way you can zoom in and out of the map canvas.

Holding down Ctrl while using the mouse wheel to zoom in or out now results
in a finer zoom. This behavior brings canvas into line with composer.

Pressing Ctrl++ or Ctrl+- performs an immediate zoom in/out on the map canvas

When certain map tools are active, you can perform a web-map style zoom by
holding down Shift and dragging a rectangle on the map to zoom to that area.
This is enabled for the map tools which are not selection tools (since they
use shift for adding to selection), and edit tools.

The gradient ramp editor has been reworked with interactive controls for easier
manipulation of gradients. The dialog now also includes an interactive plot for
modifying gradient stops via the color HSV or RGB values. The new editor features:

drag to move color stops

double clicking to add a new stop

pressing delete will remove the selected stop

pressing arrow keys will move the selected stop, and holding shift while
pressing a cursor key results in a larger move

In previous QGIS versions the attribute dialog would always be opened in the table
view. Now, you have the choice of always defaulting the dialog to either the table
view, form view or to remember the last view used.

A new context menu item called Copycellcontent is now available in the menu
opened by a right click on a cell within the attribute table. When this button
is clicked, the content of the cell is copied in the clipboard, whatever the kind of widget.

Having now an automatic way to create a ticket in the documentation repository
for each new feature in QGIS, we are sure that all new features is now in the
documentation.

The documentation team worked hard on three releases of QGIS: 2.10, 2.12
and 2.14 so the documentation is now up to date for the current Long Term
Release of QGIS. This is around 180 new features that have been documented in
4 months.

If you think there are some missing features in the documentation, feel free
to add a new ticket, write small text to describe it or better push a
contribution.

The documentation team has also worked on improving the documentation guidelines
in order to ease contribution’s process for new doc writers and help translators.

The documentation team will now work hard the next months to document the
current stable release (2.16) of QGIS.

Check the 2.10, 2.12 and 2.14 milestone to see all the documentation work that has taken place:

The authentication system features introduced in earlier versions of QGIS
(2.12 and 2.14) are now fully documented in the Users manual, and will be a
great contribute to the system’s understanding and adoption.

The “arrow” symbol layer is a symbol layer allowing to draw straight or curved
arrows from a line layer.

In curved mode, nodes of the line layer this symbol layer is applied to are used
as control points for circle arcs.
Arrows can be filled with whatever existing filling style QGIS supports.
Options also allows to select the type of the arrow (with one or two heads, plain
or halved), its width (that may be variable) and size of the heads.

A “filled marker” is similar to the simple marker symbol layer, except that it
uses a fill sub symbol to render the marker. This allows use of all the existing
QGIS fill (and outline) styles for rendering markers, eg gradient or shapeburst fills.

Using the new “No symbol” renderer in QGIS 2.16 no symbol will be drawn for
features, but labeling, diagrams and other non-symbol parts will still be shown.

Selections can still be made on the layer in the canvas and selected features
will be rendered with a default symbol. Features being edited will also be shown.

This is intended as a handy shortcut for layers which you only want to show labels
or diagrams for, and avoids the need to render symbols with totally transparent
fill/border to achieve this. It may not sound useful from the title - but it’s
quite a handy shortcut!

Font markers symbol can now have outline, which can help increasing visibility
of such symbols by adding an outline buffer color. Emoji-enabled font characters
can serve as nice markers when used with a thick outline.

Allows for setting a point’s offset if it is bound to a field using data defined
overrides. The offset field should be a text field. The map tool to interactively
set the offset is in the Advanceddigitizing toolbar in the icon group with the
RotatePointSymbols tool. See the attached animation for an example. Note that when
making subsequent adjustments to the offset, you should drag from the original
point vertex marker, not the current position of the symbol as rendered on the map.

The style dock is a new, far more efficient, way to manage layer styles in QGIS.
It supports a live preview of style changes as they are made, full undo / redo
support and a less distracted workflow as you prepare your map cartography.
For a comprehensive overview of the style dock’s features, please see style dock part 1
and style dock part 2.

With this new feature, a new tool is available in the label toolbar allowing to
set properties of diagrams for the current layer. Moreover, each tool mentioned
above are now fully usable with diagrams too.

The user can select the algorithm to use when the local-side simplification
runs to draw geometries faster.
Now, QGIS provides three algorithms:

Distance (default algorithm, and the only option available in previous QGIS releases)

SnapToGrid

Visvalingam

This change also moves the local “on-the-fly” simplification from the provider
and iterator classes to the rendering code. This avoids cases where simplification
changes the geometry fetched from vector data providers, possibly affecting rule
based and other expression based symbology. This is important when you have
expressions that use the feature geometry (e.g. calculation of area) - we want
to be sure that these calculations are done on the original geometry, not on
the simplified ones.

When enabled, repeating locks are not automatically cleared when a new point is
added. They are handy when the same constraint must be repeated for multiple
points (eg adding vertices which are always 50 meters apart). This functionality
is available in the AdvancedDigitizingPanel.

Support was added to set the segmentation tolerance (maximum angle or maximum difference).
This setting controls the way circular arcs are rendered. The smaller maximum angle
(in degrees) or maximum difference (in map units), the more straight line segments
will be used during rendering. You can find this option in
Settings->Options->Rendering->CurveSegmentation.

Checkboxes have been added so that you can select which attributes you want
included in the export, and you also now have the option to write “displayed”
values rather than raw values. This option is useful for layers with relations,
where you’d like a literal value included rather than a numeric identifier.

Depending on the data format, the “displayed value” is enabled by default,
e.g. for export to spreadsheet formats (ODF, XLSX, CSV/Text).

In the forms mode of the QGIS attribute table there is a side column one can use
to directly jump to a specific feature. Up-to this release, this side view was
not sortable. For sorting, one had to jump to the table mode and then back to the
form mode. Now one can directly sort the feature by the feature attribute preview
in the side panel by chosing the sort function on the expression drop-down button
above the side column.

The relation reference widget was enhanced to allow quicker extensions of related
value lists. If the checkbox “Allow adding new features” is enabled in the widget
properties (access through “Fields” tab in layer properties), a green plus button
will appear to the right of the widget. After pressing the “Plus” button,
the dialog of the related table will open in “new record” mode where one can add
an additional entry.

In QGIS 2.16 a new mode was added to the attribute table dialog for searching
and filtering features. When activated (using a button on the toolbar or by
pressing CTRL+F), the dialog will switch to form view and all widgets are replaced
with their search widget wrapper variant.

Alongside each widget is a tool button with options for controlling the search/filter
behaviour for that field, eg “equal to”, “not equal to”, “is null”, “greater than”,
etc.., with the options presented matching themselves to the corresponding field and
widget type.

New buttons appear at the bottom of the form for either selecting matching features
(with options for add to selection/remove from selection/select within current
selection) or filtering features in the table (with options for adding features
to a current filter or further restricting a current filter).

You can also access this mode with the new “Select by Value” option,
or by pressing F3 with a layer selected.

The GeoPackage format is an open standard for
geospatial data that should be on your radar as a replacement for the ESRI
Shapefile format. It addresses many shortcomings with the shape file format
including limitations in the number and width of fields. In QGIS 2.16 it is now
easy to create a new GeoPackage as it has been integrated into the Layer toolbar
and Layer->CreateLayer menu.

In previous QGIS versions there was no way to check the validity of values entered
by a user for a feature’s attributes. Now, a user can specify a constraint on
each widget in a layer’s attribute form. Constraints are created using QGIS’
expressions, eg "min_population">50000. A “Not Null” checkbox is also
available to indicate that a value must be entered for the field. Additionally,
descriptive text can be added to give the user helpful feedback when a constraint fails.

Constraints are evaluated on the fly while a user is modifying a feature.
A tooltip is available on any field having a constraint, showing the constraint’s
expression, the result of the evaluation and a description of the constraint.
A message bar will also displayed at the top of the form summarizing any fields
which do not meet the constraint criteria.

This change allows the attributes of multiple features to be edited simultaneously.
It is enabled when the attribute table dialog is in “form mode”, via a new “multi
edit” button on the toolbar. There’s also a shortcut to edit multiple selected
features by using Edit->ModifyAttributesofSelectedFeatures.

In this mode, attribute value changes will apply to all selected features.
New widgets appear next to each editor widget allowing for display of the current
multi-edit state and for rolling back changes on a field-by-field basis.

Changes are made as a single edit command, so pressing undo will rollback the
attribute changes for all selected features at once.

Multiedit mode is only available for auto generated and drag and drop forms -
it is not supported by custom ui forms.

For layers with a visible scale range set, selecting this option will automatically
set the scale to the closest scale where the layer is visible. Additionally,
the interface has been tweaked so that layers which are outside their scale range
and hidden are shown greyed out in the layer tree.

Two new types of composer shape items, based on nodes, are now available in the
map composer. Using these you can draw polygons or polylines within your composition
in just a few clicks.

New tools have also been added to allow editing nodes (ie move or remove nodes)
and also to add new nodes to an existing shape. Composer polygon and polyline items
can also be styled using all the symbol styles available for line and polygon layers!

This change makes the current atlas feature (and additionally all attributes of
related child features) available to the source of a composer HTML item, allowing
the item to dynamically adjust its rendered HTML in response to the feature’s
properties. An example use case is dynamically populating a HTML table with all
the attributes of related child features for the atlas feature.

To use this, the HTML source must implement a “setFeature(feature)” JavaScript
function. This function is called whenever the atlas feature changes, and is
passed the atlas feature (and all related attributes) as a GeoJSON Feature.

This change makes it possible to change an SVG files fill and outline colors,
and outline width when using parameterised SVG files such as those included
with QGIS. For more details on parameterised SVG files see this article.

In QGIS 2.16, the base stylesheet of composer labels will automatically set the
label font and margins to match the label’s settings. This allows interactive
choice of font, margins and colors and avoids the need to manually set these with
CSS within the label HTML code.

The existing option to create a world file has been separated from the map
selection for georeferencing. The new behaviour is to always georeference
outputs, and only create the
separate world file if that option is checked.

When a composer map is set to follow a style preset, it will automatically be
updated whenever the style is changed.

A new option has been added in composer map properties: “Follow visibility preset”
with a combo box to choose the active preset. This is an alternative to “lock layers”
(and “lock layer styles”) functionality which just copy a preset’s configuration,
while this new option creates a link to the preset.

The difference is that when a preset is updated, composer map will automatically
pick the new configuration when following the preset, while there is no update if
“lock layers” (and “lock layer styles”) option is used.

In QGIS 2.16 the expression engine now supports use of named parameters.
This means that instead of writing the cryptic expression:
clamp(1,2,3)
you can use:
clamp(min:=1,value:=2,max:=3).
This change also allows arguments to be switched, eg:
clamp(value:=2,max:=3,min:=1).

Using named parameters helps clarify what the arguments for an expression function
refer to, which is helpful when you are trying to interpret an expression at a later date!

Relational aggregates, which calculate an aggregate over all matching child
features from a relation, eg relation_aggregate('my_relation','mean',"some_child_field")

A summary aggregate function, for calculating aggregates on other layers.
Eg aggregate('rail_station_layer','sum',"passengers"). The summary aggregate
function supports an optional filter, making it possible to calculate things like:
aggregate('rail_stations','sum',"passengers",intersects(@atlas_geometry,$geometry))
for calculating the total number of passengers for the stations inside the
current atlas feature

In all cases the calculations are cached inside the expression context, so they
only need to be calculated once for each set of expression evaluations.

fTools is a core plugin that for many years has provided the tools found in the
Vector menu in QGIS. With the advent of the QGIS processing framework, the
fTools began to represent a duplication of effort, and many of the tools have
been improved in their Processing equivalents. To address, the fTools plugin has
been removed from QGIS and equivalent menu entries have been added to the vector
menu, pointing to the Processing framework tools that achieve the same thing.

Previously, the only way to create a QGIS plugin which added new algorithms to
Processing was to manually develop those algorithms and create a new algorithm provider.
Now, algorithms can be written as simple Processing scripts, and a plugin containing
them can be created directly from the Processing Toolbox. That plugin can be then
distributed as a regular plugin, and will extend Processing when active.

For this release, QGIS Processing now includes every
vector,
raster and
imagery algorithms from GRASS7.
Now, there are more than 300 algorithms for you to use directly from the QGIS
interface. You have all the power of GRASS7 directly incorporated into QGIS and
you can mix GRASS7 algorithms with all other Processing algorithms without having
to use a GRASS7 database.

Some unit tests (mostly for raster and imagery algorithms) have also been included
for some algorithms, making bug detection easier to handle and to process.

Note that, for the moment, GRASS7 Processing algorithms can only use and produce
Shapefile vector layers and GeoTiff rasters.
There is also a limit for some GRASS7 raster algorithms (all of the algorithms
that are manipulating color tables) which duplicate raster layers to temporary directories.
Depending on the size of your source rasters, you will probably need some disk
space to handle them.

QGIS now shows the correct domain type as field type name, and is able to
correctly determine the length and precision of domain types. See the PostgreSQL
documentation
to find more information about DOMAIN types.

You can connect to ArcGIS Feature services (WFS equivalent in ESRI world) and
ArcGIS Map services (WMS equivalent). The provider allows you to read maps and
vector layers from those services.

This feature is quite convenient for users who would like to switch from an
ESRI GIS stack without losing anything they already have built on private or
public map services.
You can also connect to public services provided by ESRI.

The expression used to generate default values for a field on the
postgres database are currently being printed on the feature form.

nextval('serial')

A new option in the “project properties” (tab “Data Sources”) allows evaluating
the expression before
opening the form and will directly print the new value in the feature form.

23

The main advantage of this improvement, is that one can now directly create and
link records of related tables before having to save the data first, because the
primary key is already present before the feature is saved.

This allows definition of widgets embedded into layer tree for individual
layers in the layer properties dialog (in new Legend tab). The idea is to have
a way to quickly access to some actions that are often used with a layer.

The implementation comes with transparency widget, in the future there may be more
standard widgets coming, e.g. to setup filtering, selection, style or other stuff.
The API allows plugins to register their own widgets, which will be useful for
various domain specific plugins to assign custom widgets to layers they manage.

QgsMultiEditToolButton -
a tool button widget which is displayed next to editor widgets in attribute forms,
and allows for controlling how the widget behaves and interacts with the form
while in multi edit mode

QgsSearchWidgetToolButton -
a tool button widget which is displayed next to search widgets in forms,
and allows for controlling how the widget behaves and how the filtering/searching
operates