Gambas 3.8.3

What's new

This release includes all bugs fixes since the release of Gambas 3.8.2.

It includes a few enhancements and optimizations too:
  • Source files can now be dragged & dropped in the IDE project tree.

  • Project directories are now movable.

  • Support for line cap style, line join style and fill rule in the IDE image editor.

  • Array accessors are faster.

ChangeLog

DEVELOPMENT ENVIRONMENT

Project tree

  • A child class is now displayed in the project tree under its parent class only if they are in the same directory. Consequently, dragging a child class to any directory is now possible.

  • Allow project directories to be moved.

  • Cutting & pasting source files now works as expected.

  • Use the file stock icon at correct size when making a project file icon.

About dialog

  • Mouse wheel now scrolls the text in both direction.

Code editor

  • Automatic comment insertion is now done in one step to prevent syntax highlighting from occurring inside the new comment line.

  • Correctly catch errors when reloading a file.

  • Reloading a class or module file now keep the breakpoints.

  • Reloading a file now correctly resets the procedure combo.

Database editor

  • Correctly save CSV file path in data export and table import dialogs.

  • Redraw some database editor icons.

  • Renaming a table does not delete it anymore if the renaming fails for any reason.

  • Larger connection properties dialog.

  • Remove not yet implemented "template" database type.

Help browser

  • Correctly set the help browser URL in all cases.

  • Don't display the wiki language combo-box in the help browser.

  • HelpView.Stop() method now always hides the spinner.

Form editor

  • Fix list property editor layout.

  • Draw tool-bar icons of project exported controls larger, so that they are readable.

  • Property help now works off line.

  • Set the Design property of controls the later as possible. That way it is propagated to inner controls that are created after because of a control property.

  • Project exported control icons are thiner.

  • Reverting a form now reverts the class file too.

Image editor

  • Buttons for line cap style, line join style and fill rule.

  • Display the target frame when moving the pasted image.

  • Fix drawing of ghost line tool.

  • Fix magnet detection.

  • Fix the zero-width line drawing.

Packager

  • Correctly handle descriptions having newlines inside.

  • Extra directories are now correctly defined in Debian packages.

Search dialog

  • Search: Fix replace all in current procedure.

Software farm

  • Software farm: Remove sort by vote.

Project property dialog

  • Correctly fix the library "Compatible until" option of the project property dialog.

Miscellaneous

  • Add missing dark theme icons.

  • Fix project icon folder generation.

  • Fix report border chooser dialog.

  • Support for future webforms.

  • Update french translation.

  • When compiling changes the project information metadata, only reload forms.

INTERPRETER

  • Prevent the use of seed 0 for the random-number generator, by replacing it by -1 if Randomize 0 is requested.

  • Ensure better entropy when initializing pseudo-random number generator.

  • Ensure a better hash key seed for hash tables.

  • File.IsHidden() is a new static method that returns if a path is hidden, i.e. if its filename or one of its directory components starts with a dot.

  • Fix a crash when trying twice accessing a collection without the good number of arguments.

  • Fix a possible crash when removing an element from an enumerated collection.

  • Release classes having an array class if that array class has no instance.

  • Some optimization in native array accessors.

COMPILER

  • Support for future webforms.

  • Trim the VERSION file before inserting into the ".startup" file.

BENCHMARKS

  • Do less iterations in benchmarks to get the result faster.

  • Fix sort.pl bench.

GB.COMPRESS.ZLIB

  • Uncompress.String(): Detect gzip format.

GB.DB.ODBC

  • Don't crash when trying to open a database if the host is void.

GB.DB.SQLITE2

  • Listing databases without specifying the host does not crash anymore.

GB.DB.SQLITE3

  • Listing databases without specifying the host does not crash anymore.

GB.FORM

  • Fix "linux" stock icon.

  • Fix stock icon templates.

  • Print each loaded stock icon when Stock.Debug is set.

  • Setting an hidden path to a DirChooser or FileChooser automatically toggles the ShowHidden property if needed.

  • Wizard: Add Update() method that refreshes the Wizard buttons state.

GB.FORM.EDITOR

  • TextEditor: CTRL+ENTER does not crash anymore if there is nothing to fold or unfold.

  • TextEditor: SHIFT+PGUP or SHIFT+PGDOWN keys now work as expected.

GB.FORM.MDI

  • Workspace: Always shows the global close button, even if there is only one tab.

GB.GTK

  • Control.Reparent() now works as expected when the new Parent inherits UserContainer.

  • Correctly initialize resolution when drawing on a DrawingArea.

  • Fix ScrollView ClientWidth and ClientHeight properties.

  • Setting PictureBox.Picture to NULL with PictureBox.Stretch set now works as expected.

  • When searching for event targets, don't look at controls outside of containers client area.

GB.GTK3

  • Control.Reparent() now works as expected when the new Parent inherits UserContainer.

  • Correctly initialize resolution when drawing on a DrawingArea.

  • Fix ScrollView ClientWidth and ClientHeight properties.

  • ScrollView with a border should not display scrollbars anymore when they are void.

  • Setting PictureBox.Picture to NULL with PictureBox.Stretch set now works as expected.

  • When searching for event targets, don't look at controls outside of containers client area.

GB.GUI.BASE

  • _Gui._Quit is a new method called by the GUI components during their "quit" hook. At the moment it releases Drag.Icon picture and voids the Picture cache.

GB.OPENAL

  • Fix return value of Al.GetBufferi(), Al.GetSourcei() and Al.GetListeneri().

GB.QT4

  • Disable warning messages when rendering a SVG file.

  • Draw masked windows the same way as in gb.gtk.

  • Style.Name now returns "Breeze" if the patched breeze style is used.

GB.QT5

  • Disable warning messages when rendering a SVG file.

  • Draw masked windows the same way as in gb.gtk.

  • Style.Name now returns "Breeze" if the patched breeze style is used.

GB.WEB

  • Request.Referer is a new property that returns the request referer.

  • Request.UserAgent is a new property that returns the request user agent.

GB.XML.HTML

  • XmlElement: Fix infinite loop from MatchFilter().

Compilation and installation

Read the instructions there.

If everything was fine, type "gambas3" to run the development environment.

Enjoy it !

See also