Gambas 3.19.0
What's new?
The main features of this release are the following:
-
Huge interpreter optimizations, making it faster than Python, Perl and Java interpreters in all benchmarks!
-
Support for the russian
e2k
architecture.
-
Many enhancements to the IDE image editor.
-
The IDE can generate AppImage packages.
-
The IDE project tree filter is a lot faster.
-
Add global shortcut to LinkedIn, following KDE merge request #1731.
-
Support for computed GOTO and GOSUB.
-
New Dec and Base$ functions for converting integers in any base.
-
The database component now can retrieve the contents of a newly inserted record, provided that the database driver supports it.
-
The gb.desktop component now uses the freedesktop portal by default if present.
-
A new default icon theme named
gambas-thin
.
-
Better Wayland support in GUI components.
-
A new syntax highlighter component based on definition files: gb.highlight.
-
Add wayland support to the gb.media and gb.media.form components, and fix many problems.
-
Add support for the
dict://
protocol in the gb.net.curl component.
Compilation and installation
Read the instructions
there.
If everything was fine, type "gambas3" to run the development environment.
Enjoy it !
Changelog
CONFIGURATION
-
Add support of C++17 for
gb.poppler
.
-
Update e-mail address in
version.m4
.
-
Update README files.
-
Support for e2k architecture.
-
Fix configuration on Alpine.
-
Get component controls icons both from its
control
directory and the optional associated Gambas project of the same name.
-
Update AUTHORS with Li XiaoKong who finished the translation of the Gambas 3 IDE in simplified chinese.
-
Switch bytecode version to 3.19.
-
Switch version to 3.19.0
DEVELOPMENT ENVIRONMENT
Automatic completion
-
Fix variable detection in PROPERTY...USE syntax.
-
Signatures of
_call
, _get
and _put
are available again.
-
Redraw symbol icons and display static symbols in bold.
Code and text editor
-
The shortcut for formatting is now
CTRL+SHIFT+T
.
-
If no datatype can be guessed for a local variable, use its prefix.
-
Enhance datatype detection for automatic local variable declaration.
-
Hide the "insert date" toolbar button by default.
-
Add newline at the end of snippets where it makes sense.
-
Remove the old code managing "<%" insertion. This is now handled by
gb.form.editor
.
-
Automatic variable declaration now takes
ByRef
arguments into account.
-
Use the new
gb.highlight
component instead of gb.eval.highlight
.
-
Fix CSS file compression when using
calc()
.
-
Fix global editor position history.
-
Correctly analyze property declarations with
USE
including variable initialization.
Color selection dialog
Connection editor
-
Display errors returned when executing a custom request.
-
Use
program
stock icon for system tables.
DBus explorer
-
Add a button that pastes in the editor the DBus call corresponding to the current selected symbol.
-
Use a TabPanel instead of ToolButton for choosing the bus.
Debugger
-
Edited files will not remain locked anymore after the debugger stops.
-
Always reload other project files on each debugging session.
-
The titles of the variable tree now expand on click.
-
Stopping the debugger now kills the debugged process in external debugging mode.
-
Resize newly opened debugger windows to fit the contents vertically.
-
Highlight new lines in debugger windows.
-
Remove the temporary directory of the debugged process automatically when it stops.
-
Do not crash when loading the breakpoints if the project is old.
-
Support for viewing the contents of Picture and Image objects.
-
Automatically remove the temporary desktop file when the project is stopped.
-
Add tooltips to explain the different process data displayed.
-
Add a button to open the temporary directory of the debugged process.
-
Update the debugged process id in real time when debugging a project using the embedded HTTP server.
-
Automatically enable the "Use HTTP server" debugging option when the
gb.web.gui
component is used.
Debugger configuration dialog
-
New dialog look.
-
Add some useful environment variables to the popup menu.
-
Environment menu entries must not be translated.
-
Add debugging environment variables for
gb.media
.
-
Replace
GB_NO_JIT=1
by GB_JIT_ENABLED=0
.
Debugger windows
-
Better colors for errors and changes.
-
Display errors only in the second column.
-
Redesign debugger window interface.
Farm software
-
Fix software download. HTTP headers are not case-sensitive anymore.
File information dialog
File property dialog
-
Take profile files into account.
Form editor
-
Do not apply properties defined in a class of the project.
-
If multiple controls are selected, do not crash when editing common properties if some of the controls are virtual.
-
Allows control properties to be applied when its
_DrawWith
constant is defined.
-
Add the tooltip back in the controls toolbox.
-
Do not set a tooltip for the controls toolbox select tool.
-
Use a specific Splitter icon when its border is set, instead of a drawing the standard container border.
-
String properties that have no default value display a combo-box with a void item.
-
Add support for the new
flag:/
picture URLs.
-
The
DrawingArea.NoMouse
property must be ignored by the form editor.
-
Clicking with the right mouse button to open the popup menu always selects the underlying control, or the form if there is no control under the mouse cursor.
Gambas fonts
-
Some character fixes.
-
Make comma, colon and semi-colon characters a bit bolder.
Help browser
-
Prevent flickering of GTK+3 web view.
-
Some fixes for the offline help.
-
Do not display old page top header when clicking on the result of a offline search.
-
Fix the CSS of the
<H1>
titles of offline help.
-
Use
https
for all wiki links.
-
Fix offline help rendering.
-
Fix help for project classes.
Icon selection dialog
-
Fix initial selection.
-
Remember the last opened tab.
-
Keep the selection when the size changes.
-
Add support for the new
flag:/
picture URLs.
Image editor
-
Crop tool now works as expected.
-
Linear selections can be rotated without crashing now.
-
If the selection is void, the copy action copies the entire image.
-
Rework undo/redo management to fix some problems.
-
Save the status of the grid in the project settings file..
-
Save the status of tools dialogs in the project settings file.
-
Save the grid status on project close, not on form close anymore.
-
Save the status of image offset dialog correctly.
-
Fix selection clear and undo on double click.
-
Fix image resize dialog.
-
Add more default gray colors in the color palette.
-
The
move
tool now moves the contents of the image.
-
Better click on selection shapes for selecting, moving or rotating them.
-
Prevent a possible crash while resizing a selection.
-
Saving the current selection now automatically scrolls the selection list to it.
-
Picking a color on the screen automatically adds it to the color palette.
-
Color palette now displays two lines of buttons.
-
Make color palette buttons a bit bigger.
-
Picking a color on the screen correctly selects it in the palette.
-
Add an handle that allows to define the selection rotation center.
-
Load saved selections only the first time the
Selection
tab is clicked on the image editor property panel.
-
Selections are now stored in their own JSON file outside of the IDE configuration file.
-
Add a draw polygon / star tool.
-
Redesign the shape tab in the property panel.
-
Save PNG with maximum compression level by default.
-
Fix line width used for drawing image grid.
-
Zoom fit is now a toggle that has a permanent effect when toggled.
-
Fix a possible crash when the text to draw changes whereas there is no image editor activated.
-
Rearrange tools configuration.
Make executable dialog
-
Add an option to ignore the
Public
project directory.
Menu editor
-
Do not draw the picture of top-level menus.
Open project dialog
-
Do not crash if there is no project template when creating a new project, even if it should not happen.
-
Add a create project tab.
-
The old project creation dialog has been removed.
-
Remove the
~subversion
template.
-
Creating a new project does not copy the template icon anymore.
-
Add a popup menu on project boxes.
Option dialog
-
New dialog look.
-
Rework internal implementation of UI layout configuration.
-
Add "3.19" in the list of Gambas bytecode versions.
-
Sort themes by name in the combobox.
-
Theme change correctly update editor again.
-
Opening the dialog twice when the "Interface" tab is selected does not crash anymore.
-
Add an option to define the toolbar defaut size.
-
Fix theme configuration.
-
Make the SwichButtons a bit smaller.
Package
-
Support for making AppImage packages.
-
Application identifier is now configurable.
-
Add a wizard step that allows to configure the Ubuntu repositiory and distribution used by AppImageBuilder.
Profiler
-
Profile files are now displayed in the project tree, inside the "Profiles" folder.
-
Profiling windows are now embedded in the workspace.
-
Profile files are now stored inside the ".profile" hidden directory of the project.
-
Add "Remove all profile files" action to the
Debug
menu.
-
When profiling is enabled, change the debugger start icon.
Project browser
-
Opening a file correctly toggles the associated right panel.
-
The
Open
, Open with
, Properties
and Version control
popup menu actions now work as expected.
-
Fix view buttons icon size.
-
The import file menu comes back.
-
Use the new filter event to filter the tree. It's a lot faster.
-
Filtering automatically displays filtered items.
-
Add a button to shrink the view.
-
Add a button to display all items.
-
Use the new TreeView CollapseAll() and ExpandAll() methods.
-
Put the option buttons inside the filter popup menu.
-
The tree stopped refreshing in some cases.
-
Correctly refresh the filter menu when the project is put under version control.
-
Double-click now collapses a folder.
-
Fix collapsing and expanding on mouse click.
-
All tree icons are cached, making filtering refresh faster.
-
Refreshing it now collapses it.
-
Adding a new file correctly updates the tree now.
-
Do not expand an item on double-click if this item is not a directory. Just open it.
-
Add a "refresh project" entry in the filter menu.
-
Use the new TreeView Highlight property.
-
Fix profile popup menu.
-
Adding new files is possible again.
-
Fix popup menu contents.
-
Use tiny icons.
-
Giving a source directory the same name as a form does not hide its contents anymore, when the "Display form class files" option is toggled.
-
Don't trash the current selection when filling the project tree while expanding a parent directory.
-
Correctly initialize "show all classes" and "use inheritance" project tree options.
-
Fix popup menu of external files.
-
The shrinked view is now the default view when opening a project.
Project management
-
Display an error message when sending a project by mail fails, instead of crashing.
-
Display the executable path in the status bar message when making an executable.
-
Automatically compile the project when it is opened if it has never been compiled.
-
Use the current icon theme icons to make the project directory icon.
-
Redraw the overlay of translatable project icons.
-
Generate the project directory icon each time the project is loaded.
-
Display duration of executable generation.
-
Project version is now stored in the
.version
file. Backward-compatibility is ensured by synchronizing the version number in the .project
file too.
-
Use the new
-b
compiler option to force the bytecode version instead of the GB_PCODE_VERSION
environment variable.
-
Fix symbolic link generation when importing a file from the same project in the same directory.
-
Save the project icon as
.app.png
, so that it can be put into the executable.
-
Projects now are compiled with the maximum number of background tasks by default.
-
Correctly catch compiler messages on incorrect command-line arguments.
Project properties dialog
-
New dialog look.
-
Show a flag with project default language.
-
Add a new tab that allows to define a list of environment variables that will be set at startup.
-
Add the environment popup menu from the debugger configuration dialog.
-
Add the project data files size in the statistics tab.
-
The "Properties" tab information is correctly saved and restore now.
-
Use the
news
stock icon for representing environment variables.
Search dialog
-
Avoid a possible crash on automatic refresh.
-
Avoid looping error messages when trying to refresh a file that does not exist anymore.
-
CTRL+SHIFT+F and CTRL+SHIFT+R now open the search dialog for searching or replacing all files.
-
Prevent a possible crash when computing search result position.
System information dialog
-
Add more informations, and change the order.
-
Display the version of SDL2, not SDL.
-
A little redesign. More programs checked.
-
Run version check in the background.
Test suites
-
Fix the behaviour of the test suites interface when a test suite has no test.
Translation dialog
-
New dialog look.
-
Show flags with languages.
-
Import translation now takes the
# gb-ignore
comment into account.
-
Add a new tab that allows to import all translations from another project.
Welcome dialog
-
Add a tool button that opens the project sort popup menu.
Version control
-
Move repository information to its own dialog.
-
Some fixes in the repository dialog.
-
Add the
Locate change
button to the global version control dialog.
-
Automatically revert unimportant files (
.icon.png
and .gitignore
) before switching to another branch.
-
Add a button that switch to the selected branch.
-
Add
.version
to the list of unimportant files that are automatically reverted on branch change or project close.
-
Move "Create new branch" button to the right in the debugger panel.
-
Replace branch selection menu by a list embedded in the project tree panel.
-
Wait less for version control commands.
-
Fix display of check-boxes at bottom of the version control dialog.
Miscellaneous
-
Update French translation.
-
Update Dutch translation.
-
Update Spanish translation.
-
Update Italian translation.
-
Remove
es_ES
translation.
-
Update Simplified Chinese translation.
-
Update Spanish translation by Martin Belmonte using Crustacea translator.
-
Update financial support file.
-
Redraw modules icons.
-
Support for
gb.gui.qt.ext
component.
-
You have now to double-click on a warning to go to the associated line of code.
-
Add a button to copy all compiler warnings to the clipboard.
-
Clip the right of the status label when there is not enough space.
-
Add global shortcut to LinkedIn, following KDE merge request #1731.
-
Project directory icon can be updated with the
--update-icon
command-line option.
-
IDE usage help is now translatable.
-
Keep the authorizations when saving a file.
-
Support for the new
gb.highlight
component.
-
Some little changes in the Gambas color theme.
-
The
gitignore
file has been updated to ignore profile files.
-
Fix file header text in the message of confirmation dialogs.
-
Fix layout of some confirmation messages.
-
Do not load recent file settings twice at startup.
-
Do not update the
.gitignore
file to a lower version than the current one.
-
Fix workspace current form activation on project change.
-
Update default IDE layouts.
-
Use Toolbar class almost everywhere, so that the size of the icons is configurable.
-
Use
Shell.RmDir
instead of running "rm -rf".
-
Remove unused and now incorrectly overridden
Id
property from SoftwareBox
class.
WIKI
-
New wiki look.
-
Update Dutch translation.
-
Update French translation.
-
Update Italian translation.
-
Update Spanish translation by Martin Belmonte using Crustacea translator.
-
Adapt to the last changes in
gb.markdown
.
-
The search entry is now in the seach page.
-
Fix symbolic links on stock icons.
-
Fix index generation.
-
Fix CSS of box icons.
-
Fix behaviour of preview.
-
New presentation for class symbols list.
-
Update icons to gambas-thin theme.
-
Update style sheet so that it handles highlighted code using
<TT>
instead of <PRE>
.
-
Allow to toggle the display of inherited symbols.
WEB SITE MAKER
-
Update Dutch translation.
EXAMPLES
-
GameOfLife: French Translation.
-
MoviePlayer: Force the use of
gb.qt4
, as only that component has the Embedder control.
INTERPRETER
-
WAIT
with no argument now behaves as before when no component specific WAIT
handler is defined.
-
Delete temporary files when the
QUIT
instruction is used.
-
Forked processes now use fast exit, to avoir a possible crash.
-
Application.TempDir
is a new property that returns the temporary directory used by the interpreter for the current process.
-
The support for external debugging now uses the project name stored in the
.startup
file, not the executable name, which may be different.
-
Set environment variables at startup from the
.environment
file.
-
Add implicit conversion of
Boolean
, Byte
and Short
values into Pointer
.
-
Fix a test that leads to a crash when gcc optimizations are enabled.
-
When using an intermediate temporary stream, copy the behaviour flags from the original stream.
-
Alloc()
now fills the allocated memory with zeros when used with two arguments.
-
Object.Data()
is a new method that returns the address of the data of an object.
-
Support for the new
Eval()
feature.
-
Correctly free environment declared in the project configuration at program exit.
-
When a signal handler is set, ensure that the signal is not blocked.
-
Correctly read the project name in the
.startup
file.
-
Fix common integer loop optimization.
-
Allow to open a directory in direct mode for reading only, as Linux allows that.
-
Fix
&=
operator optimization on global string variables.
-
Support for
e2k
architecture.
-
Don't crash if the argument of
SizeOf()
is incorrect, but raise an error instead.
-
Prevent some optimizations that cannot work in a just-in-time context.
-
Fix a typo in an error message.
-
Add
Dec()
/ FromBase()
subroutines.
-
Add
Base()
/ Base$()
subroutines.
-
Some support for older versions of gcc without overflow detection.
-
Free two more bytecodes.
-
Disable gcc indirect branch tracking for main interpreter function. This Intel security feature makes the interpreter 20% slower!
-
Do not try to disable CTE support if gcc does not have the corresponding flag.
-
Shortcut path for adding a small integer or float constant number.
-
Optimize object release for native integer and float arrays accessors.
-
Implementation of computed Goto and GoSub.
-
Big optimization of the interpreter loop by using a local program counter.
-
Optimize stack pointer manipulations in the main interpreter loop. About 10% speed gain according to the benchmarks!
-
Optimize object creation when there is no special method to call (
_new
, _ready
, global variable initialization) and no inheritance.
-
Correctly initialize functions without computed
Goto
or GoSub
.
-
FromURL()
does not decode +
into a space before having encountered the ?
query delimiter character.
-
When loading a class fails, display an accurate error message.
-
A global class find does now a global class lookup. It seems more logical.
-
INPUT
ignores leading spaces characters now.
-
Fix a bad optimization in fast array accessors.
-
Add a new process objet to the internal process object list after signals have been checked.
-
Fix some problems detected by
CppCheck
tool.
-
Add support for
GB_JIT_ENABLED
environment variable. GB_JIT_ENABLED=0
is a synonymous of GB_NO_JIT=1
.
-
Component.Version
now returns the actual version of the underlying Gambas executable if it has one. Otherwise, i.e. for a component with no Gambas code, it returns the interpreter version.
-
Application_Log
is a startup class global method that intercepts all output sent on the standard error output by the Error
or Debug
instructions.
-
Fix the object serialization cache of
READ
and WRITE
instructions.
-
Fix a memory leak when unserializing the return value of a Task.
-
Don't leak memory if serialization or unserialization fails.
-
Add
Stream.NoShare
property, that allows to tell the stream not to share objects when using the WRITE
instruction.
-
Small optimization of inequality comparison operators.
COMPILER
-
Write the name of the project in the
.startup
file.
-
Generate the
.environment
files with the list of environment variables that must be set at startup.
-
+Inf
and -Inf
do not prevent the next pattern to be a reserved keyword anymore.
-
Add
Dec()
/ FromBase()
subroutines.
-
Add
Base()
/ Base$()
subroutines.
-
Free two more bytecodes.
-
Optimize the compilation of floating-point global constants being actually an integer between
-128
and 127
.
-
Shortcut path for adding a small integer or float constant number.
-
Using a label inside an expression now raises an error.
-
There is a maximum of 1023 labels by function now.
-
Implementation of computed
Goto
and GoSub
.
-
Fix initial detection of labels when compiling a function.
-
Use one short integer less in the bytecode files for each function using computed
Goto
.
-
Make
"%>"
a keyword for syntax analyze of gambas code embedded into a WebPage.
-
Embedded arrays do not raise warnings on being uninitialized anymore.
-
Fix compilation of numbers added (or substracted) to dates.
-
The project version is now stored in the
.version
file.
-
Add
-b
option, that allows to force the bytecode version, like the GB_PCODE_VERSION
environment variable.
ARCHIVER
-
Add a
-p
option to ignore the .public
directory.
-
Handle hidden files only in the project root directory.
-
Make code compile on older versions of gcc.
-
Add the
.environment
file to the archive.
-
Add the
.app.png
file into the executable if present.
SCRIPTER
-
Update project icon.
-
Update Spanish translation by Martin Belmonte using Crustacea translator.
-
Returns
127
whe a file not found, not -2
that does not work anymore.
BENCHMARKS
-
Fix the HTML table generation.
-
Rename the
string
benchmark as string1
, to avoid name clashes in Python.
-
Add a new
btree
benchmark, that does a lot of object creation and recursive function calls.
TEMPLATES
-
Update template projects.
-
Update project templates icons.
-
Update GTK+2 and GTK+3 template project icons.
SELF-TESTER
-
Add integer overflow tests
-
Add test for
System.IgnoreOverflow
.
-
Update Italian translation.
-
Update Spanish translation by Martin Belmonte using Crustacea translator.
-
Update project icon.
-
Force the use of
gcc
. Apparently there is a bug in clang
optimizer that generates incorrect code.
GB.ARGS
-
Update Dutch translation.
-
Update Italian translation.
-
The default value of
Args.Get()
is now printed in the default help text.
GB.COMPRESS
-
Clean-up the code: spaces, indentation...
-
Compress: Add a static array read accessor to return a new Compress object of a specific type.
-
Uncompress: Add a static array read accessor to return a new Uncompress object of a specific type.
-
Fix some typos.
GB.DB
-
Connection: The
FullVersion
property now return the full version string of the database server.
-
Connection:
Create()
now takes an optional Return
boolean argument to tell if the Result.Update()
method will fill the Result with the contents of the newly inserted record. It is based on the optional INSERT INTO ... RETURNING
SQL feature.
-
Connection:
ApplyTemplate()
correctly removes the temporary tables created by the updating process.
-
Database drivers now must provide the full version string of they database server they connect to.
-
Database drivers can tell if they do not support the
RETURNING
keyword.
-
SQLRequest
now can return part of SQL requests without action or table.
-
Connection.Create()
now takes an extra optional boolean argument that tells not to raise an error if the newly created record already exists, i.e. if there is no conflict when inserting the new record in the database.
GB.DB.FORM
DataBrowser
-
Add
Find()
and FindNext()
method from DataView.
-
When a new record is created, move the view to the newly created record.
DataSource
-
Invalid
is a new event that is raised when the value entered for a specific field is invalid. If that event is stopped, the default warning message is not displayed.
-
Find()
and FindNext()
methods now correctly detect the current connection.
-
When a new record is created, move the index to the newly created record.
-
When a new record is created, moving the index to the newly created record works when some fields are serial.
-
Find()
method now takes the ascending / descending sort order into account.
-
Fix
Find()
method on PostgreSQL, that requires sub-query aliases even if the alias is not needed!
-
Undone the old optimization from 2011 that prevent controls to be refreshed when the Connection property changes.
DataTable
-
Write the SQL request of the
Find()
method is a way that is compatible with MySQL.
DataView
-
Find()
searches the entire view, whereas the new FindNext()
searches from the current index.
-
Selecting a combo on a cell of the new record line does not refresh the DataSource controls incorrectly.
-
MoveNext()
has no effect if we are in creation mode.
-
MovePrevious()
moves to the last record if we are in creation mode.
-
The
MoveTo()
method raises the Activate event when it was in creation mode before moving.
-
Correctly unselect all lines when we are in creation mode and the view is not editable.
Miscellaneous
-
Update Dutch translation.
-
Update documentation.
-
Update project icon.
GB.DB.MYSQL
-
Tells if
RETURNING
keyword is implemented.
-
Support for new
Connection.FullVersion
property.
-
MySQL 8.0.34 does not support automatic reconnection anymore.
-
Support for ignoring conflicts when inserting a new record.
GB.DB.ODBC
-
Tells if
RETURNING
keyword is implemented.
-
Support for new
Connection.FullVersion
property.
GB.DB.POSTGRESQL
-
Tells if
RETURNING
keyword is implemented.
-
Support for new
Connection.FullVersion
property.
-
Support for ignoring conflicts when inserting a new record.
-
The
default
collation is now returned as the void collation.
GB.DB.SQLITE2
-
Tells if
RETURNING
keyword is implemented.
-
Support for new
Connection.FullVersion
property.
GB.DB.SQLITE3
-
Tells if
RETURNING
keyword is implemented.
-
Support for new
Connection.FullVersion
property.
-
Correctly tell if
RETURNING
keyword is implemented.
-
Support for ignoring conflicts when inserting a new record.
GB.DBUS
-
DBus:
MachineId
is a new property that returns the DBus machine identifier.
-
DBusConnection:
Exist()
acts on the current bus as expected.
-
DBusConnection: Add a
Start()
method that starts a DBus service by name, and waits until it is available.
-
DBusConnection:
Exist()
and Start()
methods now use the /org/freedesktop/DBus
object path, because DBus on Fedora does not use the /
object path.
-
DBusProxy: Correctly manage DBus names being case sensitive whereas Gambas symbols are not.
-
DBusSession: Exist() is a new method that returns if a specific name is available on the bus.
-
DBusSignal: The constructor takes more optional arguments. Backward-compatibility is ensured.
-
Fix a possible memory leak in DBus introspection.
-
DBusObject: Implement the
GetMachineId()
DBus method.
-
DBusFile is a new class that implements the
h
DBus datatype that encapsulates a file descriptor.
-
Support for file descriptor
h
DBus datatype.
-
Try to fix DBusFile class with no success at the moment.
-
Update documentation.
-
Update project icon.
GB.DBUS.TRAYICON
-
Raise the
LayoutUpdated
D-Bus signal when the current desktop is Mate
.
-
Raise the
Menu
event when the PopupMenu property is not set and the right button may have been clicked.
GB.DEBUG
-
Fix quoting when displaying a string value.
-
Make the debugger more robust when writing on a fifo fails. Reopen the fifo if needed.
-
Sending a void line to the debugger repeats the last command only if the debugger is run from the command line.
-
If the
GB_DEBUG_DEBUG
environment variable is 1
, then a message is printed each time the debugger fifo fails and must be reopened.
-
Put the project name inside the profile file.
GB.DESKTOP
-
Support for freedesktop portal.
-
Desktop:
UsePortal
is the new property that tells if the desktop portal can be used or not. If not, xdg-utils
scripts are used instead.
-
Desktop:
PickColor()
is a new method that pick a color on the screen using the freedesktop portal.
-
Desktop:
Screenshot()
now uses the freedesktop portal if we are not using X11. Not fully useful, are there is no option for not capturing the mouse cursor!
-
Desktop:
Open()
now uses the freedesktop portal if available.
-
Desktop:
SendMail()
now uses the freedesktop portal if available. Apparently attachments are not taken into account by Thunderbird through the portal.
-
DesktopFile:
_Data
is a new hidden property that returns the collection used by DesktopFile
internally.
-
DesktopFile: Add
DesktopActions
property and _DesktopFile_Actions
class to manage actions.
-
Update
xdg-utils
to the current master.
-
Remove some unused variables.
GB.DESKTOP.X11
GB.DRAW
-
Support for
Style.Default
constant.
GB.EVAL
-
Highlight:
LengthBefore
is a new property that returns the number of analyzed characters before the possible rewrite.
-
Highlight:
IsFunction
is a new property that returns if Highlight.Analyze()
got a function declaration.
-
Highlight:
Analyze()
got a new optional boolean parameter that stops the analyze when the "%>" token is encountered.
-
Correctly rewrite lines using the
ERROR
keyword in a one-line IF
expression.
-
Eval()
now can evaluate several expressions at once, provided that they are separated by newlines. The value of the last expression is returned.
-
Eval()
now returns NULL if its last expression returns nothing.
GB.EVAL.HIGHLIGHT
-
The component is now deprecated.
-
TextHighlighter: The
Tag
property is actually a Short.
-
TextHighlighter: Fix possible overflows.
-
TextHighlighter: The
State
property is now a Short too.
-
Add
accent-color
CSS property.
-
Move old code to project files.
-
Fix unit tests.
-
TextHighlighter.ToHTML()
correctly handles multiple lines again.
-
TextHighlighter.ToHTML()
does not emit a void line at the beginning anymore.
-
Update Dutch translation.
-
Correctly position pointer after finding escaped quote and escaped single quote in
sh
highlighting.
-
Raise an error early if we try to load
gb.eval.highlight
when gb.highlight
is loaded.
GB.FORM
ButtonBox
-
Add
FilterPicture
property, that allows to change the picture displayed by the filter button.
ColorChooser
-
Use the new
Desktop.PickColor()
function to pick a color.
-
Picking a color on the screen now raises the
Activate
event.
ColorPaletter
-
Add a
Size
property that defines the size of a color button.
-
Color buttons layout can be vertical or horizontal, on multiple lines or columns.
-
Fix detection of color button under the cursor.
Completion
-
Add support for
TextEditor
.
DirChooser
-
Setting the
Root
property works again as before.
FileChooser
-
Use the new FileView
View
event to correctly synchronize the view button states.
-
Setting the
Root
property works again as before.
FileView
-
Do not disable the file watch when the control is hidden, but when the control is detached from its parent.
-
Contents refresh is now always forced when neeeded.
-
Do not crash if a file has disappeared when reloading the view.
-
Prevent a possible infinite refresh and preview recursion when some properties are read during the
Refresh
event.
-
Draw the preview icon overlay on the bottom.
-
Read the output of the preview task more reliably.
-
ShowDetailed
is now deprecated.
-
Setting
ShowDetailed
to TRUE has now the same effect as setting View
to Detailed
.
-
New
View
event that is raised when the View
property has changed.
IconPanel
-
Display the titles using the same look as TabPanel.
ImageView
-
The mouse wheel zooms the image if the
UseMouse
property is set.
-
Take
Application.Shadows
into account.
-
The default mouse wheel management uses integer scales for zooms greater or equal than 200%.
MenuButton
-
Call the event loop before opening the popup menu, otherwise it may pops up at the wrong place on Wayland.
-
If the button has just a picture, then center it.
-
Use the new
Menu.Popup()
extra arguments to ensure that the popup menu is correctly positioned on Wayland.
SidePanel
-
Prevent the panel size from being lower than the minimum size after being hidden.
Stock
-
GetFlags()
is a new method that returns a stock flag from its key.
-
Flags
is a new property that returns the list of all available stock flags.
-
Fix support for KDE desktop.
-
Search new KDE5 configuration files before the old ones.
SwitchButton
-
Change the way it is drawn, so that it's a bit more "readable".
-
Little enhancements in the drawing routine.
-
Smaller button and better use of system colors.
TabPanel
-
New look.
-
The little arrow buttons now scroll the tab bar contents.
-
Fix tab buttons layout and right-to-left behaviour.
ValueBox
-
Add Unselect() method to unselect the selected text.
Miscellaneous
-
Update Dutch translation.
-
Update Italian translation.
-
Add documentation.
-
Add many stock icons, and redraw many others.
-
Update stock icons map.
-
Desktop directory icons initialisation does not crash anymore if a specific desktop directory does not exist.
-
Fix runtime deprecation messages.
-
Correctly detect the icon theme on Ubuntu desktop.
GB.FORM.DIALOG
-
Update Dutch translation.
GB.FORM.EDITOR
-
Use the new
gb.highlight
component instead of gb.eval.highlight
.
-
TextEditor: Add documentation.
-
TextEditor: The highlight state can be a Short.
-
TextEditor: Fix the documentation of
FindNextString()
and FindPreviousString()
methods.
-
TextEditor: Do not highlight matching braces if some text is selected.
-
TextEditor: Highlight text between matching braces instead of just highlighting the braces.
-
TextEditor: Try to make automatic string closing more clever.
-
TextEditor: Triple click now selects the entire line.
-
TextEditor: Diacritics are not word limiters anymore.
-
TextEditor: Word selection now always stops at non words limits.
-
TextEditor: Correctly handle quotes at the beginning of the line without crashing.
-
TextEditor: PageUp and PageDown now move the same number of lines.
-
TextEditor:
Keywords
property works again.
-
TextEditor: Highlight background of included highlighters the same way as
gb.highlight
, with colors.
-
TextEditor: Draw folding signs a bit smaller.
-
TextEditor: First line can be folded again.
-
TextEditor: Do not draw bottom limit of cursor highlight on the last line.
-
TextEditor: Do not draw top limit of cursor highlight on the first line.
-
TextEditor:
GetHighlight()
now can return the nested highlighting index of each token.
-
TextEditor:
Clear()
method and Text
property now correctly reset all editor views.
-
TextEditor:
Rewrite
is a new property that allows the highlighting to rewrite the editor contents. It's TRUE by default.
-
TextEditor:
TextEditor[].Purge()
now highlights up to the requested line before returning its contents.
-
TextEditor: Fix
KeyPress
event triggering twice by always using Stop Event
-
TextEditor: In
WebPage
mode, typing "<%" automatically inserts "%>" now.
-
TextEditor: Display shadows on margin too.
-
Update Italian translation.
-
Update Dutch translation.
GB.FORM.HTMLVIEW
-
Update to
litehtml
0.9.
-
Component is marked stable now.
-
Update broken image icon.
-
Update
master.css
.
GB.FORM.MDI
-
Toolbar: Prevent resize infinite recursion.
-
Toolbar: Correctly position separator when the toolbar size changes.
-
Toolbar:
ReadOnly
is a new property. When set, you can't configure the toolbar contents, but only the icon size. The Key
property must be set anyway.
-
Toolbar:
DefaultSize
is a new static property that allows to define the default size of all toolbars.
-
Toolbar: Do not disable the toolbar icons container when setting the layout, it breaks toolbars that are globally disabled.
-
Toolbar: The default value of the
Size
property is void, meaning that the default toolbar size is used.
-
Update control icons.
-
Update Dutch translation.
-
Update Italian translation.
GB.FORM.PRINT
-
Update Dutch translation.
GB.FORM.STOCK
-
Redraw and add many icons.
-
Add
gambas-thin
icon theme.
-
Add 256 pixels square icons of all country flags.
-
Generate more icon sizes for Gambas icon themes.
GB.FORM.TERMINAL
-
TerminalView: Characters attributes are correctly kept when the screen size changes.
-
TerminalView:
e[21m
does not unset bold
attribute, but e[22m
unsets both bold
and dim
attributes.
-
TerminalView: Fix bracketed paste.
-
TerminalView: Fix text paste.
-
Update Dutch translation.
GB.GTK
-
DrawingArea:
NoMouse
is a new property that makes the control transparent to mouse events.
-
Image:
Save()
quality argument is correctly taken into account with png
format, the same way as in Qt.
-
Image:
ToString()
is a new method that saves an image into a string.
-
Menu: Setting the
Radio
or the Toggle
property now correctly keep the Enabled
state.
-
Menu: Popup() method takes a new optional argument that allows to specify the control that opens the menu. It ensures that the menu is at the right place on Wayland.
-
Picture:
ToString()
is a new method that saves a picture into a string.
-
Style: Add
Default
constant. It tells the Style routine to use the current painted control (if it exists) as a context.
-
TextArea: Mouse grab on click is not disabled anymore.
-
TextArea: Setting the
Line
or Column
property when there is no text does not crash anymore.
-
UserContainer: Now it can declare the same special event handlers as UserControl.
-
UserControl: Special event handlers can be declared indepently. Declaring
UserControl_Draw
is not required anymore.
-
Window:
Geometry
is a new property that returns the last geometry of the window in normal state.
-
Let pango take the target device resolution into account when drawing text.
-
Do not mix arrangement flags and user control flag in the Container implementation.
-
The
Drop
property of editing controls (TextBox, TextArea...) is now TRUE by default.
-
Remove the undocumented
Container.Dirty
property.
-
Fix automatic arrangement of top-level windows with menus.
-
Correctly enable shortcuts before opening a popup menu, and disable them after closing it.
-
Fix a possible crash when creating a new TextArea control.
-
Workaround deprecation of
pango_find_base_dir
API.
-
Don't use
pango_find_base_dir()
replacement if the function is not deprecated.
-
Lower the version requirement on
libfribidi
.
-
Fix drag & drop when dropping from another application.
-
Fix drag and drop of non standard text format.
-
Do not raise events when a control is locked.
-
Prevent a disabled timer from sometimes raising its event.
-
Support for getting the handle of a Wayland window correctly.
-
Support for getting wayland display and surface pointers.
-
Fix compilation on glib older than 2.74.
-
Define the window default icon from the application icon.
-
Fix standard dialog default titles.
-
Fix mouse cursor management.
GB.GTK3
DrawingArea
-
NoMouse
is a new property that makes the control transparent to mouse events.
Button
-
Fix foreground color management.
Container
-
Remove the undocumented
Container.Dirty
property.
Control
-
Do not raise events when a control is locked.
Image
-
Save()
quality argument is correctly taken into account with png
format, the same way as in Qt.
-
ToString()
is a new method that saves an image into a string.
Menu
-
Setting the
Radio
or the Toggle
property now correctly keep the Enabled
state.
-
Popup() method takes a new optional argument that allows to specify the control that opens the menu. It ensures that the menu is at the right place on Wayland.
Panel
-
Panel now always has its own window, otherwise its children controls will eat events if they overlap other controls anywhere.
Picture
-
ToString()
is a new method that saves a picture into a string.
ScrollBar
-
Fix background color management.
Slider
-
Fix background color management.
Style
-
Painting the backgroud correctly takes the background color into account, unless for active state (i.e. pressed buttons).
-
Add
Default
constant. It tells the Style routine to use the current painted control (if it exists) as a context.
TextArea
-
Mouse grab on click is not disabled anymore.
-
Setting the
Line
or Column
property when there is no text does not crash anymore.
-
Fix a possible crash when creating a new TextArea control.
Timer
-
Prevent a disabled timer from sometimes raising its event.
UserContainer
-
Now it can declare the same special event handlers as UserControl.
UserControl
-
Special event handlers can be declared indepently. Declaring
UserControl_Draw
is not required anymore.
Window
-
Geometry
is a new property that returns the last geometry of the window in normal state.
-
Fix automatic arrangement of top-level windows with menus.
-
Define the window default icon from the application icon.
-
Use
gb.gui.base
utility method to initialize the application id associated with each window on Wayland.
Miscellaneous
-
Let pango take the target device resolution into account when drawing text.
-
Do not mix arrangement flags and user control flag in the Container implementation.
-
The
Drop
property of editing controls (TextBox, TextArea...) is now TRUE by default.
-
Correctly enable shortcuts before opening a popup menu, and disable them after closing it.
-
Workaround deprecation of
pango_find_base_dir
API.
-
Don't use
pango_find_base_dir()
replacement if the function is not deprecated.
-
Lower the version requirement on
libfribidi
.
-
Fix drag & drop when dropping from another application.
-
Fix drag and drop of non standard text format.
-
Support for getting the handle of a Wayland window correctly.
-
Support for getting Wayland display and surface pointers.
-
Fix compilation on glib older than 2.74.
-
Fix standard dialog default titles.
-
Fix mouse cursor management.
GB.GTK3.WEBVIEW
-
WebView: Raise signals correctly, in order, without duplicates.
-
WebView: Fix some use of deprecated API.
-
WebView: Scrollbars came back thanks to a user style sheet. No idea why they are not visible anymore by default.
-
Automatically destroy the hsts cache directory at component unload.
GB.GUI.BASE
Application
-
Icon
is a new property that returns the application icon as defined in the project properties.
ColumnView
-
Extra columns are automatically resized too when
AutoResize
is True.
ComboBox
-
The Selection property now works correctly.
-
The popup now uses the same font as the ComboBox.
-
Mouse wheel events are take into account only in read-only mode.
-
Mouse wheel events can be intercepted and stopped now.
-
Make the Gridview used in the popup not resizable.
-
Changing the combo-box contents while the popup is opened now correctly updates the popup and should not crash anymore.
-
Fix mouse wheel and keyboard management when the ComboBox is editable.
Desktop
-
Type
property always use Env
if it is set, when Env
is not set.
-
Type
does not crash anymore if XDG_CURRENT_DESKTOP
is not defined.
-
Is()
method now checks the provided type with a X-
prefix added too.
Drag
-
Support for URI list now uses the
Url()
and FromUrl()
interpreter functions.
-
Temporary hack that correctly raises
DragMove
events in all cases when the mouse cursor is on the DnD frame.
GridView
-
Take
Columns.Padding
property into account when computing the preferred width of a column.
-
Add some documentation.
-
Fix right-to-left layout management and drawing.
-
Painting does not crash anymore when there is no column or no row.
-
Hidden rows are always returned as not selected.
-
Ignore hidden cells when moving the cursor by using the keyboard.
-
Hidden cells are ignored by
EnsureVisible()
method.
-
Handle the
Highlight
property at the GridView
level.
-
Lighter row highlighting.
-
GridView[] has a new
Visible
read-only property that returns if a cell is visible.
-
Using up and down arrow keys now ensure that the cursor is on a visible cell before trying to move.
ListBox
-
Handle key press events for finding items, like
ComboBox
.
-
Add
Highlight
property to highlight the listbox entry under the mouse cursor.
Picture
-
Add support for
flag:/
stock flags paths.
ScrollArea
-
Implement the
Border
property with the new UserContainer_Draw
special event handler, so that DnD is not broken on GTK+2.
-
Adapt mouse wheel scrolling to client size.
-
Draw better shadows.
-
Shadows are directly painted without creating widgets, so that the area contents can catch mouse events correctly on the shadows. But ScrollView still use widgets to draw the shadows, so that they are always on top of the children of the ScrollView.
ScrollView
-
ScrollTo()
is a new method that ensures a specific child is visible, and that works even if the ScrollView
contents is not yet arranged.
-
Fix automatic resize according to contents.
-
Use the new
DrawingArea.NoMouse
property to make the shadows transparent to mouse events.
SpinBox
-
Support for right-to-left written languages.
-
Fix behaviour when
ShowSign
or ShowZero
property is set.
-
Keep the normal background when setting
ReadOnly
property to TRUE.
-
Fix the behaviour when
ReadOnly
is True.
TreeView
-
Make the Item property always available during the Click event handler.
-
Don't check item spans until the item
Span
property is used.
-
Remove the debugging red rectangle drawn when
ShowCheck
property is TRUE.
-
Expanding an item with the mouse ensures that the expanded contents is visible. Setting the
Expanded
property manually now does not ensure that anymore.
-
Filter()
is a new method that must be called each time the filtering state changes.
-
Filter
is a new event that allows to filter the view.
-
Items got a
Visible
property, that allows to hide it.
-
Item height computation is faster now.
-
Add
ExpandAll()
and CollapseAll()
methods.
-
Add
ExpandAll()
and CollapseAll()
methods to items.
-
Adding a new item now raises the Filter event on it.
-
Fix right-to-left language support.
-
Fix the rename control management, and so a possible infinite loop.
-
Add
Highlight
property to highlight the item under the mouse cursor.
Miscellaneous
-
Update Dutch translation.
-
Remove test forms that do not compile.
-
Update documentation.
-
Add an utility method that creates a temporary desktop file in
~/.local/share/applications/gambas
so that wayland shell can display the application icon for each window.
GB.GUI.QT.EXT
-
New component switcher for choosing between QT4 or QT5 extension component.
GB.HASH
-
Add
Hash.Crc32()
method for fast checksum.
GB.HIGHLIGHT
-
New component that allows to define a syntax highlighting for a definition text file. It replaces
gb.eval.highlight
.
GB.IMAGE
-
Color:
ToHTML()
is a new method that converts a Gambas color as integer value to an HTML color representation.
-
Add an API that inverts an image for the
gb.image.effect
component.
GB.IMAGE.EFFECT
-
Make
Image.Invert()
compatible with the method with the same name in gb.image
.
GB.JIT
-
Fix arithmetic overflow detection on datatype conversion.
-
Fix JIT compilation on old compilers that do not support arithmetic overflow check.
-
Optimize conversions from Pointer datatype.
-
Correctly translate
On ... Goto / Gosub
jumping backward.
-
Support for new bytecodes.
-
Support for computed Goto or GoSub.
-
Optimize the
Asc()
function.
-
Update project icon.
-
Generate code that
clang
can compile.
GB.MAP
-
_MapShape: Take the inner polygons into account when drawing
-
Map: Do not allow to set a null
MapPoint
to the Center
property.
-
Add new functions to MapPoint class to get MapPoint from text representation and get string from mappoint.
-
_MapTile: Fix bad file naming for tiles (curious artifact on httpClient.Tag).
-
Add
MapPoint.SwapAll()
to swap the values Lat/Lon of an array of MapPoints
-
MapPoint: Add
ArrayFromString
and ArrayTo String
to convert MapPoint From/Into string using the Lat,Lonn
format.
-
Add
Geo.TransformMPArray
Allow to speed Up the coord transformation by working by batch.
GB.MARKDOWN
-
Replace
</hr>
by <hr>
.
-
Use
<p>
alone with </p>
, so that no forbidden markup is emitted between them.
-
Fix titles between
.
-
Do not start table cells with
<p></p>
.
-
Update tests.
-
Use
gb.highlight
instead of the deprecated gb.eval.highlight
.
GB.MEDIA
MediaContainer
-
Store the list of children so that they are correctly released.
MediaControl
-
LinkLaterTo()
method should now be reliable when called multiple times.
-
Handle
is a new property that returns the internal GStreamer element pointer.
-
Child controls are now automatically referenced by their parent, so that you only have to keep a reference on top-level controls.
-
Setting enumeration properties of MediaControl works correctly now.
-
Fix behavior of
SetWindow()
method.
-
Support for
waylandsink
that needs a context to get the wayland display.
-
When trying to create a MediaControl of unknown type, raise an explicit error message.
MediaMessage
-
Take void messages into account.
MediaPipeline
-
Progress
is a new property that returns the stream buffering progression, between 0 and 1.
-
Fix how duration is retrieved. Now the duration is actually available when the
Duration
event is raised.
-
Start to manage the pipeline like
gst-launch
tool.
-
Don't stop pipeline when it is already stopped, especially when freeing the object.
MediaType
-
A new class that describes a specific GStreamer plugin.
Media
-
Media[]
now returns a MediaType
object describing a specific GStreamer plugin from its name.
-
Media.Types
is a new property that returns a list of all GStreamer plugin names.
Miscellaneous
-
Disable GLib warnings so that
GValueArray
properties are correctly handled again.
-
Compile on non-C99 compilers.
GB.MEDIA.FORM
-
MediaView: Add
State
property.
-
MediaView: Internally use the
Duration
event to refresh the time panel when the duration is known.
-
MediaView: Use "xvimagesink" instead of "ximagesink". It preserves video aspect ratio.
-
MediaView: Draw the time bar better.
-
MediaView: Refresh the time bar each 50ms.
-
MediaView: Now works on wayland with Qt5 and GTK+3!
-
MediaView: Fix
Border
property.
-
MediaView: Pause the video before stopping it, because directly stopping it may take a lot of time.
-
MediaView: Display when stream buffering is in progress.
-
MediaView:
Visualisation
is a new property that allows to define the audio visualisation plugin used by the player.
-
Update documentation.
-
Display messages returned by GStreamer when playing or stopping a stream fails.
-
Wayland support.
-
Fix test video.
GB.MIME
-
MimeMessage: Use a different API for retrieving the message sender.
-
MimeMessage: The
Sender
property does not crash anymore when the sender is void.
GB.NET
-
Move the control icons from the IDE.
-
Update control icons.
-
Store
errno
in the sockets to have a more detailed error message from StatusText
property.
-
Add
StatusText
property to socket classes.
GB.NET.CURL
-
DictClient: New virtual control for supporting the
dict://
protocol.
-
DownloadManager: Follow HTTP redirections automatically.
-
FtpClient: Correctly initialize curl options before reusing a connection.
-
Correctly check if user or password changes.
-
Do not always clear the libcurl handle, reuse it as much as possible.
-
Update control icons.
GB.NET.POP3
-
Update Dutch translation.
GB.NET.SMTP
GB.OPENSSL
-
Better error messages.
-
Fix some incorrect use of Gambas strings.
GB.PCRE
-
RegExp.FindAll()
is a new static method that return a string array of all substrings matching a pattern.
-
Fix the crash of
Regexp.Replace()
when pcre2
library is used.
-
RegExp[].Length
is a new property that returns the length of a submatch.
GB.PDF
-
Remove upper bound on poppler version for gb.pdf.
GB.POPPLER
-
Don't take into account the page orientation. It's indicative, it's not something to apply.
-
Use the poppler glib API to get the size of the page to render. The poppler C++ API does not always return the expected value.
-
PdfPage[].Thumbnail
property has been implemented.
-
Page width and height properties now take the document resolution into account.
GB.REPORT2
-
ReportBrush:
_ImageDir
hidden property must be public.
GB.QT4
-
DrawingArea:
NoMouse
is a new property that makes the control transparent to mouse events.
-
Image:
ToString()
is a new method that saves an image into a string.
-
Menu: Setting the
Picture
property of a top-level menu has no effect anymore.
-
Menu: Popup() method takes a new optional argument that allows to specify the control that opens the menu. It ensures that the menu is at the right place on Wayland.
-
Picture:
ToString()
is a new method that saves a picture into a string.
-
Style: Add
Default
constant. It tells the Style routine to use the current painted control (if it exists) as a context.
-
UserContainer: Now it can declare the same special event handlers as UserControl.
-
UserControl: Special event handlers can be declared indepently. Declaring
UserControl_Draw
is not required anymore.
-
UserControl: Fix a possible crash when calling the
UserControl_Font
handler.
-
Window:
Geometry
is a new property that returns the last geometry of the window in normal state.
-
Popup windows are now correctly parented, so that imbricated popups do not close all at once on mouse button press.
-
Check that we are a UserControl when calling its special event handlers, because the MyContainer class is also used by the Form container.
-
Do not mix arrangement flags and user control flag in the Container implementation.
-
The
Drop
property of editing controls (TextBox, TextArea...) is now TRUE by default.
-
Remove the undocumented
Container.Dirty
property.
-
Correctly enable shortcuts before opening a popup menu, and disable them after closing it.
-
Style.StateOf()
always adds the Style.Default
constant.
-
Resizing a window by code correctly raises the
Resize
event again.
-
Fix management of resizable popup windows.
-
Support for high precision mouse wheels.
-
Don't try to arrange a window being deleted.
-
When showing an utility window, use the current active window as parent if possible.
-
Support for getting the handle of a Wayland window correctly.
-
Support for getting wayland display and surface pointers.
-
Remove useless QT5 specific code from
main.cpp
, as gb.qt5
has its own main.cpp
file.
-
Define the window default icon from the application icon.
-
Utility windows are now always made child of the current active window when shown, to fix their behavior on Wayland.
GB.QT4.WEBKIT
-
Fix deprecated declaration.
-
Declare that
webview
and webkit
components are not compatible.
GB.QT4.WEBVIEW
-
Declare that
webview
and webkit
components are not compatible.
GB.QT5
Clipboard
-
Workaround a clipboard QT bug on Wayland when pasting images, by using the
image/png
mime type.
Container
-
Remove the undocumented
Container.Dirty
property.
-
Do not mix arrangement flags and user control flag in the Container implementation.
Control
-
ScreenX
and ScreenY
now take the window frame into account on Wayland.
DrawingArea
-
NoMouse
is a new property that makes the control transparent to mouse events.
Image
-
ToString()
is a new method that saves an image into a string.
Menu
-
Setting the
Picture
property of a top-level menu has no effect anymore.
-
Popup() method takes a new optional argument that allows to specify the control that opens the menu. It ensures that the menu is at the right place on Wayland.
Picture
-
ToString()
is a new method that saves a picture into a string.
Style
-
Add
Default
constant. It tells the Style routine to use the current painted control (if it exists) as a context.
-
Style.StateOf()
always adds the Style.Default
constant.
UserContainer
-
Now it can declare the same special event handlers as UserControl.
UserControl
-
Special event handlers can be declared indepently. Declaring
UserControl_Draw
is not required anymore.
-
Fix a possible crash when calling the
UserControl_Font
handler.
-
Check that we are a UserControl when calling its special event handlers, because the MyContainer class is also used by the Form container.
Window
-
Geometry
is a new property that returns the last geometry of the window in normal state.
-
Resizing a window by code correctly raises the Resize event again.
-
Define the window default icon from the application icon.
-
Utility windows are now always made child of the current active window when shown, to fix their behavior on Wayland.
-
Don't try to arrange a window being deleted.
-
Use
gb.gui.base
utility method to initialize the application id associated with each window on wayland.
-
Popup windows are now correctly parented, so that imbricated popups do not close all at once on mouse button press.
-
Fix management of resizable popup windows.
-
When showing an utility window, use the current active window as parent if possible.
Miscellaneous
-
The
Drop
property of editing controls (TextBox, TextArea...) is now TRUE by default.
-
Correctly enable shortcuts before opening a popup menu, and disable them after closing it.
-
Support for high precision mouse wheels.
-
Support for getting the handle of a Wayland window correctly.
-
Support for getting Wayland display and surface pointers.
GB.QT5.WAYLAND
-
More hack to compile everywhere.
-
Rewrite warning messages.
GB.QT5.WEBKIT
-
Fix deprecated declaration.
-
Declare that
webview
and webkit
components are not compatible.
GB.QT5.WEBVIEW
-
Declare that
webview
and webkit
components are not compatible.
GB.REPORT
-
Update Dutch translation.
GB.REPORT2
-
FPreview: Really restore the duplex mode from settings.
-
Update Dutch translation.
GB.SDL2
-
Mouse.RelX
and Mouse.RelY
are two new properties that return how much the mouse cursor has moved.
GB.SETTINGS
-
Settings: Reading string values is faster now.
GB.TERM.FORM
-
Update Dutch translator e-mail.
-
Update Dutch translation.
GB.UTIL
-
Language:
Country
is a new property that returns the country code associated with the language. Use it as a name for the stock flag icons.
-
Shell.RmDir: Make it more reliable.
-
Shell.RmDir: Do not raise an error if the directory does not exist (like "rm -rf").
-
Update Italian translation.
-
Update Dutch translation.
-
Update documentation.
GB.WEB
-
WebPage: Add an optional
Args
collection argument to the Render
method.
-
Content-Disposition
HTTP header is not case sensitive.
-
Response.Cookie
returns a virtual object that allows to define the cookie properties.
-
Response.SetCookie()
takes the Response.Cookie
properties into account when a corresponding argument is missing.
-
Request.Scheme
supports more CGI headers.
-
CGI.Error() now displays a nice error 500 page. :-)
-
Fix
Application.Host
and Application.Port
. The port is not stored in CGI, but in the port part of CGI.
-
Update documentation.
-
Request.Files
got support for multiple files input fields.
GB.WEB.FEED
-
Update Dutch translator e-mail.
-
Update project icon.
GB.WEB.FORM
-
Update Dutch translator e-mail.
GB.WEB.GUI
Application
-
Application.Theme
is a new property that allows to define the stock icon theme used by the application.
WebComboBox
-
Read-only combo-box now correctly takes the background-color into account.
-
In read-only mode, ensure that no item is selected if the
Index
property is negative.
-
Allow refresh for hidden controls, as their HTML is now always generated.
WebContainer
-
If the
_Container
internal property is used, then we suppose that only one child is visible at the same time.
WebControl
-
KeyPress
event handler is now correctly activated client side when a form is refreshed or displayed the first time.
-
Control refresh done by javascript is now correctly cancelled when the
Refresh()
method is called.
-
All disabled controls are rendered gray out now.
-
Calling
Object.Attach()
on a control now triggers an automatic refresh.
WebDrawingArea
WebMenu
-
Enabled
property is taken into account.
-
The menu bar is now implemented with a
row
arrangement, so that menu entries are still visible when the browser page shrinks horizontally.
WebRadioButton
-
Setting the
Value
property before the parent form is visible works correctly now.
WebTabPanel
-
Fix container management.
WebTable
-
Fix a javascript error when using single mode and radio buttons.
-
Use white text for the index column of selected rows.
-
The background color of a selected row now overrides the background color of its cells.
Miscellaneous
-
Update Italian translation.
-
Support for flag stock icons.
-
Do not export test forms.
-
Allow external links to images (
http://
or https://
).
-
Update Dutch translation.
-
Redraw control icons.
-
Don't suppose that the smaller version of a stock icon exists.
-
Make text fields inherit their background color for their ancestors.
-
Custom startup class is now taken into account.
-
Update documentation and icons.
-
Component is marked stable now.
-
Update broken image icon.