Panes and UI
(Fix) Resizing the Record pane avoids visual artifacts near the bottom.
The Record pane is renamed to Info. The Component pane is reworked into the Component tab in the Info pane. When the Info pane has no picked records, the Component tab is the only tab shown. When the Info pane has a picked record, the Component tab is shown last.
The Info pane separates data for a map and the active map layer using a separator instead of a text caption.
The Info pane shows '(no index)' for a drawing / image / labels with no spatial index.
The Info pane shows the text field used for labels.
The Info pane shows the language for a script.
The Info pane shows the number of lines for a comments / location / query / script text.
Editing a comments / location / query / script automatically saves changes every 5 seconds. Switching to a different component window saves changes immediately. (We don't save changes on every keystroke because this does not work well when a component is stored on a remote database and the connection is slow. Saving every 5 seconds is a big improvement in usability for such connections, and if this will still be too fast in some cases we'll either allow setting the save frequency explicitly or auto-adjust it based on connection performance.)
The comments / location / query / script components no longer support the New Window command, to avoid save fights between multiple windows.
The Info pane shows the page size for a layout.
The Info pane shows the number of fields for a drawing / image / labels / table.
The Info pane shows the dimensions for an image.
The Info pane shows and allows editing the description for any component.
The Project pane reduces the description of a component to the first line for the tooltip. (Previously it was trying to show the entire description.)
Migrating a MAP file created by 8 merges component notes into descriptions.
The command window for a script can be saved to the currently opened MAP file using the Save as Script command.
(Fix) Editing a record in a filtered or reordered table window no longer sometimes shows edits as applying to a wrong record.
Editing whole records in a table window is reworked to use both the table window and the Info pane. Alt-clicking a record cell or a record handle puts the record into the Info pane and starts editing it. Any changes to the record values made in the table window show in the Info pane and vice versa. Attempting to edit a cell for a new record automatically starts a new record and puts it into the Info pane as well. If the table is read-only, Alt-clicking a record cell or a record header puts the record into the Info pane for viewing. Alt-clicking empty white space in a table window clears the Info pane.
The Info pane allows undoing changes to a single value using the Undo Changes command in the context menu.
Changing a value in the Info pane and then changing it back to the old value is interpreted as undoing changes to the value.
Pressing Escape in a table window clears the Info pane if it contains no uncommitted changes, similarly to how this is done in maps.
The Info pane for a table window can move between the fetched records. The Zoom command is renamed to Go, to make sense for a table, the icon is changed as well. (We will likely allow moving beyond the fetched records in the future.)
Reordering records in a table window keeps the picked record.
Filtering records in a table window keeps the picked record unless it does not pass the filter or the filter is applied to the whole table instead of to the fetched records.
The Info pane for a table record allows viewing coordinates for a geometry value using the View Coordinates command in the context menu.
The Info pane for a table record allows viewing pixels for a tile value using the View Pixels command in the context menu.
The context menu for a record handle in a table window includes the Edit Record command which puts the record into the Info pane. (This is an alternative to Alt-click.)
(Fix) Using the color picker on a multi-monitor system no longer sometimes uses an inappropriate color format for the clicked monitor and ends up with a wrong color.
The Info pane allows searching for records in a secondary table that are related to the picked record. To show such records, pick a record, switch to the new Related tab, then click the Setup button in the tab toolbar to specify the relation. The button will open the Related dialog which allows selecting the source table and a pair of key fields. After the dialog is closed the system will search for records in the source table with the value of the key field equal to that in the record picked in the Info pane, and show the first 10 found records in the Info pane. The Refresh button in the tab toolbar repeats the search. The relation parameters are saved in the component window so that they can be used multiple times.
Searching for related records in the Info pane uses a BTREExxx index on the key field if the source table has one.
Searching for related records in the Info pane tracks progress and allows canceling. If the search is canceled, it returns however many records were collected prior to the cancel.
Specifying the source table and search criteria for the related records in the Info pane allows specifying fields to show for the related records.
Switching the Info pane to a different record automatically refreshes the related records if the Info pane is shown and the Related tab is active.
(Fix) Resizing the Properties dialog avoids visual artifacts near the bottom. The minimum size of the dialog is increased to avoid clipping controls.
The layout window allows zooming a layout frame for a map to a location, either stored in a component or that of a different opened window. To zoom to a location, double-click the frame to make pan and zoom commands apply to the frame rather than the layout, then use the location commands in the View menu or in the toolbar.
The layout window allows saving the location for a layout frame for a map. (This is useful when you want to zoom a different window to the same location as in the layout.)
Input / output
Dataports for databases detect disconnects and automatically attempt to reconnect once. If the attempt to reconnect fails, the Project pane shows the data source as disconnected. (Most database drivers automatically close connections after they were not used for some time, to conserve resources. Previously this was putting the data source into the state where it could not return any data and the only method to get it working again was to recreate it or to close and reopen the MAP file. Now we detect such cases and reconnect seamlessly.)
The Project pane allows reconnecting to a data source using the Reconnect command in the context menu. The reconnect is forced: the existing connection, even if it is alive, is shut down and a new connection is established.
Refreshing a data source using the Refresh command from the context menu in the Project pane automatically reconnects to the data source if the connection has been lost.
(Fix) Reading a TIFF no longer sometimes creates extra images for files with pyramids.
(Fix) Exporting a GPKG writes application ID and user version values according to the GPKG spec, to mark the file for third-party clients. (We support the latest version of the GPKG spec available and are creating files of that version. The latest version of QGIS appears to only support this latest version of GPKG partially at the moment, and notifies the user about the partial support.)
Connecting to a GPKG no longer loads spatial extensions like Spatialite and always uses the built-in version of SQLite.
Exporting an image to a GPKG performs significantly faster. If the image has intermediate levels, they are exported as well, otherwise the export only writes the base level.
Creating a geometry field in a GPKG table sets the field type to the appropriate flavor of geometry instead of to 'binary', to conform to the GPKG spec and allow creating spatial views.
Attempting to write to a geometry field in a GPKG table rejects values of disallowed geometry types if the field has type restrictions. (Previous versions of the GPKG spec relied on triggers to reject such values, the latest version of the spec requires filtering without triggers, so we do it - this is a good change, much welcome.)
(Fix) Linking an ArcGIS REST server no longer sometimes leaks memory.
End of list.
Next in the plans are improvements to the Select and Transform panes and to the previews.