Xojo 2016 R3 was released today. This release is a much smaller release than either R1 and R2 and despite not having any major new features has some nifty new small features and changes that will probably make your life easier.
You can now create a new event definition by right-clicking on an existing event and choosing “Create New Definition From Event”. If you have ever subclassed a control you know what a pain this can be. You need the Open event for your subclass, but you need to create a mirror Open event so the user could do something. Before this release you had to create the definition manually and then hope the parameters (if there were any) matched.
Making ImageSets from existing pictures is easier. Right-click on the picture and choose “Convert to Image” where it will create an ImageSet and put this image at the base image. The only caveat to this feature is that you must have the Supports Hi-DPI setting in Shared Build Settings checked. This seems like a needless restriction in my opinion.
You can now right-click an item in the Library and be able to create a new subclass from that menu item. You no longer have to add a class and then change its super to the class you want.
Extract Super is a new right-click option on a class that lets you extract code items. If you have a subclass , like the Listbox, you can now extract the super and tell the IDE which methods, properties, constants, delegates, enumerations, etc it should have. To do this before would have been an extremely tedious and time consuming task.
Right-clicking on the Contents headers in the Navigator lets you insert things into your project. In a similar fashion, right-clicking on a header of an object lets you add another of the same type. If you right-click on Methods the only thing active in the contextual menu is the Add method.
The contextual menu in the Code Editor has two new additions. You can now “Wrap in #if false #endif” and “Wrap In For Next”. Both of these will options will wrap currently selected code in that code. Another interesting adoption, “Convert to Constant” will take the currently selected code and bring up a Constant dialog allowing you to change the Name, Scope, Type, and Value of the constant before saving it and replacing the code with the new constant.
The icon for the Xojo Project file now has a solid color that helps distinguish it from the other Xojo text files.
The Library now has two “All” entries. One is “All Controls” which shows every control including custom subclasses in the project. The second is the “All Built-In Controls” which is just the native controls for the project type. There is a new attribute you can add to a control, “HideFromLibrary” that you can add to a control subclass that keeps it from listing in the library.
If you like to have non-standard code editor colors you can now import and export color themes in preferences. Also in preferences you can set how many “Recent Items” there are in the menu of the same name in the File menu.
As with every Xojo release, R3 has a not insignificant number of pure bug fixes. I encourage you to look at the entire list and decide for yourself if anything important to you has been fixed.
An important bug concerning MySQL was fixed. In the R2.x series using a MySQL connection in a thread would just ‘hang’ and never come back.
In my own testing R3 has been solid. I did run into an issue with a web project that I opened in R3, saved it, and then tried to reopened it in R2. I got the infamous “You might lose data” message that’s always scary. In R2 I did an analyze project and saved it with on further issue. So remember kids, backwards compatibility is a blessing – not a guarantee.
I enjoyed this beta cycle. It was much smaller and easier to test. Without major new features it seemed a less rushed cycle. Hopefully R4 will be as good. Will we finally see 64 bit debugging? Man, I hope so as a current Raspberry Pi project really could use it.
Anything in R3 that you’re particularly happy to see?
Edit: As Tiago points out in the comments section I forgot to mention the compiler optimization settings! This dropdown in Shared Build Settings area will choose an optimization level (Default, Moderate, and Aggressive) for Raspberry Pi and any other project built for 64-bit. Early reports suggest that it does a good job on math intensive projects as well as projects that are using a lot of loops.
It missed my initial list because we’re not building for 64-bit yet – waiting on that debugger. I apologize for the omission.