Gambas 3.8.0
What's new
Here are the main changes in this new version:
-
The text editor has been entirely rewritten in Gambas. It is located in a new
component named gb.form.editor. That way, GTK+ programs now have a
text editor with syntax highlighting for free.
-
Support for QT5. The new gb.qt5, gb.qt5.opengl and gb.qt5.webkit
components have the same interface as the QT4 components.
-
Automatic support for KDE & Unity tray icon DBus protocols. Just use the TrayIcon class
as before, and the new protocol will be automatically used if a DBus system tray icon is
detected. Otherwise, the old X11 protocol is used.
-
Important bug fixes in UTF-8 string handling.
-
Searching inside native arrays is faster.
-
The SQLite3 driver has been rewritten and is faster now.
-
And of course tons of bug fixes...
Changelog
CONFIGURATION
-
Do not use the AC_LIBLTDL_CONVENIENCE macro. It is deprecated and
now useless.
DEVELOPMENT ENVIRONMENT
Source editor
-
New editor based on gb.form.editor.
-
A new button to toggle wrap word mode in code editor and text
editor.
-
Code prettyfier should not move the cursor anymore.
-
Fix completion with language keywords.
-
Use IDE breakpoint icon for displaying breakpoints in editor.
Text editor
-
New editor based on gb.form.editor.
-
A new button to toggle wrap word mode in code editor and text
editor.
-
Do automatic completion while typing strings.
-
Compression correctly marks the file as modified.
-
Fix text pasting.
Database editor
-
Add a "Remember database structure" checkbox in the connection
properties dialog. The IDE will dump the database structure into a
template file only if this checkbox is checked. It won't do that all the
time anymore.
-
The import CSV dialog is now a wizard.
-
Removing a connection now removes the template file too.
-
The connection properties dialog now correctly uses the
provided password to list the available databases.
Form editor
-
Fix the edition of DataComboView.Columns property and any other
"field" property that takes its table in another property of the same
object.
-
Form property sheet: Don't use theme color for highlighting.
-
Replace a possible error while filling the toolbox by a warning
message.
-
Use the "next" icon for the buttons that switch between the class
file and the form file.
Image editor
-
Add rectangle roundness option.
-
Don't crash when drawing text if a specific character returns no
outline. Just draw nothing.
-
Don't load the image twice.
-
Hide options that are useless to the current tool.
-
Text is now really centered.
-
Text selection does not anchor to itself anymore.
-
Use larger selection dash pattern, it is easier to see.
-
When selecting a rectangle, a line or an ellipse, the
width and height displayed in the top right information label are now
accurate.
Components
-
Add
gb.gui.trayicon
description.
-
Add compression driver components descriptions.
-
Component chooser: Correctly uncheck component dependencies.
-
Component chooser: New look. Don't use the round borders anymore.
-
Support for QT5 component.
Debugger
-
Add a close button to the debug panel.
-
Don't show space dots in the console.
-
Hitting Escape while editing a variable does not hide the debugger
panel anymore.
-
Put some red inside the breakpoint icon.
-
The output console now uses overwrite editor mode, and always
displays its cursor.
Welcome dialog
-
Add an
Installed softwares
button in the welcome dialog.
-
Do not open the welcome dialog if a project directory has been
specified in program arguments.
System information
-
Add the environment variables to the system information.
-
Search for QT5 core library.
Farm client
-
Always center the farm client window.
-
Create the example directory if it does not exist when installing a
non-example software having the
example
tag.
-
Add new categories.
-
Cleaner way of drawing software information.
-
Load the SoftwareBox information only when it is actually displayed.
-
Paint the software names the same way everywhere.
-
Software URL works correctly now.
-
The software description is not incorrectly clipped anymore.
-
Prevent a possible crash in the farm client request manager.
Option dialog
-
An option to define if wrap word mode is enabled by default.
-
Current highlighting theme is now part of the configuration.
-
Make the option dialog smaller.
-
Put the fonts options in their own panel.
Project properties dialog
-
Don't erase component file if you open the project properties
dialog without selecting the information tab.
-
Do not display the libraries in the component list anymore.
-
Unchecking a component does not uncheck
dependencies that were explicitly checked anymore.
-
The button to show deprecated components is now embedded into the
component chooser.
Automatic completion
-
Do automatic completion while typing strings.
-
Hide the help panel in automatic completion when we are not editing
source code.
Translations
-
Improved some strings for Dutch translation
-
Update French translation.
-
Updated the Brazilian Portuguese translation.
Help browser
-
Make off-line help downloader more robust.
-
Take gb.qt5 into account in the help system.
-
Take the gb.gui.qt.* components into account in the help system.
Profiler
-
Newly opened profiler windows should have their columns correctly
adjusted now.
-
Don't enable procedure collapse.
-
Add a new column for the average self time.
Open project dialog
-
Don't draw the dialog buttons on top of the project view.
-
Fix buttons layout.
Packager wizard
-
When creating a package from a component project,
warn the user if the project name is not prefixed by a vendor name and
a dot, and stop the process.
-
Fix output window.
-
Fix RPM package generation.
-
The packager now generates packages for QT5 and GTK+3 for project
using gb.gui.
-
Use a bigger icon for the packager wizard.
Search dialog
-
The "Show search window" button in the search list does not reset
the searching context to the current procedure anymore. It keeps the
current context unchanged instead.
Color chooser dialog
-
The system colors of the color choose dialog are now dynamically
filled from the Color class information. Consequently, you can add new
colors by extending and adding new color constants or properties to the
Color class in your project.
Translation editor
-
Correctly quote and unquote translations.
-
Use editor font for editing translations.
-
Use unquoted translation strings.
Miscellaneous
-
Fix all WebView font sizes.
-
Fix many dialog layouts.
-
Fix the cursor positions restore at project startup.
-
Force the background of some scrollbars to be the text background
color.
-
If the workspace was filled before the main window is visible, then
the QT5 backing store starts displaying garbage. The workaround was to
always show the main window before trying to load any file.
-
Redraw some control icons.
-
Redraw some icons.
-
Replace "Every software" by "All software", which is better english.
-
Replace "run that ..." by "run this ...".
-
Software is always a singular word.
-
The string constants are now quoted in .info files. Take that into
account.
-
Use MenuButton instead of ToolButton in some places, because Breeze
logically always centers the contents even when there is an icon.
-
Use the new CloseButton property of the TabPanel control.
-
Use the new QT4/QT5 switcher components.
-
Use the new TextEditor instead of the old Editor control.
Consequently, the
gb.qt4.ext
component is not needed by the IDE
anymore.
-
Workaround the stupid automatic shortcut feature of Qt5.
WIKI CGI SCRIPT
-
Add tooltips for all special methods.
-
Add tooltips on class symbols list.
-
Command for generating the package dependencies table.
-
Correctly handle class reimplementation through different
components.
-
Fix signature of
_new
methods.
-
Fix some HTML syntax errors.
-
Ignore gb.gui.qt and gb.gui.qt.webkit when generating the TODO page.
-
Take gb.qt5 into account.
-
The string constants are now quoted in .info files. Take that into
account.
-
Update wiki style sheet.
-
Updated Dutch translations
EXAMPLES
-
Fix Browser example.
-
Fix WebBrowser example.
INTERPRETER
-
Add a new GB.Component.Declare() API, that allows a component to
dynamically register a class description.
-
Add the Rand() syntax description.
-
Allow a component to declare a GB_AFTER_INIT() exported method that
is called just after all the components declared in the project are
completely loaded.
-
Allow Gambas executables to be run through any relative paths.
-
Correctly raise an error if a component cannot be found.
-
Do not read ahead a ready to read file descriptor if we are in
direct mode and if the file is a not a regular file.
-
Do not read ahead file descriptors ready to read opened using the
".xx" special name.
-
Don't close an external library if requesting an unknown symbol on
it. Why having done that?
-
Don't crash if a regular expression has a missing closing
}
.
-
Don't crash if a standard stream has been freed. Raise an error
instead.
-
Don't panic if a received signal cannot be written to the signal
pipe. Just print a warning.
-
Finally fixed! LINE INPUT internal buffer is now correctly reset
when SEEK is used.
-
Fix an infinite loop when a signal is catched and the signal pipe
has been closed.
-
Fix compilation of EXEC and SHELL for older bytecode versions.
-
GB.Component.IsLoaded() is a new interpreter API that returns if a
specific component has been loaded.
-
GB.GetProperty() API now returns the property value as a GB_VALUE
pointer, or NULL if the property could not be read.
-
GB.GetReturnValue() is a new interpreter API that returns a pointer
to the internal GB_VALUE slot where GB.ReturnXXX() functions store the
return value.
-
Make faster implementations of the Find() and Exist() methods of the
native array classes. Only Date[] and Variant[] use the old implementations.
-
New error constant in API header.
-
Object.Lock() and Object.Unlock() are now recursive, i.e. you must
call Object.Unlock() as many times as Object.Lock() to actually unlock an
object.
-
Object.Raise() is a new method that tells an object to raise one of
its events. You should have no use of that for real applications. :-)
-
Prevent a possible infinite recursion when detaching objects.
-
Running executables from an absolute path works again.
-
Shell$() now quotes quotes correctly.
-
Sometimes String.Left(), String.Mid$() or String.Right() methods
could go past the end of their strings. This is fixed now.
-
Stream read ahead does not have to wait for the descriptor to be
ready for reading.
-
Support for UTF-8 date and time separators, used by Chinese for
example.
-
The UTF-8 character to byte position conversion routine now should
work in all cases. Fix a corner case in String.Left(), String.Mid$(),
String.Right() that sometimes could return an incorrect result.
COMPILER
-
Allow string constants longer than 255 characters when generating
.info files.
-
Don't crash when a constant is the void string.
-
The string constants are now quoted in .info files.
INFORMER
-
A component now can declare classes through a GB_OPTIONAL_CLASSES
public symbol. Theses classes are included into the information file,
but are not automatically loaded as the ones defined through the
GB_CLASSES symbol.
GB.CAIRO
-
Release the drawing pattern after destroying the drawing context,
because finishing the drawing may need it.
GB.CLIPPER
-
Polygon.AddPoint() now works correctly.
-
Put arguments to Polygon._put() in the correct order.
GB.COMPRESS.BZLIB2
-
Make that compress driver an explicit component.
GB.COMPRESS.ZLIB
-
Make that compress driver an explicit component.
GB.DB
-
SQLRequest is a new class that helps to build a SQL request whose
syntax is adapted to a specific connection. The name of table fields are
always quoted so that they can include reserved characters.
-
Connection.SQL is a new property that returns a new SQLRequest
object that can be used for forging a SQL request whose syntax is adapted
to the target connection.
-
Don't crash when a SQLite database is not found and if the hostname
is null.
-
Fix a crash when creating twice the same table with the same
connection.
-
Fix a memory leak in the Connection.Delete() method.
-
GB_DB_DEBUG is a new environmental variable that allows to
externally set the DB.Debug property.
GB.DB.FORM
-
DataComboView: Draw current selected record with the same layout as
the popup DataView uses.
-
Display the busy mouse cursor while loading SQL data.
-
Fields with special characters in their name are now correctly
quoted, thanks to the new SQL forgin mechanism.
-
Updated Dutch translations
-
Fix blob editor current byte highlighting.
-
Use the new SQL property of the Connection object to build request.
GB.DB.MYSQL
-
Blob fields and unlimited text fields should be detected correctly
in all cases now.
-
Don't crash when removing something from the metadata cache.
-
Use the a void database name by default, instead of explicitly
connecting to the "mysql" database.
GB.DB.POSTGRESQL
-
Fix a compilation warning.
-
If PostgreSQL version is greater than 9.0, then force the
bytea
output format to escape
, as it was before.
-
Support for materialized views.
GB.DB.SQLITE3
-
Detect primary key only with
table_info
pragma. Consequently,
fields declared as "INTEGER" will not be incorrectly taken as a default
primary key anymore.
-
Rewrite the SQLite 3 driver in C. Get rid of all that brain-fucking C++
code. Things should consume less memory, and may be a little bit faster.
GB.DBUS
-
A class inheriting DBusVariant can be used as DBus method return
value.
-
Add DBus.Raise() and DBus[].Raise() to raise signals. At the moment,
there is no difference between the two methods, as there no mean to
indicate the sender raising a signal. I don't know yet how DBus decides
which service sends a signal!
-
Correctly handle array datatypes.
-
Correctly handle NULL values.
-
Correctly marshall DBus structures and arrays.
-
DBus methods that return nothing now send a void reply, otherwise
the caller waits for nothing.
-
DBus._HasSystemTray() is a new method that returns if the DBus
system tray is present. That method is used by the
gb.gui.trayicon
component to know if gb.dbus.trayicon
must be loaded.
-
DBus.Null is a new property that is internally used for representing void
strings. You should have no use of that!
-
DBus.Register() and DBus.Unregister() are now the two methods to
register and unregister a DBusObject under the DBus.Name service.
-
DBus.Session.Register() now can register an object under a specific
service name. If the object path does not start with a slash, then its
first element is assumed to be that service name.
-
DBus._SplitSignature is new method that allows to split a DBus signature.
-
DBus.Register() and DBus.Unregister() are two new
methods to register and unregister a DBusObject under a specific service
name.
-
DBusValues is a new class that must be used when a DBus method canonical
return several values. It works like DBusVariant.
-
DBusVariant now can be inherited. Use the value of the Signature
constant for introspection of methods and properties using a child class
of DBusVariant.
-
DBusVariant() static method has been removed.
-
DBusVariant.Signature is now a constant, not a property anymore.
-
DBusVariant.Value is now writable.
-
Fix org.freedesktop.DBus.Introspectable interface declaration.
-
Fix xml introspection analysis.
-
More debugging messages if DBus.Debug is set to TRUE.
-
Null arguments of DBusObserver are correctly interpreted now.
-
Remove support for calling methods and properties directly from the
DBusApplication class. Why did I do that?
-
Remove the now useless DBusConnection.Raise(). The DBusConnection
Register() and Unregister() are kept for backward-compatibility reason.
-
Show the org.freedesktop.DBus.Peer interface in introspection.
-
Support for sending signals.
-
DBusObject is now marshalled to a DBus object path.
-
The org.freedesktop.DBus.Properties.GetAll method now works
correctly.
-
The org.freedesktop.Properties GetAll() method now effectively send
all properties, even those being null.
-
Unregistering an object now correctly removes it from the children list
of its parent.
GB.DBUS.TRAYICON
-
New component that implements the DBus tray icon protocol and export the
tray icon menu with the DBus menu protocol. It support both KDE and Unity
that are of course not compatible even if they claim using the same protocol.
Thanks again to the Ubuntu guys for badly documenting their custom protocol,
and welcome to reverse engeneering with 40°C outside. The component is
automatically loaded by the GUI component if a DBus system tray is detected.
Otherwise the old protocol is used.
GB.DESKTOP
-
Add support for Unity.
-
Desktop.Type returns "UNITY" now on Unity.
-
DesktopWatcher: Use Desktop.Windows.FromHandle() instead of
Desktop.Windows[].
-
Remove the Desktop.Type property.
-
Start supporting KDE5.
GB.DESKTOP.X11
GB.DRAW
-
Fix Paint text method signatures.
-
Paint.ZoomImage now draws its grid with a dashed line using the specified
grid color and its inverse.
GB.EVAL.HIGHLIGHT
-
Fix highlighting of patterns longer than 255 characters.
-
SQL higlighting: the
`
quote character is taken into account now.
-
SQL: Fix string highlighting.
-
TextHighlighter.ToHTML() is a new method that converts a text into
highlighted HTML.
-
TextHighlighter[] returns a specific highlighter from its name.
GB.FORM
-
Add support for RightToLeft mode in DocumentView.
-
Balloon now works correctly across screens.
-
Balloon won't crash anymore if the control it is associated with
becomes invalid.
-
Balloon won't take focus anymore when being shown.
-
ButtonBox: Setting the Button property now correctly refreshes the
control.
-
Completion: Fix a possible crash.
-
Completion: The completion popup now can be clicked without being
closed, thanks to the new Window.Activate() method that gives the focus
back to the completed text box.
-
Completion: The popup list now follows its top-level window when it
moves.
-
DateBox now works correctly with countries using the same separator
for date and time, like Finnish.
-
FileChooser does not display an error message anymore if the
selected path does not exist. Only if the parent directory is not found.
-
Fix file properties dialog layout.
-
Fix stock icon map for breeze icon theme.
-
Fix the
recent
stock icon for the Breeze themes.
-
IconPanel: When the Count property is increased, new tabs are
correctly visible.
-
IconPanel.Border property behaviour has changed. When set now, the
only the left panel gains a border, and a space to its right. When not
set, the old behaviour is maintained, i.e. no border but a separator
between the left panel and the contents.
-
ImageView uses #808080 as grid color.
-
ImageView.Alignment is a new property that allows to define how the
image is aligned when it is smaller than the view.
-
New
user
and group
icons.
-
New syntaxes in
icon.map
file that allows to specify different
icons for small or big sizes.
-
New widget SpinBar. It's a Gimp style widget that allows
to visualize and modify a value. Unlike spinbox it supports
floating point values.
-
SidePanel.MinSize is a new property to define the minimum size of a
SidePanel before it hides. This property may be removed soon, don't use
it yet.
-
SliderBox: The slider has always a space for the possible minus sign.
-
Some little changes in DateChooser look.
-
Spinner.Wait() is a new method that calls the event loop, and
ensures that it is not called more than every 200 milliseconds.
-
Spinner: Display the label below the rotating spinner.
-
Support for Breeze and Breeze-dark icon themes.
-
TabPanel.CloseButton is a new property that displays a global close
button inside the tab bar. That button raises the CloseAll event.
-
TabPanel: Fix a possible crash.
-
TabPanel: Fix a temporary debugging feature that sometimes could
lead to a crash.
-
TabPanel: Take object locking recursitivity into account.
-
Updated Dutch translations
-
UrlLabel: Display the link URL if the Text property is not set.
-
ValueBox: The Change event is now raised correctly for numeric type.
-
Wizard: Animation is correct now when the Border property is set.
GB.FORM.EDITOR
-
This new component provides a text editor with syntax
highlighting entirely written in Gambas. A bit slower than the old one,
but it will work with any toolkit! Moreover, it can wrap its text.
GB.FORM.MDI
-
Fix shortcut configuration dialog layout.
-
Workspace has now a global close button.
-
Workspace.CloseAll() is new method that closes all workspace
windows.
-
Workspace: Disable some unused code.
-
Workspace: Fix layout routine when the Border property is set.
-
Workspace: Rename an internal method that was in conflict with the
new Window.Activate() method.
GB.FORM.STOCK
-
New
user
and group
icons.
GB.FORM.TERMINAL
-
First commit, nothing usable for now, I just started to write the emulator,
which already represents a large number of lines of code, but the most complex work
was to understand how the entire virtual terminal. Thank you to all available sources,
Xterm, Rxvt, Konsole. I hope to arrive at the end to implement all the functions of VT102.
GB.GTK
-
Actually try to detect the system tray. Only the old protocol is
supported.
-
Add a forgotten source file header symbolic link.
-
Add TrayIcon MiddleClick event.
-
Cache Pango layout in each painter so that it is not recreated at
each text drawing.
-
Clipboard.Current is a new property that tells if the Clipboard
methods and properties operate on the default clipboard or the selection
clipboard.
-
Copying a control font now should works as expected.
-
Desktop.Type is now implemented in the GUI components.
-
Drawing text on an image now has the same result as drawing text on
the screen. They use the same hinting options.
-
Fix a crash when calling Dialog.SaveFile() with a void Dialog.Path.
-
Fix compilation error.
-
Fix enter and leave events handling.
-
Fix keyboard events handling.
-
Fix the old TrayIcon implementation, so that it matches the QT one.
-
Font.H is now a synonymous of Font.Height.
-
Font.Modified is a new property that returns if the font has been
modified, i.e. if one of its properties has been set. This property can
be freely reset. That way, it allows to implement the concept of "default
font".
-
Font.ToString() now uses the point as font size decimal separator.
-
Implement the TrayIcons.DeleteAll() method, and call it at exit.
-
Let the new
gb.gui.trayicon
deals with the dbus stuff, but keep
the old system tray icon and use them on demand.
-
Load the
gb.dbus
and gb.dbus.trayicon
components if the current
desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation.
-
Paint.Font now behaves as expected if one of its property is set.
-
Paint.TextSize does not compute text size twice anymore.
-
Remove TrayIcon Menu event.
-
Row and column arrangement now work correctly with RTL language in
both normal and inverted modes.
-
TextBox: Setting the Pos property during a KeyPress event now works
in all cases.
-
The color properties of the Color class are now correctly read-only.
-
The local Stock class has been deprecated. GTK+ stock icons are not
accessible anymore.
-
Window.Activate is a new method that activates a window.
-
Window.NoTakeFocus works correctly now.
GB.GTK3
-
Actually try to detect the system tray. Only the old protocol is
supported.
-
Add a forgotten source file header symbolic link.
-
Add TrayIcon MiddleClick event.
-
Clipboard.Current is a new property that tells if the Clipboard
methods and properties operate on the default clipboard or the selection
clipboard.
-
Desktop.Type is now implemented in the GUI components.
-
Dialog.SelectFont() does not crash anymore.
-
Drawing text on an image now has the same result as drawing text on
the screen. They use the same hinting options.
-
Explicit call to gtk_printer_option_widget_get_type(), otherwise
printing crashes. But why???
-
Fix a crash when calling Dialog.SaveFile() with a void Dialog.Path.
-
Fix the component name in deprecation warning messages.
-
Fix the old TrayIcon implementation, so that it matches the QT one.
-
Fix warnings by not using deprecated functions. Only
GtkImageMenuItem is kept, because I didn't found a workaround yet of
GTK+3 dropping icons in menus!
-
Font.H is now a synonymous of Font.Height.
-
Font.Modified is a new property that returns if the font has been
modified, i.e. if one of its properties has been set. This property can
be freely reset. That way, it allows to implement the concept of "default
font".
-
Font.ToString() now uses the point as font size decimal separator.
-
Implement the TrayIcons.DeleteAll() method, and call it at exit.
-
Let the new
gb.gui.trayicon
deals with the dbus stuff, but keep
the old system tray icon and use them on demand.
-
Load the
gb.dbus
and gb.dbus.trayicon
components if the current
desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation.
-
Paint.Font now behaves as expected if one of its property is set.
-
Remove TrayIcon Menu event.
-
Right-to-left languages are taken into account by the arrangement
routine correctly now.
-
Row and column arrangement now work correctly with RTL language in
both normal and inverted modes.
-
TextBox.Mouse property works correctly again with GTK >= 3.14.
-
TextBox: Setting the Pos property during a KeyPress event now works
in all cases.
-
The color properties of the Color class are now correctly read-only.
-
The local Stock class has been deprecated. Deprecated GTK+ stock
icons are not accessible anymore.
-
Window.Activate is a new method that activates a window.
-
Window.NoTakeFocus works correctly now.
GB.GUI
-
Use gb.qt5 if the current desktop is KDE5.
GB.GUI.BASE
-
Action: Support for CheckBox controls.
-
Fix Paint.TrimText() routine that trimmed badly is some cases.
-
GridView columns now can have any width.
-
GridView default cell padding is now zero.
-
GridView.Rows[].Refresh now only refreshes the specified row, and
not the entire view.
-
GridView: Don't draw the last grid lines.
-
GridView: Picture alignment inside cells is now correct.
-
GridView: Prevent a possible crash while drawing.
-
GridView: Take the Design property into account.
-
GridView: The contents is not shifted anymore when the Border
property is set.
-
GridView: The cursor is more visible.
-
GridView: The scrollbars use the same background as the view.
-
GridView: Try to not draw the last grid lines if not needed.
-
GridView: Use the new Font.Modified property so that the initial
font of a cell is always the font of the GridView, even if it changed
after the cell has been filled.
-
IconView: Draw is a new event that is raised just after a
specific IconView item has been drawn.
-
IconView: Draw the hovered item differently.
-
IconView: Fix bad detection of hovered item.
-
IconView: Take the icon shape into account when doing a rectangle
selection.
-
ScrollArea is now correctly selectable in the IDE.
-
ScrollArea: Apply foreground color to scrollbars.
-
ScrollArea: Correctly draw the corner background between scrollbars.
-
ScrollArea: Draw the border around the scrollbars now.
-
ScrollArea: The corner widget is now correctly hidden in all cases.
GB.GUI.OPENGL
-
Support for gb.qt5.opengl.
GB.GUI.QT
-
New QT4/QT5 switcher component.
-
Print a warning message if GB_GUI contains an unsupported component.
GB.GUI.QT.WEBKIT
-
New QT4/QT5 WebKit switcher component.
GB.GUI.TRAYICON
-
New component that you must check if you want to have system tray
icons. It loads
gb.dbus
, use DBus._HasSystemTray() to know if it can
load gb.dbus.trayicon
. Otherwise it tells the current GUI component to
declare the old system tray implementation classes.
GB.IMAGE
-
Implement all possible image format conversions.
GB.JIT
-
Fix a warning message when configuration fails.
GB.MARKDOWN
-
Correctly reinitialize the markup routines when an HTML comment has
not been closed.
GB.MEDIA
-
Added the MediaMessage class to process GStreamer messages.
-
Added the MediaPipeline_Event event to catch generic GStreamer
pipeline events, in the form of a MediaMessage object.
GB.NCURSES
-
Fix Window.ReadLine(): getnstr() doesn't return the input length
-
Screen.Beep() is a new method which makes an audible beep
-
Screen.Flash() produces a visual flash on the screen
GB.QT4
-
Add TrayIcon MiddleClick event.
-
Call TrayIcons.DeleteAll() at exit.
-
Clipboard.Current is a new property that tells if the Clipboard
methods and properties operate on the default clipboard or the selection
clipboard.
-
ComboBox background and foreground are now correctly taken into
account both in read-only and editable modes.
-
Default window title is correctly initialized now.
-
Detect system tray with the Qt routine.
-
Desktop.Type is now implemented in the GUI components.
-
Fix component name in warning messages.
-
Fix horizontal inverted arrangement.
-
Fix Qt5 support.
-
Font.H is now a synonymous of Font.Height.
-
Font.Modified is a new property that returns if the font has been
modified, i.e. if one of its properties has been set. This property can
be freely reset. That way, it allows to implement the concept of "default
font".
-
Get rid of Qt3 support library.
-
Let the new
gb.gui.trayicon
deals with the dbus stuff, but keep
the old system tray icon and use them on demand.
-
Load the
gb.dbus
and gb.dbus.trayicon
components if the current
desktop is KDE >= 4. Otherwise, use the old TrayIcon implementation.
-
Minimize X11 window properties changes.
-
Newly created ToolButton does not resize its parent unexpectedly
anymore.
-
Non modal windows opened on top of modal windows now are correctly
closable now.
-
Remove a debugging message in Style.Name property.
-
Remove the now useless XEmbed tray icon implementation.
-
Remove TrayIcon Menu event.
-
Row and column arrangement now work correctly with RTL language in
both normal and inverted modes.
-
Setting Paint.Font to NULL does not crash anymore. It resets the
font to its initial value taken at Paint.Begin.
-
Showing a window now automatically raises it.
-
Some hacks for the Breeze Qt4 style.
-
Support for nul bytes inside QT strings.
-
Support for QT5.
-
The color properties of the Color class are now correctly read-only.
-
The TrayIcon is now based on the QSystemTrayIcon class.
Consequently, as soon as the
sni-qt
library is installed on your
system, the tray icon will become an indicator visible in the Plasma new
system tray, and normally in the Gnome / Unity indicator bar. Beware that
This new TrayIcon does not raise any standard Control events, it is
entirely managed by the system tray.
-
TrayIcon: Correctly raise Scroll event.
-
Trigger pending focus and activate events before showing a modal
dialog.
-
Window.Activate is a new method that activates a window.
-
Window: Redesign the X11 window manager properties management so
that everything works the same in gb.qt4 and gb.qt5.
GB.QT4.EXT
-
Editor.Overwrite is a new property that defines the editor insertion
mode.
-
Editor is now deprecated. Use the TextEditor control of gb.form.editor
component instead.
-
Editor.Print() now supports some ANSI escape sequences.
-
Fixes and enhancements in the ANSI escape sequences management of
the Editor.Print() method.
GB.QT4.OPENGL
-
Get rid of QT3 support library.
GB.QT4.WEBKIT
-
Do not crash when starting a download.
-
Fix a missing space in Makefile.am file.
-
Fix Qt5 support.
GB.QT5
-
Add a new X11 helper function that allows to set the
_NEW_WM_USER_TIME property of a window, so that Window.TakeFocus can be
implemented.
-
New GUI component based on QT5, having the same interface as gb.qt4.
GB.QT5.OPENGL
-
New QT5 OpenGL support component.
-
Use the old OpenGL widget if QT version if 5.3 or lower, and the new
one if QT version is 5.4 or greater.
GB.QT5.WEBKIT
-
New webkit component for Qt5.
GB.REPORT
-
All the classes are exported. Now shadows can work.
-
Fix component dependencies.
-
Now the resolution can be set on printing and on file generation.
GB.REPORT2
-
Replace deprecated Image.Gray() method by Image.Desaturate().
-
Fix the bug on Align.none alignment mode.
-
Fix component dependencies.
-
Dutch translations
-
Refresh the print button icon correctly.
-
Remove a bug on drawing grayscale preview in ReportView.
-
Restore the report scaling after drawing in the DocumentView.
-
Setup component requirement.
GB.SDL2
-
Window.Handle is a new property that returns the window handle.
GB.SIGNAL
-
Raise an error instead of panicking when trying to catch the SIGKILL
or SIGSTOP signal.
GB.UTIL
-
Fix the signature of public methods.
-
Shell.RmDir() now prevents the deletion of the home and any top-
level directories. A new
Force
optional argument allows to bypass that
security.
-
String.Distance() is a new method that returns the Damerau-
Levensthein distance between two UTF-8 strings. It's the minimum number
of operations needed to transform one string into the other, where an
operation is defined as an insertion, deletion, or substitution of a
single character, or a transposition of two adjacent characters.
GB.XML
-
Fixed CDATAs and PIs not correctly handling indentation.
-
XmlWriter now correctly uses the newline separator of the stream
when indenting, instead of always using
n
.
-
XmlWriter now uses a string stream as internal buffer, when needed.
-
XmlWriter: Added a new Close() method to close the attached stream.
-
XmlWriter: Buffers are now correctly flushed when ending a document.
Compilation and installation
Read the instructions
there.
If everything was fine, type "gambas3" to run the development environment.
Enjoy it !
See also