2015r1

(February 17, 2015)

Xojo 2015 Release 1 contains about 150 changes. Some of the more notable new features and changes include:

  • 64-bit iOS Builds

    • iOS builds are now created as Universal Binaries containing both 32-bit and 64-bit parts as required to meet Apple's new App Store submission requirements

  • A new TargetARM constant for conditional compilation

  • IDE improvements, including

    • Preference for Searching

    • 1024x1024 icon sizes

    • Better display of debugger values for pictures and arrays

  • Language improvements

    • Added Parse method to Integer, Double and Single data types

    • SQLite updated to 3.8.8

Bug fixes (127 cases)

Case

Description

19863

All: Fixed a crash when passing a structure array into SortWith.

37833

All: Fixed a memory leak with Xojo.Core.MemoryBlock.

37835

All: Fixed a regression where assigning empty strings to a MemoryBlock would crash.

37674

All: Fixed Array.IndexOf's handling of Auto arrays.

37664

All: Fixed Array.IndexOf's handling of delegate objects.

37093

All: Fixed RuntimeException's CallStack property having an extra Nil element at the end of the array.

32325

All: Fixed shuffling of structure arrays.

33905

All: Optimized sorting an array that is already mostly sorted.

37363

All: String.ToText no longer raises an exception on Windows/Linux if the string is empty.

37811

All: Text.Split no longer raises an assertion if the Text to split is empty. It now returns an empty Array instead.

17059

All: Using IndexOf on a string array where a string starts with NUL byte now works correctly.

37611

All: Xojo.Core.Timer.CancelCall no longer raises an IteratorException.

37871

Cocoa: Fixed a crash with ComboBox.DeleteAllRows.

37201

Cocoa: The ArrowAllDirections mouse cursor now resembles the old Carbon appearance instead of a simple crosshair.

37351

Compiler: Fixed a bug that made ByRef arguments count for overload resolution, which incorrectly marked function calls as ambiguous.

37629

Compiler: Fixed a bug with incremental compilation that resulted in global functions or variables not being counted as a dependency that should force a recompile if they change.

37981

Compiler: Fixed a bug with unsigned integer comparison on iOS and XojoScript.

37616

Compiler: Fixed a crash when trying to get or set a structure property's value via introspection.

37663

Compiler: Fixed a crash with exception handlers when building for iOS devices.

37508

Compiler: Fixed a failed assertion triggered by calling an invalid function.

37567

Compiler: Fixed a failed assertion when compiling a class that has a property that is a large structure.

37500

Debugger: Date values stored in a Variant now show correctly in the debugger.

34555

IDE: A change to a project item name is validated before the contextual menu is shown to you cannot create a class with no name.

28114

IDE: Added missing Help tags for the file types command bar items.

37576

IDE: Added Variant.TypeText to autocomplete.

37041

IDE: Adding a new sqlite database to a project no longer permits using the name “Database”.

13259

IDE: Alt-Shift-Click inserts the name of the item selected in the navigator to the current insertion point in the active code editor.

37581

IDE: Altered reloading an iOSControl so it reloads all saved properties.

37406

IDE: An event that has been implemented can be removed and re-added to a control.

36823

IDE: Auto-layout baselines guides now result in baseline constraints.

21281

IDE: Changed from using JPEG 2000 to PNG for the elements of the ICNS file so that OS X builds done on Windows and Linux properly create the ICNS file.

37564

IDE: Clicking the help item in the toolbar no longer results in a help window with no toolbar configured.

25894

IDE: Closing the last project window will, if set, close the IDE down or simply leave the tray item (as set in preferences).

37570

IDE: COM help reference entries wont be shown on platforms that don't support COM controls.

29017

IDE: Commands like Stop Debugging work even when the Debugger is not the current active tab.

17852

IDE: Copy file steps now directly supports the use of partial paths for the copy file steps subdirectory property.

Note : Partial paths still behave platform specific in some respects. On OS X if you use the colon (:) it will be treated as a /. On Windows if you use / it will be treated as a \.

31436

IDE: Copy paste and drag drop of methods, constants, etc. into external classes now works properly.

37454

IDE: Copy/copy/paste now work with the IDE Script Editor window.

37601

IDE: Copying a group of lines no longer causes an exception when trying to create the backing image.

29272

IDE: Creating a new control set from a selected group of similar controls now works properly.

37613

IDE: Custom controls names in the Library update when changed.

19639

IDE: Custom supers for reports saved in plain text format are restored properly.

14434

IDE: Desktop containers draw better in the IDE (back color and backdrop) in their editor and in a disabled form on a window layout.

37194

IDE: Don't raise an NilObjectException if you start a search in the LangRef window before the response has been received from one of the online sites.

37507

IDE: Dropping a method on a class interface behaves like a Copy not a Move.

21258

IDE: Ellipsis to indicate further interaction required have been added to menus.

37188

IDE: Event definition editor pane parses a single entry in the name into component parts as the method editor pane does.

37037

IDE: Event handlers that are added to a control instance but have no code in them are now correctly hooked up so add handler will properly report an error if you try to add a handler to it again.

9808

IDE: External project items no longer show property editors differently than internal project items.

33217

IDE: External script references no longer get lost.

19099

IDE: Extract Interface and Extract Superclass both order their lists alphabetically.

37232

IDE: Fixed a NilObjectException that could occur when trying to add attributes to a NON-UI class in an iOS project.

37684

IDE: Fixed issue where right click would incorrectly position the insertion point in the Code Editor.

37577

IDE: Fixed the displayed type of Variant.TextValue in autocomplete.

32736

IDE: Floating properties palette has the advanced icon and panels.

37687

IDE: Grab handles for lines appear regardless of setting of X1, X2, Y1, and Y2.

23591

IDE: ICNS files are now written out with the Apple recommended set of images as PNG which do NOT include any 48 x 48 images.

38035

IDE: Icon editor no longer beeps when you press the delete key.

36968

IDE: Icon editor no longer behaves likes its compositing icons together. It now replaces the existing icon with a new one when dropped into the editor.

37727

IDE: If a plugin is misconfigured and claims to have properties, events, methods, etc. but really doesn't then the error message in Feedback will identify this better.

37699

IDE: If there is no default value for a constant or property no equal sign is shown in the Navigator.

36800

IDE: In Auto-layout, controls constrained to the baselines of other controls move as expected.

17739

IDE: In the Code Editor, AddHandler and RemoveHandler now display syntax help and are highlighted as keywords.

37072

IDE: In the Code Editor, clicking in the gutter below the last visible line no longer toggles the last line's break point.

36980

IDE: In the File Type Set Editor, pressing forward delete when a field is being edited simply edits the field. When no field is being edited and a row is selected pressing forward delete removes the row.

15132

IDE: In the Style Editor, typing in a value in the text field for colors now works.

25704

IDE: Inspector Behavior sheet is resizable. Lists resize to fit width and columns are resizable.

21393

IDE: Make it so when a web segment has an icon assigned that it actually draws it whether its been copied and pasted or saved and the project reloaded.

22116

IDE: Menu handlers now get numeric suffixes like enums, properties, etc. do when you duplicate them.

37099

IDE: Method editor now says “Delegate name” instead of “method name” when you edit a delegate.

37403

IDE: No longer causes an exception when using a script command to build a console or web app.

37401

IDE: No longer causes an exception when using a script command to build a console or web app.

19115

IDE: No longer get an error when a toolbar button icon image has the same name as the button.

19340

IDE: No longer repeatedly ask if a person wants to update a projects minimum load version as they alter it and save.

37060

IDE: Opening new tabs uses the current Find panel size (if open).

37700

IDE: Plugin super classes are not shown in the super class browser for iOS projects.

14913

IDE: Pressing the Enter key completes inline editing same as the return key does.

28654

IDE: Project chooser panel no longer gets spurious line artifacts when resizing.

37656

IDE: Removed extra space in build dialog.

25046

IDE: Renaming Report controls in the Inspector also changes the name in the Navigator.

37285

IDE: Resizing a control by the corner drag handles snaps to guides just like dragging any of the side handles does.

17862

IDE: Segmented control with no segments no longer generates an error when you analyze a project.

37381

IDE: The Export dialog when making a folder external has a more sensible caption. Folders properly check all contents recursively for whether they can be exported.

35005

IDE: The Insert menu rebuilds properly depending on what project you have front most.

25580

IDE: The Library no longer appears to be a drop target when you are dragging a control out of the library.

33190

IDE: The ListBox popover editor permits shift tab to go backwards (just as it uses tab to go forwards).

27967

IDE: The small progress wheel control in web projects no longer slowly creeps across the layout as you save and reopen the project.

26354

IDE: The web style border editor can tab from the Size field to the container with the color selector fields.

35367

IDE: The “Define missing method” function now works even when you select a text fragment thats starts with “me.”.

28092

IDE: Using Cut, Copy, Paste, Delete in the Font name combobox in the Inspector doesn't cause the control to be deleted.

37615

IDE: When a base class name for an iOS custom control changes, any views with instances of that control also get the super updated for those instances.

30622

IDE: When using floating palettes and the last workspace for a project is closed the floating properties palette also clears so that you cannot modify something that no longer exists.

37692

IDE: When you change the default value of a constant or property value they change in the Navigator right away so you no longer need to close then open the group of constants or properties to see the change.

23263

IDE: You can now do a discontiguous select of project items in the Navigator on Windows and Linux (this already worked on OS X).

37326

iOS: An empty iOS project no longer generates an warning about an unused variable.

37008

iOS: Controls that are visually parented in the IDE are now properly parented at run time.

35555

iOS: Dynamic constants are now working.

37919

iOS: Fixed a crash with invalid JSON.

37449

iOS: Fixed a failed assertion triggered by dereferencing a pointer with no offset.

37669

iOS: Removed File Types from the Build Settings.

37071

iOS: The Sign project step name (in Build Settings) is no longer editable.

37678

Linux: IDE no longer crashes at launch on Ubuntu 14.10.

34626

Linux: The IDE no longer crashes in certain instances when clicking on the button to change a class' super.

20370

OS X: Because of a bug in Launch Services names with special characters don't work for the icon file name. Now always using App.icns as the name.

37777

OS X: Fixed a crash with Xojo.Core.Date when used as a property.

37672

OS X: Fixed Xojo.Math.RandomInt crashing.

15019

Plugins: REALLoadObjectMethod no longer fails with DrawPicture in Console apps.

33896

Remote Debugger: Changing the “launch after receiving” check box no longer takes several seconds for the UI to update.

17882

Serial: Retrieving Bits, Stop, Parity, and Port properties now work properly instead of incorrectly retrieving its high word (i.e upper 16-bits did not contain the correct data). This was seen mainly on Windows.

37123

Web: A WebControlWrapper Style property no longer appears if the developer has indicated that it shouldn't.

37085

Web: Fixed a bug which caused WebLabels to be invisible when included in a dynamically created WebContainer.

37748

Web: Fixed a regression in the WebSDK which caused ControlAvailableInBrowser to return True too early. Increased WebControlWrapper.APIVersion to 5 so the only version that has this issue will be version 4.

37670

Web: Removed unused ChromeFrame code from the framework.

37164

Web: WebCheckboxes again respond to touches when their MouseDown event is implemented.

37435

Web: WebContainer mouse event handlers no longer interfere with scrolling.

37205

Web: WebLabels in a WebContainer in a Control Array draw properly again.

37760

Web: WebListbox no longer offsets the selection if placed inside a WebContainer and accessed from a touch device.

37691

Web: WebMoviePlayer and WebMapViewer no longer incorrectly send Mouse movement events to the server.

17126

Web: WebStyle gradients now render for IE. Note: IE only supports 2 point gradients.

34341

Web: Webstyles with borders no longer cause controls to change size at runtime.

37745

WebSDK: Updated documentation to reflect the APIVersion 4 and 5.

37562

Windows: Deleting a menu in the Menu Editor on Windows no longer causes an exception.

21685

Windows: Graphics.DrawPolygon now draws smoother edges when using GDI+

37413

Windows: Xojo.Core.Date subtraction now works properly.

37390

Windows: Xojo.Core.Timer now works for Desktop apps.

37756

XojoScript: Fixed a bug that prevented CompilerWarning from firing when there were warnings on consecutive lines.

31641

XojoScript: The compiler now gives an error when a script declares its own RuntimeException class.

New items (4 cases)

Case

Description

37510

Compiler: Added a TargetARM constant that is set to true when building for ARM devices.

37930

Compiler: The 'StructureAlignment' attribute on a structure can now be set to 0, which indicates that the compiler should perform natural alignment. Natural alignment ensures that the structure will be laid out correctly for a given platform's ABI rules.

28073

IDE: Added a new preference for controlling whether searches and filtering happen immediately or wait until enter/return are pressed.

21947

IDE: Added support for 1024 x 1024 icon size.

Changes (23 cases)

Case

Description

37439

All: Added Parse function to Integer, Double, and Single. This function acts more like Val/CDbl did, in that it's more lenient at parsing and will not raise exceptions.

37757

Compiler: TargetHasGUI, TargetPPC, TargetPowerPC, TargetMacOSClassic, and Target68K have formally be marked as deprecated.

37156

Compiler: The compiler now preserves type information better when dealing with Integer and UInteger. As such, error messages will reflect what the user types instead of Int32 or UInt32.

37709

IDE: Added Icons for autocomplete purposes for Auto, Text and Ptr.

35791

IDE: Auto-layout baselines guides now result in baseline constraints.

35950

IDE: Auto-layout baselines guides now result in baseline constraints.

36318

IDE: Certain deprecated items have been removed from file formats and print outs of projects.

36644

IDE: Debugger Viewer now is labelled with “View as “ instead of “view”.

17995

IDE: It is possible to paste multiline text into the constant editor listbox on Windows and Linux (it already worked on OS X).

16569

IDE: Revised project printing to not repeat the note name, group things better and add in delegates and using clauses.

12874

IDE: The Debugger shows headers for 1D arrays as Row and Value. For 2D arrays it shows row, column and value. For a 2D array sorting by rows puts data in Row / Column order.

17234

IDE: The picture in the debugger view now scrolls as you move the mouse wheel.

37614

IDE: There is now a Project Controls section in the Library for iOS projects.

12574

IDE: Trying to place an instance of a Container Control or EmbeddedWindowControl directly on a window is not permitted. You can no longer drag out a control, like a canvas, change its super to Container Control or EmbeddedWindowControl.

37929

IDE: Updated structures to support natural alignment. This means now you can set the StructureAlignment attribute to 0 to use natural alignment.

36648

IDE: Viewing a window in the debugger shows “Controls” instead of “Contents” in the debugger.

8287

IDE: When you use Run Paused, the Resume toolbar item, resume menu item and pause items will be disabled until such time the app to be debugged has been started and communicated with the IDE.

29995

OS X: ICNS files written use up to date internal image formats (PNGs instead of JPEG 2000) and only use currently documented formats.

37329

PluginSDK: Updated Plugins SDK with new function to handle the Text datatype. Please review the Plugins SDK for details.

36218

SQLiteDatabase: Updated to SQLite 3.8.8.

37681

Web: Removed the Xojo HTTP Server header from the list of headers returned for a standalone web app.

37741

Web: Updated standalone HTTP response headers to more closely match existing behavior.

26807

Web: Web Apps no longer request that ChromeFrame be activated if it's installed on the user's computer.

Docs and examples (20 cases)

Case

Description

37947

DocLangRef: Added Crypto and Introspection to list of Themes in Language Reference.

37274

DocLangRef: Added information for WebApplication.Security.

30413

DocLangRef: Added note to array.Sort to indicate how items are sorted.

37374

DocLangRef: Added page for REALbasic module as an alternate way to access some global items.

37813

DocLangRef: Corrected “REALSQLDatabase” to “SQLiteDatabase” in Record Navigation section of RecordSet page.

36666

DocLangRef: Removed System.KeyScript, which is no longer an available method.

36308

DocLangRef: Simplified wording for description of FolderItem.GetSaveInfo.

37517

DocRefGuide: Added exceptions raised by Xojo.IO.SpecialFolder.GetResource.

37738

DocRefGuide: Fixed sample code for iOSImage.FromFile.

37884

DocRefGuide: Removed incorrect information from iOSView.Activate and Deactivate.

37148

DocRefGuide: Removed SelChange from the events for iOSTextField.

37151

DocRefGuide: Removed usage of Math.Pi from sample code.

37779

Examples: Added iOS/Declares/Base64Encoding project.

37780

Examples: Added iOS/Declares/Pasteboard to show how to add text to the pasteboard.

37932

Examples: Added XojoDoodle example for iOS.

37647

Examples: Fixed iOS/Database/SQLiteInMemory example so that it can be properly code-signed when built.

37778

Examples: In iOSAlerts, changed declare lib to /usr/lib/libobjc.dylib so that it builds for device.

37737

Examples: Updated IDECommunicator example to work with current version of Xojo.

37931

Examples: Updated XojoNotes to use SplitView on iPad.

37159

Examples: Updates to error messages for XojoScript example project.