2019r2.1

Released on November 20th, 2019.

This release has important improvements to Xojo 2019r2.

Notable changes:

  • DatabaseRow.Column now returns a DatabaseColumn which can be used to obtain and set the column values. Other column methods have been removed.

  • Events have been reverted back to their pre-r2 names to make it easier to move between 2019r2.1 and prior versions. The IDE will automatically change any API 2.0 events back to the prior names when a project is loaded. If there are two events with the same purpose in a project (such as Open/Opening) they will be left alone so you can review the code and remove the now-unneeded additional event. You will need to adjust code that is moved from Toolbar.Pressed and Toolbar.MenuSelected back to Action and DropDownMenuAction due to different event parameter names.

  • Deprecations with replacements no longer show warnings by default. When you want to see the API 2.0 deprecations warnings for a specific project, go to Project->Analysis Warnings and select "Item1 is deprecated. You should use Item2 instead.".

Bug fixes (51 cases)

Case

Area

Description

57875

Compiler

RemoveAllRows no longer crashes in certain circumstances, for example when referenced as a Window property using Self.Array.RemoveAllRows.

57901

Compiler

Analyze project now reports Ubound(array) syntax as deprecated.

57998

Crashes & Assertions » IDE Unhandled Exception

IDE Database Editor no longer throws exceptions when dropping table columns.

58212

Crashes & Assertions » IDE Unhandled Exception

IDE no longer crashes when building the SuperClass contextual menu for a 3rd partly plugin control.

58076

Database Plugins

RowSet.RowCount now raises an UnsupportedOperationException if getting the row count is not supported by the database (instead of returning -1).

57914

Database Plugins » MySQL

MySQLCommunityServer: LastInsertedID is now LastInsertedRowID as documented.

58029

Database Plugins » ODBC

ODBCDatabase no longer leaks objects when binding parameters to prepared statements.

57976

Database Plugins » SQLite

RowSet.ColumnAt and RowSet.Column no longer leaks a RowSet object.

57696

Framework » All

Optimized Dictionary in the case where a custom key comparison delegate is used.

57760

Framework » All

Deprecated FolderItem.TrueItem now correctly shows ChildAt as the replacement.

57789

Framework » All

Color picker on 10.15 should no longer subtly change the color when the user doesn't change anything.

57815

Framework » All

Deprecated Picture.Save method now points to overloaded Save replacement.

57817

Framework » All

Deprecated Thread state constants now show corresponding ThreadStates enum value replacement.

57823

Framework » All

Shell controls no longer lose their mode when saving/reloading a project.

57916

Framework » All

Added missing SerialDevice.LastIndex shared property.

57945

Framework » All

SerialConnection.Connect no longer fails to connect.

57948

Framework » All

Picture.HasAlphaChannel is no longer marked as deprecated, also removed IsAlphaChannel.

57960

Framework » All

Optimized FolderItem iteration (when using FolderItem.Children).

57974

Framework » All

ExecuteSQL and SelectSQL no longer creates unnecessary prepared statements if no parameters are passed in. This allows multi-statements to be run.

57979

Framework » All

MSSQLServerDatabase and ODBCDatabase: Creating prepared statements no longer leaks, this also affected ExecuteSQL and SelectSQL.

58008

Framework » All

Added ExecuteSQL to PreparedSQLStatement.

58034

Framework » All

RowSet column values that are date/timestamps are now returned as DateTime instead of the deprecated Date class.

58066

Framework » All

SSLSocket: Error event no longer missing RuntimeException parameter.

58070

Framework » All

Fixed SegmentedButton.RemoveSegmentAt function definition to include an index parameter.

58095

Framework » All

A Variant DateTime to Auto conversion now works instead of raising a failed assertion.

58192

Framework » All

Label Text Alignment constants are now marked as deprecated.

58208

Framework » All

DateTime.FromString is no longer as lenient in how it parses the date/time, i.e. incorrect values will now raise an exception instead of the parser trying to determine if months/days/years should roll over.

58220

Framework » All

No longer leaking Database objects when they go out of scope or are set to Nil.

58317

Framework » All

The value for SSLSocket.SSLConnectionTypes.SSLv23 has been corrected.

55632

Framework » Windows

Webkit based HTMLViewer now renders correctly on a DoubleBuffered ContainerControl.

57603

Framework » Windows

URLConnection no longer consumes 100% CPU while stopped in the debugger (may also affect built apps if one of the URLConnection events takes a long time to complete).

57949

Framework » Windows

URLConnection: If the server is configured to request an optional client certificate, the request no longer fails with an Error event being raised on Windows.

57964

Framework » Windows

Consecutive AddArc drawing now draws at the correct offset and connects with its previous end point.

58025

Framework » Windows

A BevelButton with width/height less than or equal to 0 no longer raises a failed assertion (this could happen in the IDE or at Runtime).

58142

Framework » Windows

Native HTMLViewer.LoadPage now works again instead of displaying an error/cancelation page.

57799

Framework » macOS

Window.ShowModal now correctly repositions the window according to the bounds set.

57865

Framework » macOS

Fix drag handling freeze on older (< 10.12) versions of macOS.

57907

Framework » macOS

SpotlightItem.File no longer raises an UnsupportedFormatException.

57952

Framework » macOS

Passing parameters to FolderItem.Launch now works again.

58143

Framework » macOS

Getting the FolderItem.Parent for Volume roots now returns Nil which matches the behavior of 2019r1.1.

58188

Framework » macOS

Support a few missing folder types when using SpecialFolder.GetFromDomainAndCode. Also if a folder type isn't supported we return Nil instead of always returning a FolderItem that points to ~/Library.

57303

IDE » FileIO

CopyFilesSteps on Windows now work when the application name includes one or more unicode characters.

57710

IDE » FileIO

BevelButton, PopupArrows, and a few other internal plugin controls, now correctly saves and loads the new property changes made in the Inspector.

57897

IDE » FileIO

TextField.HasBorder now saves its value properly.

57803

IDE » Inspector

The IDE no longer crashes on macOS 10.15 when you click on a color swatch in the inspector and then navigate to another control before closing the color picker.

58156

IDE » Inspector

Controls added to a pre-2019r2 project using 2019r2 now transfer their property values correctly to the deprecated properties.

58233

IDE » Inspector

SSL Connection Type property shows in the inspector again for SSLSocket and its subclasses.

58122

IDE » Licensing

License Agreement dialog no longer fails when macOS locale set to UK with 12 hour time format.

46871

IDE » Menu Editor

Menu editor no longer renders items fuzzy at HiDPI scale factors on Windows/Linux.

57634

IDE » Navigator

Converting control set events to API 2 in the navigator now works.

58043

Plugin SDK

Using shared properties and methods on a Plugin Control now compiles correctly instead of raising errors.

Changes (1 cases)

Case

Area

Description

58075

Framework » All

Added an optional parameter to DateTime.Now that lets you specifiy a TimeZone.

New items (5 cases)

Case

Area

Description

56816

Framework » All

Added Window.Controls As Iterable. Use this in a For Each loop to iterate through all the controls on the Window.

57947

Framework » All

Added new methods to FolderItem that will raise exceptions: * CreateAsFolder => CreateFolder * CopyFileTo => CopyTo * MoveFileTo => MoveTo * Launch => Open

58078

Framework » All

Removed duplicate API 2 event names.

58260

Framework » All

DatabaseRow.Column now returns a DatabaseColumn which can be used to obtain and set the column values.

57953

IDE » FileIO

Added compatibility flags for API 1 and API 2 to help when developing libraries which need to have elements specific to old and new APIs.

Docs and examples (3 cases)

Case

Area

Description

58298

Documentation

Updated System Requirements page to note macOS Catalina 10.15 and iOS 13 are supported.

58159

Language Reference » Documentation

Corrected sample code for assigning a value using ODBCDatabase.ConnectionAttribute method.

58222

Language Reference » Documentation

Iterable page now links to Iterator page.