Gambas 3.8.2

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

AltStyle によって変換されたページ (->オリジナル) /