2021r1
Xojo 2021 Release 1, with over 250 changes and improvements, was released on March 31st, 2021.
Also be sure to view 2021r1.1 Release Notes for improvements.
Major changes include:
Xojo IDE is now native on Apple Silicon Macs.
XojoScript now supported on Apple Silicon Macs.
macOS 11 SDK now used for both Intel and Apple Silicon builds.
iOS apps now use iOS SDK 14.
SF Symbol toolbar icons on Big Sur.
Graphics.Translate, Rotate, SaveState and RestoreState available in Desktop projects.
New WebLocation class.
New iOS UserAuthentication class.
Much faster JSON processing.
Many IDE improvements.
Worker improvements, including native Apple Silicon helper apps.
WebFileUploader optimized to improve speed, memory and CPU usage.
PDFGraphics improvements.
Numerous Code Editor and Autocomplete improvements.
SQLite updated to 3.34.1.
172 bug fixes!
Bug fixes (175 cases)
Case |
Area |
Description |
---|---|---|
Build |
Building just a Universal app with Show Built apps in Finder/Explorer enabled in Preferences now displays the window with the Universal app selected, rather than the root build folder. |
|
Build |
Fixed a timing issue that could sometimes prevent Worker Helpers from quitting themselves if their main app was terminated. |
|
Build |
Using dot notation in Project Items to Include now properly includes all items, not just the top-level item. |
|
Build |
The project now builds correctly if its Worker was removed after the project had been previously built with the Worker. |
|
Build |
Selecting a compile error from the Errors pane in a project that has a Worker now properly takes you to the code item in the project. |
|
Crashes & Assertions » Crash |
Adding a class or module to a project and immediately undoing that add now clears the command bar. |
|
Crashes & Assertions » Crash |
Fixed a crash which occurred when pasting text into the code editor on Windows and the last word in the pasted text matched and autocomplete phrase. |
|
Crashes & Assertions » Crash |
Reduce possibility of a NilObjectException when handling a button press in WebMessageDialog. |
|
Crashes & Assertions » Crash |
Using a dual color ColorGroup on macOS < 10.14 no longer crashes. |
|
Crashes & Assertions » Failed Assertion |
Fixed a crash when toggling off a breakpoint. |
|
Crashes & Assertions » IDE Unhandled Exception |
Project items can no longer be named any of the 24 reserved MS-DOS filenames: AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0, CON, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0, NUL, PRN |
|
Crashes & Assertions » IDE Unhandled Exception |
Trying to edit a string in the debugger no longer crashes the IDE if one of the two fields needed for the editor couldn't be initialized. |
|
Crashes & Assertions » IDE Unhandled Exception |
The IDE no longer crashes if a sound file on disk is deleted without removing it from the project and then the project is run or built. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fix a potential crash when bringing the IDE to the foreground. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a potential crash when double-clicking the inline editing button on a control. |
|
Crashes & Assertions » IDE Unhandled Exception |
Fixed a possible crash when Undoing to something that no longer exists. |
|
Crashes & Assertions » IDE Unhandled Exception |
Prevent a NilObjectException that could occur in some circumstances when clearing internal caching. |
|
Database Plugins » MySQL |
MySQLCommunityServer.BeginTransaction no longer raises a DatabaseException with syntax error. |
|
Database Plugins » PostgreSQL |
Added PostgreSQLDatabase.Connect(additionalOptions As String). This function throws an exception on error. |
|
Database Plugins » SQLite |
After an invalid ExecuteSQL/SelectSQL raises an exception, subsequent valid calls no longer raises the same exception. |
|
Debugger |
Window (Desktop) and MobileScreen (iOS) debugger contents list can now be sorted by name. |
|
Framework » All |
RectControl.AcceptMacDataDrop is now marked as deprecated in the framework. |
|
Framework » All |
JSONItem.Value now accepts values from Integer.ToText without erasing the JSONItem contents. |
|
Framework » All |
PDFDocument.Graphics.FontAscent works now as expected without needing to draw some text if first place |
|
Framework » All |
SMTPSecureSocket no longer produces deprecation warnings. |
|
Framework » All |
Graphics.DrawPath: now throws a NilObjectException if path is Nil. |
|
Framework » All |
Deprecated MemoryBlock.Short and UShort to Int16Value and UInt16Value respectively. |
|
Framework » All |
Fixed a precision issue with currency values retrieved when iterating a RowSet. |
|
Framework » All |
An array that exceeds 2GB of allocation space no longer crashes or causes corruption when assigning/retrieving values from it. While you can allocate more than 2GB of space now, you should check the bounds to make sure it got allocated properly. When using Redim/ResizeTo, the function will throw an OutOfMemoryException if the memory could not be allocated. |
|
Framework » All |
Deprecated SelectFolder, use FolderItem.ShowSelectFolderDialog instead. |
|
Framework » All |
Currency.FromString no longer raises a failed assertion when the string is incorrectly formatted for currency conversion. |
|
Framework » All |
Do not allow a Worker to be added to a Window. |
|
Framework » All |
Now FolderItem.Name keeps the old file name when the new one can 't be set. |
|
Framework » All |
These previously deprecated items are now shown by Analyze Project: OpenPrinterDialog -> PrinterSettings.ShowPrinterDialog, OpenPrinter -> PrinterSettings.OpenPrinter, OpenURLMovie -> Movie.OpenURL, RGB -> Color.RGB |
|
Framework » All |
Now supports Declares that references the same function that exists in multiple shared libraries. |
|
Framework » All |
Marked SMTPSecureSocket.SMTPConnectionMode as deprecated with SMTPConnectionType as replacement. Changed PopupMenu.Text deprecation replacement to SelectRow. |
|
Framework » All |
Soft Declares that reference the same function, that exists in multiple shared libraries, now works correctly. |
|
Framework » All |
PDFDocument: Fixed X/Y coordinates so it takes into consideration the PenSize value when drawing Rectangles and Ovals. |
|
Framework » All |
Changed the order of drawing in PDF Rectangle, so it produces the same output that when using the regular Graphics class with a LineDash pattern. |
|
Framework » All |
Fixed PDFGraphics.DrawOval/FilledOval combined with a LineDash pattern. Remarks: the output is approximated over the one we get using regular Graphics context when drawing a Circle instead of an Oval. |
|
Framework » All |
XojoScript: added some missing Error enumeration values: UnresolvedTypeInExpression = 211 PairOperatorUnavailable = 212 ObjCDeclaresPlatform = 213 FunctionTooLong = 300 FunctionUsesTooMuchStackSpace = 301 |
|
Framework » All |
PDFDocument: Using Zapf Dingbats as the font now properly renders the text. |
|
Framework » Desktop |
PDFDocument.TextWidth now returns the expected value for the selected font also on Web. |
|
Framework » Desktop |
PDFDocument: Fixed the FontAscent and FontHeight values when a new FontSize is set. |
|
Framework » Desktop |
PDFDocument: Fixed a bug where setting the FontName to System wasn't drawing the text. |
|
Framework » Desktop |
Fixed returning TextHeight value when using the wrapwidth parameter (regression). |
|
Framework » Desktop |
Linux: SaveFileDialog now correctly returns a FolderItem with the proper file extension appended to the name (according to the filter selected). |
|
Framework » Desktop |
The SearchField.KeyUp and KeyDown events have been removed. |
|
Framework » Desktop |
SearchField doesn 't fire the TextChanged event when it gets the first focus. |
|
Framework » Desktop |
Removed KeyDown/KeyUp event handlers from SearchField on Desktop. |
|
Framework » Linux |
When Normalize Control Size is enabled, non-Xojo windows are no longer incorrectly adjusted, especially GtkEntry widths. |
|
Framework » Linux |
HTMLViewer now correctly triggers focus events when it gains/loses focus. |
|
Framework » Linux |
With Normalize Control Sizes enabled, we no longer constantly probes theme changes. So a layout with many controls on the window no longer runs super slow. |
|
Framework » Linux |
URLConnection: getting the ResponseHeader, after SendSync is called, no longer raises an Exception. |
|
Framework » Linux |
FolderItem.Name only is set on Linux if there is not an already existing file with the same name. |
|
Framework » Web |
Added WebListbox.Selected setter method. |
|
Framework » Web |
WebUploadedFiles now have the mime type that was supplied by the user's OS/Browser. |
|
Framework » Web |
WebListbox.Selected is available again. |
|
Framework » Web |
Setting the WebListbox.SelectedRowIndex in the same event loop as adding the row data now works. |
|
Framework » Web |
WebButton OK & Cancel events fired by the RETURN and ESC keys now only fire once. |
|
Framework » Web |
favicon.ico no longer returns a 404 Not Found response to the browser. |
|
Framework » Web |
Changing properties and adding/removing dataasets on a WebChart will now force the control to update. |
|
Framework » Web |
The WebFileUploader logic has been refactored to make it faster, less CPU and memory intensive and less prone to errors. |
|
Framework » Web |
WebDatePicker now automatically closes when the user chooses a date. |
|
Framework » Web |
InitialValue property for WebComboBox, WebListBox, WebRadioGroup now shows the multi-line edit pencil icon to open the larger editor after a project has been saved and re-loaded. |
|
Framework » Web |
WebRadioGroup: AddRow, AddRowAt, RowAt, RowCount, SelectedRow and SelectedRowIndex have been deprecated and replaced with Add, AddAt, ItemAt, Count, SelectedItem and SelectedIndex respectively to match other non-list control treatment. |
|
Framework » Web |
Web GotFocus and LostFocus events now fire correctly for keyboard and mouse events. |
|
Framework » Web |
Showing a WebDialog now refreshes all controls to make sure they are up to date. |
|
Framework » Web |
WebListbox now refreshes properly when the container it is on becomes visible. |
|
Framework » Web |
WebListbox.ColumnSortDirectionAt is now updated when the user clicks a header to change the sort order of a column. This change only applies to WebListboxes that are not connected to a datasource. |
|
Framework » Web |
WebCombobox no longer shows HTML encoding of < > & ' and * in its text field when the item is selected from its menu. |
|
Framework » Web |
WebPopupMenu.SelectedRowIndex and LastAddedRowIndex now have a value of -1 by default. |
|
Framework » Web |
Web apps now do a better job of cleaning up their temporary directories between runs. |
|
Framework » Web |
WebDatePicker now uses the correct date format for non-US browsers. |
|
Framework » Web |
Setting the WebDatePicker's Enabled property to False at runtime will now prevent the popup from appearing as well. |
|
Framework » Web |
WebComboBox.SelectedRowIndex now defaults to -1. |
|
Framework » Web |
The WebSDK docs now include information about the javascript JSONItem class. |
|
Framework » Web |
Web apps now do a better job of cleaning up their temporary files when the app quits. |
|
Framework » Web |
WebComboBoxes which contain items no longer throw an OutOfBoundsException when setting the SelectedRowIndex to -1. |
|
Framework » Web |
Fixed an issue where WebListbox.CellValueAt and CellTagAt was not throwing OutOfBoundsExceptions when the passed row or column index was greater than the number of rows or columns. |
|
Framework » Web |
The web framework no longer chokes on requests > 64K. |
|
Framework » Web |
Setting the value of a WebComboBox which has no menu no longer results in a javascript error. |
|
Framework » Web |
WebListbox.RowTagAt (and other methods which retrieve row data) now return data from the correct row. |
|
Framework » Web |
WebListbox.CellValueAt now stores data in the correct row when one of the columns is sorted in descending order. |
|
Framework » Web |
Refactored the web refresh mechanism to make controls appear all at once instead of one at a time. |
|
Framework » Web |
WebListbox.SelectionChanged now reports the correct selected items when using a datasource. |
|
Framework » Web |
WebSegmentedButton segments can now be disabled. |
|
Framework » Web |
Setting WebListbox.SelectedRowIndex now works properly. |
|
Framework » Web |
WebImageViewers whose picture property is set to None no longer cause compiling to fail. |
|
Framework » Web |
Reduced WebFileUploader upload traffic when the UploadProgressed event is not implemented. |
|
Framework » Web |
ETag headers of web framework assets are now enclosed in quotes as suggested by the RFC. |
|
Framework » Web |
WebListbox.SelectedRowIndex is now updated correctly when the user selects a row in a filtered list. |
|
Framework » Web |
Web Framework now periodically cleans up temporary files. |
|
Framework » Web |
Icons on WebToolbarButtons with menus attached are now vertically aligned with icons on the other types. |
|
Framework » Web |
Non-framework requests with Expect headers are now passed through to HandleURL. |
|
Framework » Windows |
WebKit-based HTMLViewer now respects the user's locale instead of always operating in the English locale. |
|
Framework » Windows |
Windows now appear at the correct scale when opened on a different DPI scaled secondary display (especially if the secondary display was position to the right of the primary display). |
|
Framework » Windows |
Drawing with LinearGradientBrush and RadialGradientBrush now respects the color's alpha channel. |
|
Framework » Windows |
FolderItem.CopyTo exhibits now the same behavior on Windows that on macOS and Linux when copying a Directory to a destination FolderItem. |
|
Framework » Windows |
HTMLViewer (WebKit): no longer steals focus when page loads, this also prevents unnecessarily activating a window. |
|
Framework » Windows |
SearchField for Windows displays now the Hint or Text values in the Layout Editor. |
|
Framework » iOS » Mobile |
Repeatedly playing sounds on iOS no longer crashes the app. |
|
Framework » iOS » Mobile |
The iOS Sound Clone method now returns a valid sound object. |
|
Framework » iOS » Mobile |
The iOS Sound class no longer leaks memory when a sound finishes playing. |
|
Framework » iOS » Mobile |
Fixed some issues which prevented the iOS Associated Domains editor from working properly. |
|
Framework » iOS » Mobile |
RGBSurface: fixed getting/setting pixel color. |
|
Framework » iOS » Mobile |
System.Speak no longer crashes after ~150 uses. |
|
Framework » iOS » Mobile |
3rd Party iOS Plugins no longer have badly formed CFBundleIdentifiers when generating their framework plist files. |
|
Framework » iOS » Mobile |
The name Globals is no longer reserved. |
|
Framework » iOS » Mobile |
iOS Plugins can now access some of the more useful legacy APIs such as REALGetControlBounds, REALGetControlVisible, REALSetControlVisible, REALGetControlEnabled, and REALSetControlEnabled. |
|
Framework » iOS » Mobile |
MobileMoviePlayer.LoadURL now loads HTTP URLs correctly instead of only file URLs. |
|
Framework » iOS » Mobile |
MobileTableCellData now has two new enum values, Info and InfoAndDisclosure, to replace the existing Detail item which unfortunately also shows the disclosure widget. |
|
Framework » iOS » Mobile |
Graphics Width/Height now returns values that account for the base scale factor like on Desktop. |
|
Framework » macOS |
FolderItem: CreationDateTime and ModificationDateTime now reports the correct DateTime instead of potentially being offset by daylight savings. |
|
Framework » macOS |
LinearGradientBrush and RadialGradientBrush now fills the region before the start point on macOS like it already does on Windows and Linux. |
|
Framework » macOS |
Changing a property on the ToolItem class no longer completely destroys the state of the previous item on macOS. |
|
IDE » Auto Complete |
Web control instances now show their icons correctly in the code editor autocomplete menu. |
|
IDE » Auto Complete |
Delegate methods no longer unconditionally match in autocomplete regardless of the typed prefix. |
|
IDE » Auto Complete |
Recordset autocompletes in non-Mobile projects created before 2019r2 again. |
|
IDE » Auto Complete |
Autocomplete works inside RaiseEvent calls again. |
|
IDE » Auto Complete |
Prevent an exception that can occur in autocomplete when selecting an item in the list, dragging the mouse off the list and letting go of the mouse button. |
|
IDE » Auto Complete |
Autocomplete now shows Enumerations on Classes that are inside Modules. |
|
IDE » Auto Complete |
Local variables whose name matches that of an enum somewhere in the framework no longer autocomplete the values of the enum. |
|
IDE » Auto Complete |
Autocomplete now works more consistently in the Method and Event parameters field. |
|
IDE » Auto Complete |
The keyword Try now appears in the code editor autocomplete menu immediately after the keyword End. |
|
IDE » Auto Complete |
The word Default will now appear in autocomplete on Pragma lines. |
|
IDE » Auto Complete |
Exception variables autocomplete properly again. |
|
IDE » Auto Complete |
The keywords Case Else now autocompletes properly. |
|
IDE » Build Automation |
IDE Scripts can now build for both iOS device and simulator. |
|
IDE » Code Editor |
The Wrap In refactorings now apply standard case if the “Autocomplete applies standard case” preference is checked. |
|
IDE » Code Editor |
The Project->Breakpoint->Turn On/Off item is now enabled when debugging. This will toggle the breakpoint on the highlighted code execution line via the menu or shortcut. |
|
IDE » Code Editor |
Fixed typo in Code Editor contextual menu: “Convert invisible ascii characters” now says ASCII. |
|
IDE » Code Editor |
Better calculate gutter line number width so that it doesn't cause the gutter width to fluctuate when a proportional font is used. |
|
IDE » Code Editor |
Refactored how the code editor's contextual help menu chooses which item to show in the language reference so things we have which are common to multiple classes still point to the correct items. |
|
IDE » Code Editor |
Use consistent naming and case for Code Editor contextual menu for Add/Clear Breakpoint and Add/Clear Bookmark. |
|
IDE » FileIO |
The IDE now does a better job of informing the user about license changes and allowing you to back out of a save if saving will change the file format. |
|
IDE » FileIO |
Improved places where text format projects were flipping boolean values between having quotes and not. |
|
IDE » FileIO |
MobileContainer project items are now saved properly for XML projects. |
|
IDE » Find & Replace |
Search & Replace no longer corrupts the declaration of Properties when the text being replaced is in the code editor that appears in the main editing area. |
|
IDE » Inspector |
When setting the name of a property, if the name contains parenthesis indicating it is to be an array property, the Default Value field is now disabled and cleared. |
|
IDE » Inspector |
The text color of the Event Definition parameters field is now correct when the system is in Dark Mode on macOS. |
|
IDE » Inspector |
Inspector bevel button icons are colored correctly again. |
|
IDE » Inspector |
MobileApplication Inspector now shows Default iPhone/iPad Layout instead of Screen. |
|
IDE » Inspector |
In both the Layout Editor and at runtime, dynamic constants used for WebTabPanel tab captions now display the constant's value rather than showing the constant name. |
|
IDE » Inspector |
Fixed an exception that could occur if the user put a control on an iOS layout and then changed its Super to iOSContainerControl. |
|
IDE » Inspector |
Control set indexes can no longer be set to invalid values. |
|
IDE » Language Reference |
The Windows IDE no longer shows URLs which point to the reveal user's temporary folder in a browser. |
|
IDE » Layout Editor |
The layout editor now does a better job of aligning text controls on the text baseline on macOS. |
|
IDE » Layout Editor |
WebSegmentedControl now draws its selected segment in the IDE. |
|
IDE » Layout Editor |
Duplicating a Web control now sets the TabIndex correctly. |
|
IDE » Layout Editor |
Duplicating WebControls now increments tab indexes. |
|
IDE » Layout Editor |
Slider now resizes for vertical orientation in the Layout Editor when height is greater than width. |
|
IDE » Library |
Icons in the library are no longer blurry when dragging the window between low and hi dpi screens. |
|
IDE » Library |
Library group headers no longer show the New Subclass contextual menu. |
|
IDE » Library |
Library icons now correctly switch between dark and light mode. |
|
IDE » Licensing |
IDE no longer invalidates the license when macOS is upgraded. |
|
IDE » Menu Editor |
Looking up dynamic constant values to display in the IDE (in menus, iOS controls) when project build Language is Default is now more reliable. |
|
IDE » Miscellaneous |
IDE Crash Recovery works again. |
|
IDE » Miscellaneous |
Windows System Tray item shows IDE version again. |
|
IDE » Miscellaneous |
Code editor hint for DateTime.ToString is now correct. |
|
IDE » Miscellaneous |
Pressing Return on License Agreement window should now always trigger Accept. |
|
IDE » Miscellaneous |
Fixed a DateTimePicker control bug where it lead to a crash of the IDE under macOS 10.14, when removed from the layout and, then, the user changed the Time Format between 12/24 hours mode in the System Preferences. |
|
IDE » Miscellaneous |
Prevent a duplicate separator from appearing in the Insert menu with desktop projects on Windows. |
|
IDE » Miscellaneous |
If a dynamic constant is used for the App Name, then use its value as the debugger tab name when the project changes rather than the constant name itself. |
|
IDE » Miscellaneous |
Display localized App name when building so that proper name is displayed when a constant is used for the app name. |
|
IDE » Miscellaneous |
When copying a method or property from the IDE to paste as text outside the IDE, the “as” for the return type of the method or data type of the property is now upper case to match the rest of the code formatting. |
|
IDE » Miscellaneous |
Fixed an infinite loop/crash that could occur when using New Subclass on a control that has a subclass that no longer exists. |
|
IDE » Navigator |
Prevent an IDE crash that can sometimes occur when a project item (usually in a folder or module) that can be displayed in the Library is moved, renamed or deleted. |
|
IDE » Navigator |
Create a proper HiDPI picture for the Navigator drag picture for items that belong to a project item, such as methods, properties or controls. |
|
IDE » Navigator |
Dragging a WebDialog in the Navigator no longer shows an oversized drag image. |
|
IDE » Navigator |
WebChart, WebImageViewer and WebLocation control instances now have the correct icons in the navigator. |
|
IDE » Navigator |
Apple .m4a audio files are now correctly rendered as sound objects instead of MemoryBlocks. |
|
IDE » Navigator |
WebSession.ConfirmMessage, DisconnectMessage and InterruptMessage no longer raise an exception if the values set in the Inspector contain newline/returns. |
|
IDE » Refactoring Tools |
PreparedSQLStatement: SQLExecute and SQLSelect are now properly reported as deprecated when analyzing the project. |
|
IDE » Rendering |
File Type Groups now render correctly in iOS projects. |
Changes (26 cases)
Case |
Area |
Description |
---|---|---|
Build |
Removed 32-bit macOS frameworks from the IDE. |
|
Database Plugins » SQLite |
SQLite has been updated to 3.34.0 |
|
Database Plugins » SQLite |
The SQLiteDatabase.ShortColumnNames property is now deprecated. |
|
Framework » All |
Added NetworkInterface.Name that identifies the human readable name of the interface adapter. |
|
Framework » All |
Added JSONItem.LastRowIndex |
|
Framework » All |
Added Graphics.Outline property for drawing Text outlines instead of being filled. |
|
Framework » All |
JSONItem now uses dictionaries and ParseJSON and GenerateJSON under the hood. |
|
Framework » All |
JSONItem now uses ParseJSON and GenerateJSON under the hood. |
|
Framework » All |
Calling PDFDocument.AddFonts is not needed anymore in order to use any font installed in the System. |
|
Framework » All |
Increased contrast on the DateTimePicker when displayed in graphic mode on macOS, so the selected date is more visible against the background in DarkMode. |
|
Framework » All |
Improved paragraph interline in PDFDocument at any font size. |
|
Framework » All |
MenuItem.Enable has been deprecated with a replacement of MenuItem.Enabled. |
|
Framework » All |
JSONItem Names, NameAt and HasName have been deprecated in lieu of Keys, KeyAt and HasKey respectively. |
|
Framework » Desktop |
Added PDFGraphics.Outline to PDFDocument so it can render text in outline mode. |
|
Framework » Desktop |
Added PDFGraphics.ClipToRectangle to PDFDocument to provide the same behaviour found in the regular Graphics class. |
|
Framework » Web |
Setting WebDatePicker.SelectedDate to Nil will now clear the field. |
|
Framework » iOS » Mobile |
MobileLocation now raises an event when the authorization state changes. |
|
Framework » iOS » Mobile |
The iOS Sound class now has a Handle method which returns the underlying AVAudioPlayer object. |
|
Framework » iOS » Mobile |
Added System.FontCount, System.LastFontIndex and System.FontAt for iOS. |
|
Framework » macOS |
Toolbar.Handle on macOS now returns an NSToolbar object pointer instead of returning 0. |
|
Framework » macOS |
Toolbars on macOS Big Sur are now in the Expanded style by default to better match previous behavior. |
|
IDE |
iOS apps now build against the iOS 14.4 SDK. |
|
IDE » Build Automation |
CopyFiles build steps with a destination of Framework now copies those files into the Frameworks directory on iOS. |
|
IDE » Menu Shortcut Editor |
Some menu cleanup: * Removed incorrect Insert->Module M shortcut from user Menu Editor. * Added Insert->Worker so it appears in user Menu Editor. * Added Shortcut for Project->Breakpoint->Ignore All (Opt/Alt + Cmd/Ctrl + Shift + \) * Added Shortcut for Insert->Computed Property (Opt/Alt + Cmd/Ctrl + Shift + P) |
|
IDE » Navigator |
When converting a property to a computed property, holding down the SHIFT key will cause only the getter to be implemented, effectively making the property read-only. |
|
Installer |
macOS DMG background and application folder now use the updated icon. |
New items (24 cases)
Case |
Area |
Description |
---|---|---|
Build |
When building macOS projects that contain a Worker, ARM builds now include ARM worker helpers and Universal builds now include Universal worker helpers. |
|
Build Process (GoCD) |
IDE is now built as a Universal Binary on macOS. |
|
Compiler |
XojoScript is now supported for macOS arm64 builds. |
|
Framework » All |
Graphics: ClipToRectangle, Translate, Rotate, SaveState and RestoreState are now available for Desktop/Console apps. ClipToPath now works for Desktop apps. Also added Scale method for Desktop/Console/iOS that affects the current transformation matrix. |
|
Framework » All |
JSONItem now supports arrays when directly converting from a Dictionary. |
|
Framework » All |
Added multiple page sizes for PDFDocument, so now it is possible creating a PDF document composed with several pages of different sizes, using for that the overloaded method NextPage(w As Integer, h As Integer). |
|
Framework » All |
Added ToData() As MemoryBlock method on PDFDocument class, so the user can retrieve the PDF document contents. |
|
Framework » Desktop |
GotFocus/LostFocus events implemented for SearchField control on Desktop. |
|
Framework » Desktop |
GotFocus/LostFocus events implemented for DateTimePicker control on Desktop. |
|
Framework » Mobile |
Added MobileApplication.BuildDateTime |
|
Framework » Web |
Added WebLocation control. |
|
Framework » Web |
Added a command line parameter named urllength which allows you to increase the maximum length of a request URL from the default of 256 with a hard limit of 2048 bytes. |
|
Framework » iOS » Mobile |
JSONItem is now available in iOS projects. |
|
Framework » iOS » Mobile |
Added UserAuthentication class to iOS framework for biometric authentication. |
|
Framework » iOS » Mobile |
iOSMobileTable.Formats now has a third value called InsetGrouped which adds support for UITableViewStyleInsetGrouped on iOS 13 and above. Earlier versions of iOS will still use the value for Grouped. |
|
Framework » macOS |
System.FontCount and System.FontAt on macOS now include font family members. |
|
IDE » Code Editor |
The ReformatCode script context has four new methods: - LoadDate() as String which returns a SQLDateTime of when the script was last loaded - SetStoredValue(key as String, Value as Boolean/Double/Integer/String) which stores a value which persists across script runs and reloads. - GetStoredValue(key as String, DefaultValue as Boolean/Double/Integer/String) as Boolean/Double/Integer/String which retrieves a stored value. - ClearStoredValues() which clears the persistent data store. |
|
IDE » Code Editor |
In the Code Editor, the error indicator is given priority over the warning indicator when a line has both and error and a warning. In addition, the Code Editor error icon now matches the icon used in the Error panel. |
|
IDE » FileIO |
The IDE now follows Windows shortcuts when loading plugins. |
|
IDE » Inspector |
Worker ProjectItemsToInclude can now be separated by spaces and commas (in addition to EndOfLine that was already supported). Duplicate entries and extra spaces are now ignored. |
|
IDE » Layout Editor |
Inline text editor now selects all text when it is initially opened. |
|
IDE » Miscellaneous |
Added Project->Back and Forward menu items to match toolbar and allow shortcut keys (Cmd/Ctrl-[ and Cmd/Ctrl-]). |
|
IDE » Miscellaneous |
New console projects now automatically have the App.Run event added. |
|
IDE » Navigator |
The macOS target is no longer selectable for building on Windows & Linux. |
Docs and examples (54 cases)
Case |
Area |
Description |
---|---|---|
Documentation » User's Guide |
On UserGuide:Printing page, updated Graphics.StringHeight to use TextHeight. |
|
Documentation » User's Guide |
All references to CGI web apps and the CGI template have been removed. |
|
Examples |
Eddie's Electronics desktop app now catches a KeyNotFoundException that can occur if an invalid MapBox token is provided. |
|
Examples |
Added exception handling to iOS URLConnection example project. |
|
Examples |
Fixed a bug in the PictureResizer example project which only manifested on double-byte systems. |
|
Examples |
Example Project for iOS showing how to use System.FontCount, System.LastFontIndex and System.FontAt on iOS, including text preview with the selected font and size. |
|
Examples |
Improved WordCounter Worker example so that it only accepts text files and added additional text files to increase processing load for a better demo. |
|
Language Reference » Documentation |
Updated SegmentedButton sample code for resizing the control and its segments. |
|
Language Reference » Documentation |
The sample code was fixed to use ExitCode instead of ErrorCode. |
|
Language Reference » Documentation |
Deprecated iOSSQLiteDatabase in the Language Reference. |
|
Language Reference » Documentation |
Updated Arrays doc page with new methods for Add, AddAt, RemoveAt, RemoveAll, LastIndex, FirstIndex. |
|
Language Reference » Documentation |
Added more examples to MobileToolbarButton.Constructor page. |
|
Language Reference » Documentation |
Added missing iOS Graphics methods to docs: ClipToPath, ClipToRectangle, Rotate, RestoreState, SaveState, Translate. |
|
Language Reference » Documentation |
Updated Arrays doc page to indicate that the array methods Count, FirstIndex, IndexOf and LastIndex all technically return Int32. |
|
Language Reference » Documentation |
Clarified DeviceData and System.Device doc pages. |
|
Language Reference » Documentation |
Updated UserGuide:Collections_of_Data page to use new array methods and fixed a type of “ReVar” to be “ResizeTo”. |
|
Language Reference » Documentation |
Graphics.Transparency page now indicates it works with desktop, web and console projects. |
|
Language Reference » Documentation |
Fixed See Also links on JSONItem page. |
|
Language Reference » Documentation |
Added missing parameter to WebPopupMenu.SelectionChanged event page and fixed example code. |
|
Language Reference » Documentation |
Fixed examples on PrinterSetup.OpenPrinter. |
|
Language Reference » Documentation |
Added PopupMenu.SelectedRow page as replacement for SelectedRowValue, which was previously deprecated. |
|
Language Reference » Documentation |
Fixed deprecation link on Application.SleepCurrentThread page. |
|
Language Reference » Documentation |
Fixed sample code on PrinterSetup.Settings doc page. |
|
Language Reference » Documentation |
Added copy Constructors for Date and DateTime to DateTime language reference page. |
|
Language Reference » Documentation |
Cleaned up incorrect mentions of String.Join in docs, which should instead be String.FromArray. |
|
Language Reference » Documentation |
Updated MobileTextField.BorderStyle with a note to indicate that any BorderStyle other than Rounded makes the TextField content background transparent. |
|
Language Reference » Documentation |
Fixed a couple typos in the sample code on the SMTPSecureSocket page. |
|
Language Reference » Documentation |
StyledTextPrinter throws now an UnsuportedOperationException on Windows. |
|
Language Reference » Documentation |
MediaWiki cannot handle the / character as a page link, so the / (division) links now go to a page called Division. |
|
Language Reference » Documentation |
The documentation for SSLSocket now includes the methods EndOfFile, Flush, Read and Write as it supports the Readable and Writable interfaces and they are apart of those interfaces. |
|
Language Reference » Documentation |
Updated Report.Run page to not use deprecated methods. |
|
Language Reference » Documentation |
Updated TextUnit pages on PushButton, ListBox, BevelButton to indicate it is now deprecated for FontUnit. |
|
Language Reference » Documentation |
Label doc page updated to use Text property instead of deprecated Value property. |
|
Language Reference » Documentation |
WebLink.URL page no longer mentions MouseUp event which is not available in Web 2.0. |
|
Language Reference » Documentation |
The WebHTMLViewer page now has an entry to the Print method in the Methods section. |
|
Language Reference » Documentation |
Clarified what gets called with Return True and Return False on MouseDown event page. |
|
Language Reference » Documentation |
Graphics.DrawRectangle page now refers to points rather than pixels in sample code. |
|
Language Reference » Documentation |
Graphics.DrawOval page now uses PenSize property. |
|
Language Reference » Documentation |
Graphics.PenHeight doc page marked as deprecated. |
|
Language Reference » Documentation |
The Integer.FromString code example has been updated to catch the appropriate exception (InvalidArgumentException). |
|
Language Reference » Documentation |
Updated UserGuide:Conditional Compilation page to use TargetWindows instead of deprecated TargetWin32. |
|
Language Reference » Documentation |
Fixed link to User Guide on Window.Type doc page. |
|
Language Reference » Documentation |
Added Text and Auto data types as de-emphasized on Deprecations page. |
|
Language Reference » Documentation |
Removed unnecessary ColumnType table from ListBox.ColumnsWidths doc topic. |
|
Language Reference » Documentation |
Fixed typo in name on ListBox.SelectedRowCount page. |
|
Language Reference » Documentation |
Fixed a leftover usage of Dim on the Var doc page. |
|
Language Reference » Documentation |
TextEdit.Format page now links to ValidationMask page. |
|
Language Reference » Documentation |
ListBox.ActiveTextControl description now mentions both TextArea and TextField. |
|
Language Reference » Documentation |
SQLiteDatabase now says it's available for iOS in the Language Reference. |
|
Language Reference » Documentation |
Color.FillColor is now documented as Desktop only. |
|
Language Reference » Documentation |
Fixed documentation for WebApplication.SessionTimeout. |
|
Language Reference » Documentation |
The TrayItem Action Event example code has been fixed so that it now compiles. |
|
Language Reference » Documentation |
Updated sample code on Window.KeyDown page to fix typo. |
|
Language Reference » Documentation |
Fixed link to UserGuide:Image Set Editor on Picture doc page. |