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
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
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