Gambas Documentation
Application Repository
Code Snippets
Compilation & Installation
Components
Controls pictures
Deprecated components
Developer Documentation
Development Environment Documentation
Documents
About The Best Formula In The World
Architecture details
Benchmarks
Books
By Reference Argument Passing
Compatibility between versions
Creating And Using Libraries
Database Datatype Mapping
Database Request Quoting
Date & time management
Dates and calendars
DBus and Gambas
Differences Between Shell And Exec
Differences From Visual Basic
Distributions & Operating Systems
Drag & Drop
DrawingArea Internal Behaviour
External functions datatype mapping
Frequently Asked Questions
Gambas Farm Server Protocol
Gambas Mailing List Netiquette
Gambas Markdown Syntax
Gambas Naming Conventions
Gambas Object Model
Gambas Scripting
Gambas Server Pages
Gambas Unit Testing
Gambas Wiki Markup Syntax
Getting Started With Gambas
Hall Of Fame
Image Management In Gambas
Including Help Comments in Source Code
Interpreter limits
Introduction
Just In Time Compiler
Just In Time Compiler (old version)
License
Localisation and Internationalization
Mailing Lists & Forums
Naming Conventions
Network Programming
ODBC Component Documentation
PCRE Pattern Syntax
Porting from Gambas 2 to Gambas 3
Previous News
Project Directory Structure
Release Notes
Gambas 2.23.0
Gambas 2.23.1
Gambas 2.24.0
Gambas 3.0.0
Gambas 3.1.0
Gambas 3.1.1
Gambas 3.2.0
Gambas 3.2.1
Gambas 3.3.0
Gambas 3.3.1
Gambas 3.3.2
Gambas 3.3.3
Gambas 3.3.4
Gambas 3.4.0
Gambas 3.4.1
Gambas 3.4.2
Gambas 3.5.0
Gambas 3.5.1
Gambas 3.5.2
Gambas 3.5.3
Gambas 3.5.4
Gambas 3.6.0
Gambas 3.6.1
Gambas 3.6.2
Gambas 3.7.0
Gambas 3.7.1
Gambas 3.8.0
Gambas 3.8.1
Gambas 3.8.2
Gambas 3.8.3
Gambas 3.8.4
Gambas 3.9.0
Gambas 3.9.1
Gambas 3.9.2
Gambas 3.10.0
Gambas 3.11.0
Gambas 3.11.1
Gambas 3.11.2
Gambas 3.11.3
Gambas 3.11.4
Gambas 3.12.0
Gambas 3.12.1
Gambas 3.12.2
Gambas 3.13.0
Gambas 3.14.0
Gambas 3.14.1
Gambas 3.14.2
Gambas 3.14.3
Gambas 3.15.0
Gambas 3.15.1
Gambas 3.15.2
Gambas 3.16.0
Gambas 3.16.1
Gambas 3.16.2
Gambas 3.16.3
Gambas 3.17.0
Gambas 3.17.1
Gambas 3.17.2
Gambas 3.17.3
Gambas 3.18.0
Gambas 3.18.1
Gambas 3.18.2
Gambas 3.18.3
Gambas 3.18.4
Gambas 3.19.0
Gambas 3.19.1
Gambas 3 RC1
Gambas 3 RC2
Gambas 3 RC3
Gambas 3 RC4
Gambas 3 RC5
Gambas 3 RC6
Gambas 3 RC7
Reporting a problem, a bug or a crash
Rich Text Syntax
Screenshots
Text highlighting definition file syntax
The Program has stopped unexpectedly by raising signal #11
Variable Naming Convention
WebPage Syntax
Web site home page
What Is Gambas?
Window & Form Management
Window Activation & Deactivation
Window Life Cycle
XML APIs
Error Messages
Gambas Playground
How To's
Language Index
Language Overviews
Last Changes
Lexicon
README
Search the wiki
To Do
Topics
Tutorials
Wiki License
Wiki Manual

Gambas 3.8.2

What's new

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

It includes a few enhancements too:
  • Support for dark themes.

  • New logo, project, mime types and control icons based on the breeze theme look.

  • Project creation is now based on customizable project templates.

  • Logical set operations on selections in the image editor.

  • Relative paths now can refer to files located in the main project, in the current component, or in components crossed by stacked function calls.

  • The ODBC component is usable now.

ChangeLog

CONFIGURATION

  • Fix gambas server page mimetype file.

  • New breeze-like icons for mimetypes.

  • New Gambas icons.

  • Redraw many control icons.

  • Register mimetype icon with correct sizes.

  • Uninstall now correctly removes templates and XML appdata file.

DEVELOPMENT ENVIRONMENT

  • "F2" now correctly finds the definition of classes used as method or array.

  • Faster about dialog based on a triple image cache.

  • Add a large toolbox icon size, for HighDPI screens.

  • Add an option to invert an editor theme so that it is usable with a GUI dark theme.

  • Add dark theme versions of some icons.

  • Code formatting now does its job entirely.

  • Code formatting now keeps the cursor position.

  • Code formatting when saving does not prevent modification flag to work anymore.

  • Code formatting is faster now by working on a temporary line buffer.

  • Dark version of many icons.

  • Don't crash if the template global directory has not been correctly installed.

  • Don't define an initial position to the tips window.

  • Editor color themes better adapt to desktop dark themes.

  • Fix a crash in the new class metadata management.

  • Fix author list width in about dialog.

  • Fix documentation metadata reset.

  • Fix dutch translation.

  • Fix RichText in a message.

  • Fix some default themes so that they are more usable inverted.

  • Fix windows using icons that do not exist anymore.

  • Hitting ESC while current method signature is displayed only hides the signature now.

  • Image editor: Clip pasted image.

  • Image editor: Fix mouse wheel behaviour when zooming.

  • Image editor: Fix rectangle and ellipse selection when they are done backwards.

  • Image editor: Many bug fixes in draw, erase, and line tool.

  • Image editor: Pasted images are not one pixel too big anymore.

  • Image editor: Set operations on selections (union, intersection, difference and exclusive or).

  • Initialize documentation metadata after command-line options processing, to avoid circular dependencies.

  • Konsole is correctly used by default on KDE5 desktops.

  • Let the MessageView control use its default colors.

  • List property dialog: Invert button.

  • New class CDocumentation that allows to handle distinct sets of component metadata. That way, offline documentation does not interact with automatic completion and method signature popups anymore.

  • New logo and project icons.

  • New control icons.

  • New project creation dialog based on template projects located in /usr/share/gambas3/template and in ~/.local/share/gambas3/template. These are default directories, they may change according to your gambas installation prefix and home directory configuration.

  • Opening the startup class moves to the Main function only the first time now.

  • Option dialog: Change the order of panels.

  • Packager: Fix debian packages so that lintian likes them better.

  • Packager: Really fix Debian standard version.

  • Packager: Unify debian standards version reported inside packages.

  • Profile windows should not crash anymore when displaying percentage values.

  • Project open dialog: Fix a crash when using the recent list several times.

  • Project property dialog: Add two more environment variable definitions.

  • Property sheet: Double-clicking on read-only properties does not open the text property edit dialog anymore.

  • Property sheet: Fix text property edit dialog.

  • Put the WebView icon in the IDE.

  • Remove an image link in the italian tooltips.

  • Remove now useless icons of the old project creation dialog.

  • Store the report-ng.sh script in the "Project" folder, as it is not used anymore.

  • Support for lxterminal works as much as possible.

  • The label of the check-box that adds the vendor prefix to the package names is clearer now.

  • The search result list should be correctly hidden and shown when being refreshed now.

  • Update French translation.

  • Update German translation.

  • Update Spanish translation.

TEMPLATES

  • Project creation is now based on project templates.

WIKI CGI SCRIPT

  • Fix and enhance automatic generation of Gambas application package dependencies.

INTERPRETER

  • "../xxx" now refers to a file located in the parent archive, not necessarily the main project archive. "../../xxx" refers to the grand-parent archive, and so on. A component written in Gambas that receives a relative path is supposed to prefix it with "../" if he wants to access it. Please report any incompatibility!

  • Component.FindFromPath() is a new method that returns the name of the component a relative path belongs to.

  • Debugger: Breakpoints now work correctly when some global variables are declared after a function.

  • File.IsRelative() is a new method that returns if a file is relative, i.e. if it does not starts with / or ~.

  • Fix Component.FindFromPath() method signature.

  • Fix thousand separator for locales like norwegian that return an UTF-8 non-breaking space. Replace it by a normal space.

  • Relative paths beginning with ".../" always refer to files stored in the main project archive.

  • Task now ends with by calling _exit() instead of exit(). Because exit() calls the terminator of each loaded shared libraries, and that sometimes crashes.

  • Val() correctly detect dates now, when the date or the time separator is a space character.

COMPILER

  • Correctly set .startup file owner.

  • Take into account the "Use VERSION file" project option to compute the actual version in the .startup file.

ARCHIVER

  • Better verbose mode.

GB.DB

  • Connections are now always searched in the main project archive.

  • Result in creation mode works again.

  • Support for "forward only" Result.

GB.DB.FORM

  • New control icons.

GB.DB.ODBC

  • Clean-up a bit the query_fill() function.

  • Internal query routine is now similar to other database drivers. DB.Debug is taken into account, and prints all queries sent, and the number of rows returned.

  • Rewrite result allocation.

  • Support for "forward only" query results.

GB.DB.SQLITE3

  • Fix debug message printed when DB.Debug is set.

GB.DBUS

  • DBus.IsRegistered() is a new method that returns if a specific DBusObject has been registered to a bus.

  • Fix some memory leaks when using DBusObject and DBusVariant in a method call or a reply.

  • Replace hyphens by dots in normalized interface names. But allow them in application names (as well as underscores).

  • Replace hyphens by dots in the entire interface names.

  • The message observer of a DBusObject may disappear while processing a message. Take that into account.

GB.DBUS.TRAYICON

  • Correctly export menus that are not visible.

  • New breeze default tray icon.

  • Toggle menus triggered from the trayicon menu correctly raise their Click event.

GB.DEBUG

  • Fix profiler error messages.

GB.EVAL

  • Lines of any length can be highlighted now.

GB.FORM

  • ButtonBox: Dark theme version of default select icon.

  • File bookmark editor: Correctly save current bookmark when using "Up" or "Down" button.

  • MessageView default colors are now default text background and foreground.

  • Stock: Correctly detect KDE5 icon theme.

  • Stock: Support for Trinity desktop.

  • TabPanel: Clicking with the middle mouse button on a tab button now closes it.

  • The Stock class does not use the Picture cache anymore. It is useless as normally the Stock class is accessed from the Picture[] method.

  • Use Desktop.Type to get the current desktop.

  • ValueBox: Setting the Type property does not hide the control contents anymore.

GB.FORM.DIALOG

  • Dialog.Key is a new property that allows to define the sub-key used for storing dialog settings.

  • Dialog.SelectFont() now takes Dialog.Title into account.

GB.FORM.EDITOR

  • Don't raise Cursor event if we are between calls to Begin / End or during an undo or redo process.

  • TextEditor: Deleting one collapsed line correctly expands it and does not crash anymore.

  • TextEditor: Load() method now always move the cursor to the beginning, to avoid a possible crash.

  • TextEditor: Print() modifications are not put in the undo buffer.

  • TextEditor: Reset the cursor position before actually setting the Text property, to avoid a possible crash.

  • TextEditor: SHIFT key + mouse click now selects text.

  • TextEditor: Some ANSI codes are taken into account by the Print() method.

  • TextEditor: The Save() and Reset() methods now cancel any pending Change event.

GB.FORM.MDI

  • Correctly read the action pictures in the archive they are declared.

  • Don't load gb.form.mdi action files. What for?

  • Use more granular sizes for stock icons, so that they are not too small for some font sizes.

  • When browsing actions, do not try to load an icon for actions that do not have one.

GB.GTK

  • Assume that the contents of XDG_CURRENT_DESKTOP is the current desktop as soon as other detection methods have failed.

  • Fix detection of XFCE desktop.

  • Fix Image.Rotate() routine.

  • Newly opened windows are centered by default, to mimic the gb.qt4 and gb.qt5 behaviour.

  • Remove the Picture[] array accessor and the Picture.Flush() method. They are now implemented in the gb.gui.base component.

  • Fix popup menu behaviour in X11 TrayIcon context.

GB.GTK3

  • Assume that the contents of XDG_CURRENT_DESKTOP is the current desktop as soon as other detection methods have failed.

  • Fix detection of XFCE desktop.

  • Fix Image.Rotate() routine.

  • Newly opened windows are centered by default, to mimic the gb.qt4 and gb.qt5 behaviour.

  • Remove the Picture[] array accessor and the Picture.Flush() method. They are now implemented in the gb.gui.base component.

GB.GUI.BASE

  • Add support for dark theme specific icons. An icon named abc-dark.png will be the dark theme version of the abc.png icon.

  • Add support for right-to-left specific icons. For example, if an icon is named abc-ltr.png, then it will be considered as a left-to-right icon, and the abc-rtl.png icon will be used if the current langauge is right-to-left written.

  • Fix icon path to internal key generation in the Picture cache.

  • GridView: Don't draw the background if the Background property is set to Color.Transparent.

  • Picture: Use Color[].Luminance on default background color to detect dark themes.

  • Remove support for theme specific icons.

  • ScrollArea: Ignore Style.ScrollBarSpacing when layouting scrollbars.

  • The Picture[] array accessor and the Picture.Flush() method are now implemented in that component.

  • Use the new Component.FindFromPath() method.

GB.IMAGE

  • Color[].Luminance returns the luminance information of a color.

GB.INOTIFY

  • Don't pass NULL key and zero length to GB.HashTable.Remove().

  • Don't rely on GB.NewString() to NUL-terminate the string.

  • Use GB.StringLength() where possible.

GB.QT4

  • Assume that the contents of XDG_CURRENT_DESKTOP is the current desktop as soon as other detection methods have failed.

  • Desktop.Scale is now updated before window Font events are sent.

  • Don't send a move request for windows whose initial position is X = 0 and Y = 0, as gb.gtk does.

  • DrawingArea now can be resized during a paint event as soon as it is not cached.

  • Fix detection of XFCE desktop.

  • Message boxes do not support theme specific icons automatically anymore.

  • Modal dialogs now are centered in the screen of their parent window, not always in the main screen anymore.

  • Raise an error when calling Screen[] with an incorrect index.

  • Remove a debugging message.

  • Remove the Picture[] array accessor and the Picture.Flush() method. They are now implemented in the gb.gui.base component.

  • Startup forms with Visible property set to FALSE are not shown at startup anymore.

  • The parent window of a modal window is correctly set now.

  • Window.TakeFocus works again.

  • Window.Visible property does nothing when set with its current value.

GB.QT5

  • Assume that the contents of XDG_CURRENT_DESKTOP is the current desktop as soon as other detection methods have failed.

  • Desktop.Scale is now updated before window Font events are sent.

  • Don't send a move request for windows whose initial position is X = 0 and Y = 0, as gb.gtk does.

  • DrawingArea now can be resized during a paint event as soon as it is not cached.

  • Fix detection of XFCE desktop.

  • Message boxes do not support theme specific icons automatically anymore.

  • Modal dialogs now are centered in the screen of their parent window, not always in the main screen anymore.

  • Raise an error when calling Screen[] with an incorrect index.

  • Remove a debugging message.

  • Remove the Picture[] array accessor and the Picture.Flush() method. They are now implemented in the gb.gui.base component.

  • Startup forms with Visible property set to FALSE are not shown at startup anymore.

  • The parent window of a modal window is correctly set now.

  • Window.TakeFocus works again.

  • Window.Visible property does nothing when set with its current value.

GB.REPORT2

  • ReportImage: Replace matrix manipulation by the Print.DrawImage function. It solves resolution problem on printing.

  • ReportImage: Remove an old size conversion and replace it by the Report Class One.

  • Update icons.

GB.SETTINGS

  • Settings.Read and Settings.Write can take an absolute key as argument.

Compilation and installation

Read the instructions there.

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

Enjoy it !

See also