2019r3 Release Notes

From Xojo Documentation

Xojo 2019 Release 3 is now available with over 100 changes and improvements, focusing on iOS.

Major changes include:

  • iOS
    • iOS 13 Dark Mode support (Color Groups).
    • iOS Blur effects using iOSRectangle.
    • iOS SF Symbol image access.
    • iOS Text Area border settings.
  • Other
    • SQLite has been updated to 3.29.0.
    • ListBox iterators.
    • String improvements.
    • DateTime improvements.
    • System.VersionData class for getting OS version information.

Release Notes

Bug Fixes (45 cases)

Case Area Description
57919 Compiler WebSession no longer gets a deprecation warning about Append being changed to AddRow.
58362 Compiler FolderItem.Launch deprecation warning now points to FolderItem.Open.
55867 Crashes & Assertions » Crash Windows: Updated WebKit based HTMLViewer to CEF 77.1.14+g4fb61d2+chromium-77.0.3865.120
which fixes issue with cefsubproc.exe child processes being left around when app terminates abnormally.
57678 Crashes & Assertions » Crash No longer randomly crashes when closing a Window (the crash was dependent on where the Window was being Closed, and how the controls were being destructed in user code, so in most cases this was not an issue).
57512 Crashes & Assertions » IDE Unhandled Exception Fixed an issue with IDE Automation which could result in an IDE crash in certain circumstances.
58090 Crashes & Assertions » IDE Unhandled Exception Loading text file projects that try to access external items that may not be accessible should no longer raise an unhandled IOException.
58398 Crashes & Assertions » IDE Unhandled Exception Failed Xojo Cloud deployments no longer crash the IDE.
58458 Crashes & Assertions » IDE Unhandled Exception Fixed an issue which caused external items' internal file representation to get corrupted when the project containing the item was saved.
58403 Database Plugins » SQLite Setting up a BooleanValue for a DatabaseRow no longer leads to crashes or always returning False.
55586 Framework » All Windows/Linux: Floating windows that host a MenuBar now get a chance to handle the MenuItem instead of the parent document window that the floater may have been opened from.
57751 Framework » All Join is now marked as deprecated, with String.FromArray as its replacement.
58217 Framework » All Deprecated Graphics.ClearRect in favor of Graphics.ClearRectangle.
58328 Framework » All The ComboBox.Hint string that is setup in the IDE inspector is now correctly reflected at runtime, instead of having to set the Hint in code for it show up.
58342 Framework » All Calling IsEventImplemented with an event name that doesn't exist no longer crashes the IDE.
58352 Framework » All ToolbarItem/ToolbarButton no longer generate deprecation warnings
58391 Framework » All Window.Types.GlobalFloating enum value now returns 7 instead of 9.
58472 Framework » All Listbox.CellCheckBoxStateAt now uses the newer CheckBox.VisualStates enum.
55120 Framework » Linux Closing a modal window no longer prevents app from properly terminating
57404 Framework » Linux HTMLViewer.Print no longer crashes, now presents the print dialog.
58017 Framework » Linux Listbox: clipping the graphics in the CellTextPaint or CellBackgroundPaint events now correctly clips the graphics instead of potentially clipping past the content area
58254 Framework » Linux Changing the Label TextColor no longer leaks memory.
58331 Framework » Linux SerialConnection.Handle no longer always returns 0 on Linux/Pi.
52188 Framework » Windows Changing a SubMenu's Text now works correctly for 32-bit builds.
52346 Framework » Windows Console apps: Unhandled exceptions that occur on a separate thread now raise the App.UnhandledException event properly on Windows.
57430 Framework » Windows GroupBox no longer draws border line incorrectly when the caption font size is smaller/larger than the default.
58292 Framework » Windows The app now properly terminates when the system sends us a shutdown message. Previously we only closed the windows but the app would still be running in the background.
58373 Framework » Windows Graphics: DrawCautionIcon, DrawNoteIcon and DrawStopIcon have been updated to render with a newer look as seen on Vista or newer
44100 Framework » iOS iOSTable.RowCount method now raises an OutOfBoundsException when the supplied section does not exist.
58435 Framework » iOS iOSGraphics.LineColor is no longer changed to FillColor after calling DrawTextBlock.
32055 IDE » Auto Complete Removed Ptr.Object, String, Text and Variant from docs and auto-complete as they were never supported by the compiler.
58367 IDE » Auto Complete Deprecated System.GetNetworkInterface and replaced with NetworkInterface to match API 2.0 naming and current docs.
55467 IDE » Code Editor Code editor scrolls horizontally earlier to better keep the cursor on-screen.
57797 IDE » Code Editor When splitting a single-line If statement to multiple lines, set the case for the Else and End If parts based on user settings and the case of the initial If.
58174 IDE » Code Editor Super-Returns on lines which begin with "rem" but are not a comment line no longer auto-insert "REM" on the next line.
58201 IDE » Code Editor IsEventImplemented now shows a code hint in the code editor.
58356 IDE » FileIO Fixed typo in Save As warning message.
58409 IDE » FileIO IDE no longer corrupts External Item internal paths when saving them.
56454 IDE » Graphics Inspector textfields should now all update correctly between light and dark mode.
58386 IDE » Inspector Properties whose names contain uppercased acronyms no longer get split incorrectly.
57748 IDE » Miscellaneous FileTypeGroup editor no longer accepts spaces in the Name field.
57820 IDE » Miscellaneous Do not display the default working path as the Shared Build Setting Destination when it is in fact Nil.
58397 IDE » Navigator Attribute badges stay visible on code items again.
56620 IDE » Refactoring Tools Interfaces whose methods have attributes get the correct names again when applied to a class.
58072 IDE » Tab Order Editor Tab Order editor now shows the contents of the Value property if it is present.
58407 IDE » Toolbar Editor Toolbar editor background no longer changes color when dragging items in dark mode.

Changes (15 cases)

Case Area Description
58449 Build The BlurContent parameter has been removed from iOSRectangle.SetEffect.
56258 Framework » All Added ColorGroup project item, initially only for iOS projects.
57665 Framework » All System version information is now available from Xojo.System.Version on iOS and System.Version on other platforms.
57673 Framework » All ColorGroups will now automatically produce fallback colors on versions of iOS which don't support a named color.
57736 Framework » All Added more descriptive exception error message when Variant to Date conversion fails.
58063 Framework » All Deprecated VirtualVolume class, FolderItem.CreateVirtualVolume and FolderItem.OpenAsVirtualVolume.
58318 Framework » All Added MessageDialog.IconType and IconTypes enum to replace Icon and constants (GraphicNone, GraphicCaution, GraphicNote, GraphicQuestion, GraphicStop).
57664 Framework » iOS Color.IsDarkMode is now available on iOS.
57581 IDE » Auto Complete Autocomplete is now disabled inside string literals.
57627 IDE » Constant Editor Disabled spell checking in the Constant editor.
57727 IDE » Language Reference Windows IDE: Language Reference HTMLViewer now uses the WebKit renderer to resolve some drawing issues.
58106 IDE » Layout Editor iOSSegmentedControl now renders like iOS 13 in the layout editor.
56711 IDE » Miscellaneous When using CMD/Control-O on the Project Chooser window to choose an existing project, the Project Chooser window is now closed after making the selection. Additionally, the File->New menu item now stays enabled when the Project Chooser window is open. If File->New is selected when the Project Chooser window is already open, perhaps in the background, then the Project Chooser is brought to the front.
57538 IDE » Preferences Preferences no longer offers "REM" without a trailing space as a comment prefix because it causes compile errors.
56733 Reporting You can now use Report.Run with a RowSet as its data source.

New Items (16 cases)

Case Area Description
57806 Database Plugins » SQLite SQLite has been updated to 3.29.0.
38001 Framework » All Added Boolean ToString and FromString support.
56475 Framework » All Added Listbox.Rows to iterate through all the rows of a Listbox. This includes:

ListboxRow class - Columns (also iterable returning ListboxColumn) - Selected As Boolean - Tag As Variant ListboxColumn class - Value As String - Tag As Variant - Type As CellTypes

56591 Framework » All Added String.IsEmpty method.
56756 Framework » All Added String.AscByte, ChrByte, SplitBytes as replacements for deprecated AscB, ChrB and SplitB. Added String.LeftBytes, RightBytes, MiddleBytes, IndexOfBytes to replace LeftB, RightB, MidB and InStrB.
57695 Framework » All Added DateTime.IsDaylightSavingsTime (read-only) to determine whether the DateTime is in daylight savings time or not.
57804 Framework » All You can now subtract two DateTime values and get back a DateInterval using the - operator.
57876 Framework » All Added Operator_Convert methods so you can convert a Date to a DateTime and a DateTime to a Date.
57937 Framework » All DateTime: added new ToString function that accepts a format string according to these guidelines:
55947 Framework » iOS Added support for SF Symbols in the iOS framework. Images can be retrieved using the iOSImage.SystemImage shared method.
56303 Framework » iOS iOS Framework now supports dark mode.
58334 Framework » iOS iOSTextArea has new BorderStyle and BorderColor properties to make it easy to create rectangular and rounded borders.
58497 IDE » ColorGroup Editor ColorGroup swatches now have Copy & Paste contextual menus to help with interoperability with other design tools. Copying a color will give you the HTML hex version of a color. Pasting supports 3, 6 and 8 digit HTML colors as well as Xojo color literals.
58013 IDE » Error & Warning Panel Force Errors to always appear before Warnings when analyzing project.
57117 IDE » Miscellaneous Re-organized Help menu, added Support menu item, made text clearer, and added appropriate accelerator characters.
54935 IDE » Refactoring Tools Pressing SHIFT-RETURN on a line which contains an Inline IF statement now converts it to a multi-line If-Then-Else statement.

Docs and Examples (34 cases)

Case Area Description
57787 Documentation IDE Script IO Page now shows LoadText method (previously it was incorrectly called ReadText).
57150 Language Reference » Documentation Links to pages with error codes from various supported databases have been added to this page.
57702 Language Reference » Documentation The sample code has been updated to more clearly explain the concept of AddRowAt.
57706 Language Reference » Documentation The TabPanel.FontSize page has been added.
57726 Language Reference » Documentation The error codes on the SerialConnection page now refer to the Error event and exception.
57729 Language Reference » Documentation On FolderItem page, switched usage of LastErrorCode to a Try…Catch block.
57745 Language Reference » Documentation Updated pages for FolderItem.CopyFileTo, For...Next, Pop, RectControl.AcceptFileDrop, and RectControl.DragEnter to use IsFolder.
57747 Language Reference » Documentation DatabaseRow.ColumnAt now shows String as the return type.
57750 Language Reference » Documentation Fixed sample code on ListBox.ColumnSortTypeAt page.
57757 Language Reference » Documentation Doc page for SQLiteBLOB.EOF now notes that replacement is EndOfFile.
57758 Language Reference » Documentation Fixed several typos in one of the examples.
57761 Language Reference » Documentation Fixed typos in the Pop entry examples.
57763 Language Reference » Documentation Updated iOSSQLiteDatabase.SQLSelect page notes to show how to pass NULL as a parameter.
57775 Language Reference » Documentation Removed the UI update example from Thread.Run and replaced it with references to the new AddUserInterfaceUpdate and UserInterfaceUpdate members.
57776 Language Reference » Documentation Updated the notes for Thread.Resume to indicate that the matching method is now Pause rather than Suspend.
57778 Language Reference » Documentation DatabaseColumn.DateTimeValue page now correctly shows that a DateTime variable should be used.
57784 Language Reference » Documentation GraphicsPath page now has See Also links to Graphics.DrawPath and FillPath.
57786 Language Reference » Documentation Updated doc page for ListBox.DragRow to show correct way to have multiple drag items.
57794 Language Reference » Documentation The database code examples on the Moving to API 2.0 page have been fixed to correctly return the value and close the RecordSet/RowSet.
57838 Language Reference » Documentation SerialConnection.Connect no longer returns a Boolean value, it should throw an exception on error.
57887 Language Reference » Documentation Currency.FromText page more clearly notes that it uses Xojo.Core.Locale.
57908 Language Reference » Documentation Updated WebTimer.Mode sample code to use Timer.ModeSingle rather than non-existent WebTimer.ModeSingle.
57918 Language Reference » Documentation Sample code on SerialConnection page now uses Connect method instead of deprecated Open method.
57986 Language Reference » Documentation Timer page now has links to CallLater and CancelCallLater methods, along with corresponding TimeCallLater and TimerCallLaterWithValue delegates.
58015 Language Reference » Documentation ConsoleApplication.DoEvents sample code and description now uses RunMode and Run.
58016 Language Reference » Documentation Added information to InStr doc page deprecation warning to note that IndexOf replacement is 0-based.
58024 Language Reference » Documentation Add a note to MessageDialog to warn against using it for debugging purposes.
58030 Language Reference » Documentation Added Ptr.Structure to Ptr doc page.
58039 Language Reference » Documentation PopupMenu page notes now mention constant NoSelection (-1) which can be used to indicate no rows are selected.
58170 Language Reference » Documentation Sample code on System.FontCount and System.LastFontIndex pages now uses correct MenuItem.AddMenu function.
58329 Language Reference » Documentation Corrected method signature for Datetime.AddInterval.
58341 Language Reference » Documentation Clarified prepared statement parameter identifiers for SQLite on Database.SelectSQL page, added parameter table to Database.ExecuteSQL page and made usage of terms more consistent.
58344 Language Reference » Documentation Fixed sample code on TimeZone page.
58481 Language Reference » Documentation Removed doc pages for FolderItem properties that were removed in 2019r2, such as MacFSRef, MacCreator, etc.