Gambas 3.20.0
What's new?
Among the hundreds of fixes and enhancements, the main features of this release are the following:
In the development environment
-
Translation an version control dialogs were replaced by workspaces.
-
Every calls of a specific function or symbol can be retrieved in one click.
-
Debugging external running processes is far easier.
-
A complete redesign of the search that is a lot faster now.
Otherwise
-
New database components mostly written in Gambas that supersedes the old ones.
-
A new tool that generates packages configuration files automatically for the openSUSE build service.
-
A new GUI component gb.qt6 for Qt6.
-
A new component gb.mongodb for accessing MongoDB databases.
-
A new component gb.clipper2 that should replace gb.clipper.
-
The JIT compiler now implements a cache, so that compilation occurs only the first time your program runs.
Compilation and installation
Read the instructions
there.
If everything was fine, type "gambas3" to run the development environment.
Enjoy it !
Changelog
CONFIGURATION
-
Update
lunar
compilation in .gitlab-ci.yml
so that it compiles the new gb.qt6
component.
-
Move
gb.util
, gb.util.web
and gb.db2
components into the new main/comp
directory.
-
Make the Gambas compiler quiet when compilation succeeds.
-
Fix and update all man pages.
-
Don't override
strcmp
, strcasecmp
, toupper
and tolower
when C++ compiler is used. It fails with C++ 20.
-
Replace my deprecated e-mail by the current one in the
AUTHORS
file.
-
Add Martin Belmonte to the list of translators.
-
Update project directory icons.
-
Update
README
file.
TEMPLATE
-
Fix
configure.ac
template.
DEVELOPMENT ENVIRONMENT
Automatic completion
-
Symbol icons are not lost anymore when the
Picture
cache is cleared.
CSV import
-
Better import preview.
-
Fix table list.
Code & text editor
-
Draw editor status for right to left written languages.
-
Use the new
TextEditor.GetLocation()
method to list all possible locations of an edited file.
-
Redesign the procedure list button and its popup.
-
Update the location combo popup height when its filter changes.
-
Display the color value under the cursor in the status bar.
-
Don't use the
Limit
line property when searching for the procedure including a specific line. It is actually an heavy process when a line has been modified.
-
Add a button that displays every line of code that calls the current function, or that uses the current global declaration if the cursor is not inside a function.
-
Prevent a possible recursion of HTML preview refresh.
-
Add highlighting for
diff
, highlight
, sql
and sh
files.
-
Open shell scripts, Gambas scripts and HTML files without specific extension according to the beginning of the file.
-
Do not try to pretty print lines beginning with "#!" in Gambas code.
-
Fix detection of Gambas script files.
-
Use the new
TextHighlighter.HasLimit
property to know if the location combo must be visible or not.
Color chooser dialog
-
Fix margin when only a free color can be chosen.
Database editor
-
Little redesign of export dialog.
-
Fix refresh after CSV import.
-
Add a check box for allowing destination overwrite.
-
Copying tables now takes into account serial fields.
Debugger
-
Redesign of debug configuration dialog.
-
Restore initial opened windows when the debugger ends.
-
Don't close the current tab when the debugger ends, and set the focus on it.
-
Do not re-open files that were closed during the debugging session when the debugger ends.
-
Display contents tab by default on debugger expression windows.
-
Debugger expression windows work correctly again.
-
Remove ignore process count in external debugging mode, as now the first matching process reaching a breakpoint connects to the IDE.
-
Show breakpoint list while waiting for external debugged process.
-
Remove JIT temporary files when the debugged process is stopped.
-
Fix a possible crash when displaying a very long stack backtrace.
-
Fix breakpoint list refresh.
Farm server
-
Support for farm URL starting with
https://
.
-
Update software farm installer to use current flags to -f public-control -f public-module not the old -p and -m
File properties dialog
-
Add a property tab to the file information dialog for project folders that allows to choose an highlighting description file located in the configuration folder. All files located in that project folder will be highlighted with this highlighting description file.
-
Add "do not translate" and "compress in executable" properties.
-
Do not show the property tab for top-level project directories.
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.
-
Replace the information panel by the status bar.
-
Scrollbars are not transparent anymore.
-
The window titlebar now adapts to color changes.
-
Allows to apply properties of controls declared in the current component project if that component is actually used by the IDE.
-
An error occurring during load, save, copy or paste won't be able to disable children arrangement for the next saves anymore.
-
Automatic arrangement now works correctly on Splitter containers.
-
The property values displayed in the property sheet are now vertically centered.
-
Draw the selection with a filled transparent rectangle.
-
Do not apply a default arrangement on save when the arrangement of the container is
None
.
-
Fix automatic row and column arrangements.
-
Draw a specific control icon for vertical Splitters.
-
Prevent a normally impossible error when clicking on controls.
Help browser
-
Use a discrete pulsing progress bar instead of a big spinner.
-
Fix not translated pages layout in offline help.
-
Fix use of the english page when the translated page is not available in offline help.
-
Some offline help specific CSS fixes.
-
Fix help for project classes.
Image editor
-
Rearrange tools configuration.
-
Fix text alignment buttons.
-
Fix property sheet current control label.
-
Replace the information panel by the status bar.
-
Scrollbars are not transparent anymore.
-
Use small fonts in the property panel.
-
The default grid state is now the last grid state set.
-
Shapes are now stored in a SQLite3 database.
-
Add an handle to shear the selection.
-
Draw selection handles with a white border.
-
Add two handles to resize the selection vertically and horizontally.
-
Fix expand selection tool.
-
Clicking with the middle button on a pixel now stores its color inside the palette.
-
Change the icon of the button that clears the current selection.
-
The grid of a zoomed image is now 1 pixel wide.
-
Take the line join style into account when offsetting the selection.
-
Saving a part of the current selection works correctly now.
-
Selection offset now takes the line cap into account.
-
Selection offset now has an option to offset the outline only.
-
Little enhancements in magnet and selection drawing.
-
New button that smooths a selection with splines.
-
Do not take grid snap into account when searching for selection magnets.
Main window
-
Add "workspaces" for translation, version control, project browser and project terminal.
-
Fix a crash when there is no status bar to draw.
-
Make the bottom panel button bar smaller.
-
Remove the version control menu entries and buttons from the main window.
-
Correctly disable the project tree popup menu when it loses the focus.
-
Use the new Workspace
Select
event to refresh the tree when a tab button of the document workspace is clicked, even if it is the current one.
-
The form of a class or the class of a form is now opened next to it.
-
Defining the startup class now automatically inserts the
Main
function.
-
Global shortcuts do not trigger anymore when the focus is on a terminal.
-
Draw the IDE background image using the top left corner of the window as origin.
-
Do not animate the bottom panel when it expands or collapses.
-
Do not try to activate a form if it is not valid.
Make executable dialog
-
Display the command used for compiling the executable.
-
Remove the margins.
Menu editor
-
Make the toolbar read-only.
-
Workaround Qt6 behavior that seems to change the text of the menu event handler buttons to add shortcuts.
-
Hide properties that are not implemented by the GUI component.
Options dialog
-
Redesign of options dialog.
-
Add an option to enable the automatic revert of non-important files on project close.
-
Custom highlighters can be configured in the
Themes
panel.
-
Remove the translator engine option. Keep it in the translation editor only.
-
Display the file size inside the progress bar when downloading the documentation.
-
Saving the current layout configuration works now.
-
Reorganize some options.
Packager
-
AppImage packages can be signed with a GPG signature key.
-
Use thin icons for distributions.
-
Use the
gnu
stock icon for autotools
packages.
-
Check for
fakeroot
tool when building an ArchLinux package.
-
Add inner
/bin
and /usr/bin
to the inner PATH
environment variable of AppImage executables.
-
Support for building AppImage with
pacman
. It works on Manjaro only if run as root, and the resulting AppImage may segfaults!
-
Do not distribute description files when making an
automake
package.
Profile editor
-
Keyboard allows to search for a function name if the left panel.
Project open dialog
-
Clip branch name when it is too long.
-
Make the "Open in another window" button more visible.
Project management
-
Add a configuration folder to projects.
-
Store folder properties inside the project configuration file.
-
Keep key case when reading an unknown option in the project configuration file.
-
Removing a file removes it from the list of files to be compressed and not to be translate.
-
Deleting a file correctly resets the "do not translate" flag.
-
If the file compression fails while making an executable, restore the uncompressed files correctly.
-
Do not generate description files when making an executable.
-
Source files or directory can now be excluded from the executable.
-
When saving the project configuration file, remove all possible references to project files that do not exist anymore.
-
Add a project compilation timestamp.
-
Update
gitignore
template so that the .desc
project description directory is not put on version control.
-
Remove the associated file in
.desc
when removing a specific source file, or renaming it.
-
Remove
.desc
directory when cleaning up a project.
Project properties dialog
-
Fix statistics and add more statistics.
-
Ignore broken symbolic links when computing statistics.
-
Components can be marked as "manually loaded at runtime" by using the second check-box column.
-
Redesign of the project properties dialog.
Project tree
-
Specific highlighting can be applied to the contents of
Data
, Public
and Project
folders.
-
Add an emblem for folders or files having a specific highlighting.
-
Use an emblem for displaying compressed files.
-
Hide the profile folder when there is no profile file.
-
Clicking on the clear button when the filter is already void now triggers a project refresh.
-
Source files can be copied, pasted and duplicated now.
-
Items with children can be filtered too now.
Search panel
-
The search dialog is replaced by a top panel.
-
Prevent a possible crash when computing search result position.
-
Result now adapts correctly to dark themes.
-
Do not crash anymore when setting the highlighting of a search result.
-
Hitting
CTRL+F
several times when the focus is on the search field changes the search location.
-
SHIFT
+ENTER
searches backward.
-
Add support for
CTRL+HOME
and CTRL+END
shortcuts when the search text box has the focus.
-
CTRL+R
can be repeated like CTRL+F
to change the search location.
-
Fix focus handling.
-
Fix the focus behavior. Only
F3
and SHIFT+F3
gives the focus to the editor.
-
Do not highlight too long lines in the search result, it is slow.
Shortcuts dialog
-
Add a tab for the list of search panel shortcuts.
System information dialog
-
Add desktop platform.
-
Read
/etc/os-release
first.
-
Search for
/lib64
and /usr/lib64
on 64 bits systems.
-
Do not crash if
/lib
or /lib64
directory do not exist.
-
Fix binary name for
translate-shell
.
Terminal workspace
-
Kill the shell before reloading it.
-
Correctly kill the terminal process on exit.
Translation workspace
-
Translation management is now done in a dedicated workspace.
-
Add a check-box to hide the translated strings.
-
Fix toolbar buttons size.
-
Disable animations when doing a full automatic translation so that the current translated string is always visible.
-
The "all strings are translated" message is more visible now.
-
Some cosmetic changes.
-
Do not regenerate
*.po
files when there is no real change.
-
Fix management of special character in strings (quote, newlines...).
-
The translated string must always be unquoted.
-
Display newline characters in the current untranslated string TextBox.
-
The translation view has now a grid, and displays multi-line strings entirely and unquoted.
-
An error in the translation tools does not prevent the workspace to open.
Version control workspace
-
Version control management is now done in a dedicated workspace.
-
Do not run the event loop while searching for the subversion root repository when loading a project.
-
Create a specific control for displaying history.
-
Check that a new commit log is actually written.
-
Allow to proceed when the commit log has not been modified.
-
Save the current commit log when locating a change.
-
Double-clicking on a history commit opens its contents in a read-only text editor.
-
In the branch list, draw the current branch in bold, and the default branch underlined.
-
Do not print the "cd" part when printing commands in the terminal.
-
Use the new
User.Shell
property to run a shell inside the terminal tab.
-
Add a button to refresh the workspace.
-
Add an history filter in the file version control dialog.
-
Run
git
through EXEC instead of SHELL as much as possible. It's about 10% faster.
-
Display the executed commands in the terminal correctly.
-
Automatically revert
.version
file only when the version is took from a VERSION
file.
-
Support for
--rebase
and --no-rebase
when doing a git pull.
-
Repository update can take options.
-
Ensure that the current line is visible when clicking on the terminal tab.
-
Reverting files now tries four different methods with git.
-
The version control history view spinner should correctly disappear in all cases.
-
Display the project branch in recent files menu.
-
Put the project directory icon under version control.
Welcome dialog
-
Adapt to dark themes.
-
Big buttons now use the standard colors.
-
A few cosmetic changes.
-
Better position for the sort popup menu.
-
The snow does not stop anymore on fur snow.
-
Little optimizations in snow routine.
-
Add a snowman and some random wind.
Miscellaneous
-
Update French translation.
-
Update Italian translation
-
Update Dutch translation.
-
Update Simplified Chinese translation.
-
Support for new GUI component
gb.qt6
.
-
--make
is a new command-line option for generating the executable of a project.
-
Fix a possible crash when restoring opened files after the debugger stops.
-
Correctly initialize colors on dark themes.
-
Operators in
gambas
theme are now yellow.
-
Remove the
Selection
color from highlighting themes.
-
Fix a typo when calling
Message.Warning()
in the Gambas 2 to Gambas 3 conversion code.
-
Adapt to system colors change at runtime.
-
Fix default monospace font initialization.
-
Adapt to new way of computing stock icon sizes.
-
Use
huge
icons instead of large
icons in IconPanel
containers.
-
Fix
expand
and collapse
icons.
-
Add a project terminal workspace.
-
Redraw some image editor toolbar icons.
-
Icon selection dialog is faster to fill.
-
Add support for the new components.
-
Update error messages.
-
Prevent a possible crash when handling global application
Change
events.
-
Use the new database component instead of the old one.
-
Fix the text layout of project boxes.
-
Redesign the unsaved files dialog box.
-
Update the default compact interface layout.
-
The highlight color of the
Gambas
theme is more saturated.
-
Some updates in Gambas fonts.
-
Redraw class symbol icons.
-
Update financial support.
-
Update IDE contributors.
-
Change how unique file names are generated.
-
Add dependency on
gb.hash
component.
-
Replace my deprecated e-mail by the current one in the tips files.
-
Add a new background, and modify a few ones.
-
Fix new name generation when copying a file.
-
Remove a now useless WAIT instruction used when showing the bottom panel the first time.
-
Remove
Ctrl+Shift+Alt+Meta+L
shortcut. :-)
-
Ignore errors when restoring authorizations on file save.
CHMOD
can fail on Samba shares.
-
Always use the same folder icon base to draw the project directory icon.
-
New translatable project directory icon.
-
New default project directory icon.
-
Added option to launch gambas with QT6 to
gambas3.desktop
file.
-
Remove an unused
Age
public variable in the editors.
-
Loading a file does not increment the project timestamp anymore.
WIKI
-
Allow to toggle the display of inherited symbols.
-
If an image page does not exist, display a broken link instead of the big "Please upload a file" message.
-
The default symbol description is more clever. If there is no symbol description, and that the class description is a redirection, use it.
-
Support for gb.qt6.
-
Better management of links between automatically documented pages.
-
The left panel is resizable now.
-
Prevent circular page links.
-
Add
WELCOME TO GAMBAS!
command to extract README
file from the sources.
-
Remove classes whose name starts with an underscore from the
TODO
list.
-
Some fixes in
-->
and ==>
management.
-
gb.hash
has no package.
-
Changes of box backgrounds.
-
Cosmetic changes of text using non-proportional font.
-
The translation is now complete.
-
Update Italian translation.
-
Update Dutch translation.
EXAMPLES
-
Painting: Modify the
Gradient
example to use stroke with gradients.
-
Painting: Add a slider for the new
Paint.Opacity
property.
INTERPRETER
Array
-
ReadOnly
can be set to TRUE if already TRUE.
-
Equals()
is a new method of the array classes that tells if the contents of two arrays of the same type are the same.
-
Array.Type
property now returns gb.Object
when the array elements are object, not a truncated value of a class pointer.
-
Sort
FALSE
values first in Boolean arrays.
Collection
-
Insert()
is a new method that inserts another collection into the current one.
-
ReadOnly
is a new property that allows to make a collection immutable.
-
Equals()
is a new method that return if two collections have the same contents.
Components
-
Exist()
is a new method that returns if a specific component has been loaded.
System
-
Make
System.Cores
work on any GNU libc-based OS.
Task
-
Fix possible file descriptors leak in
Task
management.
-
Correctly remove background tasks temporary directory when they terminate.
User
-
User.Shell
is a new property that returns the shell program associated with the current user.
Component API
-
Add
GB.GetTimeFromDate()
API to convert a Gambas date to a Unix timestamp.
-
Add
GB.Collection.Browse()
API.
-
The
GB.MakeDate()
API now takes an extra argument for making a local or UTC date.
-
Fix boolean arguments pushed on the stack when raising an event or calling a function with the API.
Debugger
-
External debugging now automatically triggers at first breakpoint.
-
Correctly synchronize PC before handling
DEBUG
instruction.
-
Toggle breakpoints in external debugging mode after the component exported classes have been loaded.
-
Correctly exit the debugger in external debugging mode.
-
STOP
instruction is taken into account in external debugging mode.
-
Take the possible disappearance of the external debugging file between its detection and actual debugging initialization into account .
Error management
-
Fix TRY instruction that could leak memory in some cases.
-
Get the correct
errno
value when returning the error from a failed child process.
-
Rename error #65 from "Read-only array" to "Read-only object". Change the associated constant to
E_READONLY
.
File management
-
RDir()
does not leak memory anymore if it finds a broken symbolic link.
-
Fix memory leaks when
RDir()
fails because of directory access rights.
-
Browsing relative paths when debugging a project now automatically ignores backup files (those whose names ends with
~
).
-
Dir()
and RDir()
function now return full paths when their third argument has the gb.FullPath
flag set.
-
Add
gb.FullPath
constant flag.
Localization support
-
French date format workaround has been removed, now that
glibc
has been fixed.
-
Localization is now initialized without changing the environment variables.
-
Fix localization management when setting
System.Language
property.
-
Overwrite
LC_ALL
environment variable only when System.Language
is explicitly set.
Process management
-
Waiting for a process end should not crash anymore when some other processes have their
Ignore
property set.
-
Do not check SIGCHLD signal handler when waiting for a process end if the handler has not been installed.
String management
-
Fix a crash in
LIKE
pattern matching when using a bracket pattern ending with a dash.
-
Subst()
now can take its replacement strings as a string array provided it is alone as second argument.
-
Fix
Instr()
and RInstr()
when searching one character while ignoring case.
Miscellaneous
-
Do not use a specific
gcc
compilation flag.
-
Update mailing-list URL printed in panic message.
-
Do not crash when printing to the standard error before the project startup class has been set.
-
Support for up to 32767 computed labels.
-
Correctly check argument of command-line options that requires it.
-
All constants of the
gb
class are shared through the gambas.h
header file.
-
Implicit conversion from pointer to boolean works again.
-
Fix and optimize conversion between Date timestamp and Unix timestamp.
-
Fix the conversion from string to floating point values when the decimal part starts with a number of zeros greater than the floating point number precision (15 digits, integer part included).
-
Support for new JIT compiler cache system.
-
Update man page.
-
Fix a
printf
format string on 32 bits systems.
-
Fix builtin overflow 64 bits arithmetic on 32 bits systems.
-
Application_Log
special event handler does not raise an error anymore when being called.
-
Be more strict with boolean values in extern functions.
-
Fix how relative paths starting with
../
are resolved when a component calls a method implemented in the main project.
-
Replace
select()
system call by poll()
, to deal correctly with file descriptors greater than 1024.
-
Add constants for the duration of the WAIT hook.
-
Abort compilation if
__WORDSIZE
preprocessor constant is not defined.
-
Define
__WORDSIZE
by comparing UINTPTR_MAX
and UINT64_MAX
constants if it was not defined by the previous headers.
-
Round()
now uses always use positive powers of ten for rounding, as it introduces less error when the second argument is negative.
COMPILER
-
Correctly compile
Float
constant defined with an integer.
-
Fix some
clang
warnings.
-
Correctly compile
Single
division.
-
Take manually loaded components into account.
-
Fix
INC
and DEC
optimization.
-
Fix addition/substraction optimization on dates.
-
Compile correctly floating point constants that actually are integers.
-
Fix handling of
gb
class in constant expressions.
-
Do not emit warnings about unused arguments when the function has no code.
-
Do not emit warnings about unused
ByRef
arguments too when the function has no code.
-
Do not print any warnings on function arguments if the function body is void.
-
Forgot a
va_end
in the ERROR_warning
function.
-
The
-q
option makes the compiler quiet when the compilation succeeds (it does not print "OK" on the standard output).
-
Error message prefix is now a global error parameter.
-
Exit with code
1
when an incorrect or incomplete command-line option is detected.
-
Add the
-d
option that generates a list of every symbol use for each class in the .desc
directory of the project.
-
Output calls to anonymous objects, class instanciations, and array accesses.
ARCHIVER
-
Fix man page.
-
Fix usage message.
-
Fix a
printf
format string on 32 bits systems.
-
Fix error message prefix.
-
Read files to exclude from the project configuration file.
-
Exit with code
1
when an incorrect or incomplete command-line option is detected.
INFORMER
-
The
-V
option now correctly prints the program version only and exits.
-
Exit with code
1
when an incorrect or incomplete command-line option is detected.
-
Don't generate information files if they are up to date, and if they are complete (all included components were solved).
-
Add a
-f
option to force the generation of information files. Apparently this option is not needed to compile Gambas and run "make install" correctly.
-
If including a component information fails, signal it with a
<component>.fail
file.
SCRIPTER
-
Update Dutch translation.
SELFTEST
-
Update Dutch translation.
-
Add
BugSingleToInt
test.
-
Add tests for conversion from string to floating point values.
BENCHMARKS
-
Always run scripts with "C" locale.
-
Use the built-in shell
time
command.
FARM SERVER
-
Update project icon.
-
Update logo.
PACKAGE-CONFIG
-
New tool that generates package configuration files inside the
.obs
directory. That directory is used by the openSUSE Build Service to generate binary packages automatically.
GB.ARGS
-
Update Italian translation.
-
Update Dutch translation.
GB.CLIPPER
-
Make
gb.clipper
API compatible with gb.clipper2
.
-
Compile the component with C++11 support.
-
Add
Clipper.CapJoined
constant.
GB.CLIPPER2
-
New component based on the Clipper2 library that supersedes
gb.clipper
.
GB.DB
-
Connection: Correctly handle database drivers not supporting
RETURNING
or INSERT IF NOT EXIST
features when calling the Create() method.
-
Mark
gb.db
as not compatible with gb.db2
.
-
This component is now deprecated.
GB.DB.FORM
-
DataSource: Moving the source cursor now automatically synchronize
DataView
and DataBrowser
children.
-
DataView:
MoveTo(-1)
is now a synonymous of Create()
.
-
The translations is now complete.
-
Add some documentation.
-
Dutch translation updated
-
Remove any explicit reference to the Blob class, which will be removed in the next version of the database component.
-
Put
Blob
class back now that there is a gb.db2.form
component.
-
Fix internal requests on primary keys whose values include a
&
character.
-
Fix a possible spurious error when removing the last row of a
DataView
.
-
This component is now deprecated.
GB.DB.MYSQL
-
Use the new
GB.MakeDate()
API.
-
Check connection options at configure time to correctly deal with the differences between MySQL and MariaDB.
-
Fix incorrect code.
-
Test more connection options constants to compile on Ubuntu 14.04!
-
Fix
RETURNING
keyword availability test with MariaDB.
-
This component is now deprecated.
GB.DB.ODBC
-
Use both
pkg-config
and hardcoded paths to search for unixodbc libraries.
-
Use the new
GB.MakeDate()
API.
-
This component is now deprecated.
GB.DB.POSTGRESQL
-
Fix uninitialized data when returning the default collation.
-
Use the new
GB.MakeDate()
API.
-
This component is now deprecated.
GB.DB.SQLITE2
-
Use the new
GB.MakeDate()
API.
GB.DB.SQLITE3
-
Use the new
GB.MakeDate()
API.
-
This component is now deprecated.
GB.DB2
-
New component that supersedes the
gb.db
component now deprecated.
GB.DB2.FORM
-
It's the
gb.db.form
equivalent component based on the new gb.db2
component.
GB.DB2.MYSQL
-
New MySQL database driver for
gb.db2
.
GB.DB2.ODBC
-
New ODBC database driver for
gb.db2
.
GB.DB2.POSTGRESQL
-
New PostgreSQL database driver for
gb.db2
.
GB.DB2.SQLITE3
-
New Sqlite3 database driver for
gb.db2
.
GB.DEBUG
-
Fix compilation.
-
External debugging now automatically triggers at first breakpoint.
-
Fix a memory leak if reading the external debugging configuration file fails.
GB.DESKTOP
-
Update documentation.
-
Support for KDE6 password wallet.
-
Finish support for KDE6 password wallet.
-
DesktopActions
case insensitive matching must use ==
instead of Like
because of possible square bracket [
.
-
Export
DesktopActions
.
-
Consider the corresponding binary for qdbus.
GB.DRAW
-
Paint: Add new composition operators.
-
PaintMatrix:
Shear()
is a new method that shears a paint matrix.
-
Correctly initialize the PaintMatrix interface when using
PaintMatrix()
the first time.
-
Add automatic conversion between
PaintMatrix
and Float[]
or Single[]
.
-
Paint.Opacity
is a new property that allows to define the opacity of the drawing operations.
GB.FORM
Balloon
-
Use a modal popup window that should work on any window manager, both with X11 and Wayland.
-
Use the available screen size to position the balloon. It depends on window manager support on Wayland.
-
Hide balloon automatically as soon as the target control is moved or resized.
ButtonBox
-
Do not stretch the filter picture.
-
Fix management of default filter picture.
-
Fix inner padding and button size.
ColorButton
-
Change how the color is drawn.
ColorPalette
-
Draw palette even on small sizes.
DateBox
-
Fix calendar popup position.
DateChooser
DirBox
-
Add
PlaceHolder
property.
DirChooser
-
Force rechecking of items when setting private bookmarks.
DirView
-
Changing the current directory now collapses all its children.
-
Highlight the hovered line in the directory tree.
DocumentView
-
Raise the
MouseWheel
event before handling it internally.
Expander
-
The title is a bit less tall.
FileChooser
-
Fix view change from the popup menu.
FileView
-
Less icon preview refreshes.
-
Preview of text files use the system colors correctly.
-
Preview is now done by an external process instead of a Task, because the task sometimes fails because of being a forked process.
-
Run the preview background process by specifying the startup class explicitly.
-
Highlight the hovered line in detailed view.
IconPanel
-
Display the titles using the same look as TabPanel.
ImageView
-
View
is a new read-only property that returns the inner ScrollArea.
-
Raise the
Resize
event of the inner ScrollArea.
-
Handle
MouseWheel
event according to the ScrollArea
change.
-
Fix mouse wheel event management.
MaskBox
-
Alignment
property now works correctly whenever it is set.
MenuButton
-
Keep the font of the shortcut hidden button small so that we do not see it.
-
Manage popup menu outside of any mouse event handler.
-
Correctly restore the previous focus when the popup menu is closed.
-
MenuButton
now can take the focus.
-
Remove a debugging message.
-
Automatically adapt the icon to the control size.
-
Highlight the button when the popup opens only if the
Menu
property is defined.
SidePanel
-
Do not allow to set a dimension smaller than the minimum size.
-
Correctly check if the control must be animated or not.
Stock
-
Change how icon sizes are computed, and add
xx-small
, x-small
(a synonymous of tiny
), x-large
(a synonymous of huge
) and xx-large
sizes.
-
Add
above
, below
, touch-screen
icons. Update icon map.
-
Add
microphone-low
, microphone-medium
and microphone-high
icons.
-
Add
education
stock icon.
-
Add
camera-off
, equalizer
, notification-off
and wifi-off
icons.
-
Add
network-off
stock icon.
-
The icon map file has been moved to
gb.form.stock
, and has been replaced by a symbolic link to it.
SwitchButton
TabPanel
-
Fix button highlighting when the control has the focus.
-
The new
Select
event is raised when the user clicks on a tab button, even if it is the current one.
TableView
-
Fix cell editor position and size.
TimeBox
Miscellaneous
-
Update Italian translation
-
Update documentation.
-
DirCache: Symbolic links to directories are handled like normal directories.
GB.FORM.DIALOG
-
Don't crash if remembering a password fails. Display an error message instead.
GB.FORM.EDITOR
TextEditor
-
Highlight state datatype is now
Short[]
instead of Byte[]
.
-
Draw the stop line with a pointing frame inside the margin.
-
Draw bookmarks with a little flag icon.
-
Draw current line frame on top of the margin contents.
-
Selected text is now drawn using the
LightBackground
system color.
-
Margin width is correctly updated when setting the
Highlight
or Mode
property.
-
Use smaller icons for search and goto line bottom panels.
-
Current debugged line symbol is correctly drawn inside the line limits.
-
CurrentWord
is a new property that returns the current word under the cursor.
-
Do not refresh the current line if the cursor is hidden.
-
Do not highlight the current line if something is selected.
-
Draw selection and matching braces with a solid frame around.
-
Use the new theme properties of the
Style
class.
-
Fix the vertical position of line numbers.
-
Do not raise the postponed
Change
event when the object is locked.
-
Draw expand / collapse signs in light color, and with a line width proportional to the line height.
-
Draw highlighted strings correctly.
-
Comments before lines being a limit are now taken into account when collapsing.
-
Fix mouse management when expanding / collapsing limits.
-
EnsureVisible()
is a new method the scrolls the editor to a specific cursor position without moving the cursor.
-
Setting the
Mode
property correctly refresh the editor views.
-
Collapsing and expanding functions work correctly again.
-
GetLocation() is a new method that returns the location of a line.
-
TextEditor[].Added
property does not crash anymore.
-
GetLocation()
always returns "?"
for the first line.
-
The translations is now complete.
-
Update documentation.
-
Add
gb.eval
as component dependency.
-
Each editor mode now can return the "location" of a line, i.e. the function it belongs to.
GB.FORM.HTMLVIEW
-
Automatically adapt to dark themes.
-
Adapt to system colors change at runtime.
-
Update
master.css
.
-
Update broken image icon.
-
Component is marked stable now.
GB.FORM.MDI
Toolbar
-
Read-only toolbars do not take layout into account when loading or saving configuration.
-
The toolbar size now applies to the toolbar font.
-
Update to system colors change at runtime.
-
Fix the icon size combo-box in the configuration dialog.
-
Update the font size used for displaying button texts.
-
Take the padding of the parent into account for computing available space.
Workspace
-
Disable menu shortcuts in design mode.
-
Select
is a new event that is raised when the user clicks on a tab button, even if it is the current one.
-
Find()
is a new method that returns the position of a specific Workspace window.
-
The second argument of
Add()
is now the position where the new window must be inserted. If not specified, the window is inserted at the end.
-
Adding a window at a specific position should work better now.
-
Update Italian translation.
-
Update Dutch translation.
-
Update documentation.
GB.FORM.STOCK
-
Add many icons, and redraw some others.
-
The size of all
gambas-thin
icons is now 128 pixels.
-
Move
icon.map
to gb.form.stock
.
-
_DefaultStock.InstallIconTheme() is now silent.
GB.FORM.TERMINAL
TerminalView
-
The
Exec()
and Shell()
method now set the TERM
environment variable with "xterm-256color"
by default instead of just "xterm"
.
-
Terminal 16 first colors now follow the
xterm
colors exactly, except the blue which is made more readable.
-
Replace custom dark colors by inverted standard colors.
-
New algorithm for relayouting terminal contents.
-
Paste the
text/plain
contents of the clipboard only.
-
Add one pixel spacing between lines.
-
Kill() method now blocks longer, and raises an error if the terminal process cannot be killed.
-
Do not adapt colors to dark theme automatically.
-
Support for some
zsh
private unicode characters.
-
Support for
ESC [ E
and ESC [ F
VT100 sequences.
-
The
bold
attribute now uses lighter colors automatically.
-
Implement
strike
, double underline
, and fast blink
character attributes.
-
Implement
overline
character attribute.
-
Draw a framed selection.
-
Update control icon.
-
Do not send mouse move events if no button is pressed.
-
Apply VT100 graphic mode correctly.
-
ESC [
sequence can be terminated by BEL
or ESC '.
-
Update documentation.
-
Escape sequence bright colors 100-107 now work correctly.
-
Using RGB color escape sequences now renders blue as expected.
GB.GEOM
-
Add automatic conversion between
Rect
and RectF
classes.
GB.GTK
Application
-
GB_GUI_DARK_THEME
environment variable can be set to 0
to force Application.DarkTheme
to be FALSE.
-
Application.DarkTheme
is now writable to force its value if needed.
Button
-
Button and ToolButton now automatically ensure that their icon fit their size.
Color
-
Color.Change()
is a new method that replaces an old color by the new one during a system colors change.
Control
-
ProxyFor
is a new property that returns which control that control is a proxy for.
-
NoAnimation
is a new property that allows to explicitly disable animations for a specific control.
-
Grab()
now works as expected.
-
Fix how control borders are handled internally.
-
Set the focus even if the control is not the active control.
-
Setting a custom cursor does not crash anymore.
-
Do not crash on postponed focus management when destroying a control that will get the focus.
Paint
-
Support for new composition operators.
-
Fix ellipse painting.
-
Implementation of
PaintMatrix.Shear()
.
-
Implement
Paint.Opacity
property.
-
Paint.DashOffset
works correctly now.
Slider
-
Remove the Slider control.
TabStrip
-
Fix how tabs are hidden and shown.
TextArea
-
Redone how border and scrollbars are implemented.
-
TextArea
having initial focus now correctly raises its KeyPress
event.
TextBox
-
Implement a custom placeholder string management that mimics the better Qt behavior.
-
TextBox
having initial focus now correctly raises its KeyPress
event.
Window
-
Fix
Controls
property. Do not return children of the sub-windows anymore.
-
Fix
Activate
event management.
-
Fix window action trigger.
Miscellaneous
-
Replace
COLOR_DEFAULT
constant by GB_COLOR_DEFAULT
constant.
-
Application.Change
is a new property that returns which change called Application_Change
.
-
Application_Change
is a new global event handler that is called when system theme, display animation flags or display shadows flag has changed.
-
Don't raise an error if
Application_Change
global event handler does not exist.
-
WAIT
with no arguments process only one event once, and so cannot loop indefinitely anymore.
-
Add a missing include now required.
-
Do not crash on theme change.
-
Fix behavior of
WAIT
instruction with no argument.
-
Ignore map events on non visible windows, occurring after they have been closed.
-
Fix the routine that generates disabled versions of icons.
-
WAIT
alone (and methods using it internally) correctly handle posted routines.
GB.GTK3
Application
-
GB_GUI_DARK_THEME
environment variable can be set to 0
to force Application.DarkTheme
to be FALSE.
-
Application.DarkTheme
is now writable to force its value if needed.
Button
-
Button
and ToolButton
now automatically ensure that their icon fit their size.
Color
-
Color.Change()
is a new method that replaces an old color by the new one during a system colors change.
Control
-
ProxyFor
is a new property that returns which control that control is a proxy for.
-
NoAnimation
is a new property that allows to explicitly disable animations for a specific control.
-
Grab()
now works as expected.
-
Fix how control borders are handled internally.
-
Set the focus even if the control is not the active control.
-
Setting a custom cursor does not crash anymore.
-
Do not crash on postponed focus management when destroying a control that will get the focus.
Paint
-
Support for new composition operators.
-
Fix ellipse painting.
-
Implementation of
PaintMatrix.Shear()
.
-
Implement
Paint.Opacity
property.
-
Paint.DashOffset
works correctly now.
Slider
-
Remove the Slider control.
TabStrip
-
Fix how tabs are hidden and shown.
TextArea
-
Redone how border and scrollbars are implemented.
-
TextArea
having initial focus now correctly raises its KeyPress
event.
TextBox
-
Implement a custom placeholder string management that mimics the better Qt behavior.
-
TextBox
having initial focus now correctly raises its KeyPress
event.
Window
-
Fix
Controls
property. Do not return children of the sub-windows anymore.
-
Fix
Activate
event management.
-
Fix window action trigger.
Miscellaneous
-
Replace
COLOR_DEFAULT
constant by GB_COLOR_DEFAULT
constant.
-
Application.Change
is a new property that returns which change called Application_Change
.
-
Application_Change
is a new global event handler that is called when system theme, display animation flags or display shadows flag has changed.
-
Adapt to system colors and system theme change at runtime.
-
Don't raise an error if
Application_Change
global event handler does not exist.
-
WAIT
with no arguments process only one event once, and so cannot loop indefinitely anymore.
-
Add a missing include now required.
-
Do not crash on theme change.
-
Fix behavior of
WAIT
instruction with no argument.
-
Ignore map events on non visible windows, occurring after they have been closed.
-
Fix the routine that generates disabled versions of icons.
-
WAIT
alone (and methods using it internally) correctly handle posted routines.
-
Forgot to mark the
gb.gtk3
component as stable.
GB.GTK3.WEBVIEW
WebSettings
-
Add
WebSettings.LocalContentCanAccessRemoteUrls
flag.
-
WebSettings.UserAgent
is a new property that allows to read or modify the HTTP user agent.
-
Let WebKitGTK+ store its cache where he wants. The temporary directories will be removed at programs ends by the
gb.gui
component.
-
Automatically destroy the HSTS cache directory at component unload.
-
Fix crash on exit when no
Webview
has been created.
-
Fix the use of a now deprecated API.
GB.GUI.BASE
Border
-
The
Border
object is now initialized with no border at all.
Clipboard
-
Copying an URL array to the clipboard correctly copies the last URL.
ComboBox
-
Fix mouse wheel and keyboard management when the
ComboBox
is editable.
-
Changing the combo-box contents while the popup is opened now correctly update the popup and should not crash anymore.
-
Setting the
List
property correctly updates the popup when it is opened.
-
Correctly move the popup above if there is no enough room below.
-
Only left mouse button opens the popup.
-
Better look of the popup window frame.
-
Remove a debugging message.
-
Pressing
Alt+Down
key opens the popup.
-
Popup()
does not crash anymore.
-
Pressing
Space
key opens the popup without crashing.
-
Use
Style.FramedSelection
for drawing popup selection.
-
Fix inner padding of editable comboboxes.
-
Clearing the
ReadOnly
property keeps the current Text
value.
-
Fix inner padding of read-only comboboxes.
-
The arrow is correctly drawn in right to left orientation.
-
The
Drop
property is correctly kept when the ReadOnly
property changes.
-
ComboBox items have a new
Enabled
property, that is TRUE
by default.
-
Opened
is a new property that returns if the popup is opened.
-
ClearButton
is a new property that toggles a clear button in editable comboboxes.
Desktop
-
Correctly detect all possible KDE versions.
GridView
-
Using up and down arrow keys now ensure that the cursor is on a visible cell before trying to move.
-
GridView[]
has a new Visible
read-only property that returns if a cell is visible.
-
Hitting the up or down key when the view is void does not crash anymore.
-
Moving to the bottom right cell now scrolls correctly if the last column is hidden.
-
Ensuring the visibility of a cell with a null size now scrolls the control to that cell position anyway.
-
Hitting the down arrow key now moves the cursor to the first cell when the first column is hidden.
-
GridView[].EnsureVisible()
takes the alignment of the column into account to decide which part of the cell should be make visible.
-
Draw the selection with a frame if
Style.FramedSelection
is set.
-
GridView[].Y
now correctly takes the border into account.
-
GridView[].ScreenX
and GridView[].ScreenY
are two new properties that return the screen absolute position of a cell.
-
Fix
GridView[].EnsureVisible()
when the cell is larger than the visible width.
-
Do not draw bottom frame if the selected row is the last one.
-
Do not draw top frame if the selected row is the first one.
Label & TextLabel
-
Fix automatic resize when there is some border radius.
-
Fix automatic size computation, especially on Qt.
Message
-
Fix documentation of
Style
property.
Paint
-
Fix
Paint.TrimText()
function.
-
Paint.Polyline()
is a new method that adds to the current path a polyline from an array of points.
-
Paint.SmoothPopyline()
is a new method that adds to the current path a curve made of splines defined by an array of points.
Picture
-
The array accessor second argument is correctly taken into account by dark themes.
-
Fix refresh routine.
ProgressBar
-
Text
is a new property that allows to define the text displayed in the progress bar instead of the percentage advancement.
-
Better draw pulsing progress bar.
ScrollArea
-
Darker shadows on dark themes.
-
Propagate the
Change
event of the internal DrawingArea.
-
Adapt to system color changes at runtime.
-
Raise
MouseWheel
event before handling it.
ScrollView
-
Fix the control similar list constant.
Shortcut
-
FromKey()
now uses Key.Text
if available, and otherwise uses Key.Code
for unknown keys.
Slider
-
Implement the Slider control in Gambas.
SpinBox
-
Make SpinBox
plus
and minus
icons thinner.
Splitter
-
Define
_DefaultArrangement
property correctly.
Style
-
Shadows
is a new property that will replace Application.Shadows
.
-
FramedSelection
is a new property that tells if the selection must be drawn with a frame in various controls. It's TRUE
by default.
TreeView, ColumnView & ListView
-
Reparenting an item correctly toggles the tree arrows if needed.
-
Parent items of matching filtered items are always visible, even if they do not match the filter.
-
Indent the first level items only when one of them gets its first child.
-
Add
Grid
property.
Miscellaneous
-
Kill the possible previous application icon before creating it at startup.
-
Add documentation.
-
Fix the new look of the popup window frame.
-
Fix stock icon refresh.
-
Print a warning message if creating the application desktop file fails, instead of crashing.
-
Take the new
Control.NoAnimation
property into account to check if a control must be animated.
-
Remove possible application temporary directories on exit.
-
Do not destroy
~/.local/share
and ~/.cache
on exit if the application id is not defined for any reason!
GB.HIGHLIGHT
TextHighlighter
-
ToANSI()
method now generates strikeout text.
-
Highlighting state must be a
Short[]
.
-
Better error messages when the highlighter file parser fails.
-
Fix a typo in
Register()
source code.
-
Add the
@keyword
keyword to declare keywords returned by the Keyword
property.
-
HasLimit
is a new property that returns if the highlighter use limits.
-
@name
is a new command that allows to define the name of the highlighter
-
Support for up to 32767 internal highlight states, for more complex highlighters.
-
Add
@declare xxx
preprocessor command to declare function-like blocks in highlighter files, and (xxx)
syntax to include them.
-
Fix
@include
when there is more than 255 highlighting states.
-
Make internal
TextHiglighter._Add()
method JIT-compiled.
C highlighter
-
Fix documentation comments.
CSS highlighter
-
Correctly implement
Keyword
property.
Highlight highlighter
-
Fix file reference highlighting.
HTML highlighter
Javascript highlighter
-
Fix regular expression matching.
-
function
is now drawn as a keyword.
-
Update keywords.
Webpage highlighter
Miscellaneous
-
Update Italian translation.
-
The
GB_HIGHLIGHT_DEBUG
environment variable toggles some debugging messages.
-
Only the
Background
and Highlight
color names are now background colors.
-
Remove
Selection
from the list of standard colors.
-
Update Dutch translation.
GB.HTTPD
-
Workaround a
gcc
warning.
GB.IMAGE
-
A little change in the "make image transparent" algorithm.
-
Add an API to invert a color for dark theme.
-
Fix
Color.Invert()
algorithm when keeping color hue.
-
Remove
COLOR_DEFAULT
constant. GB_COLOR_DEFAULT
must be used instead.
-
Remove now useless code.
GB.JIT
-
Automatically erase JIT files at program exit.
-
Use
XDG_RUNTIME_DIR
environment variable for storing JIT shared libraries.
-
Print warning about
XDG_RUNTIME_DIR
being not set once.
-
The generated code is now relocatable through a pointer table compiled in a separate shared library.
-
If the
GB_JIT_TRACE
environment variable is set, then the JIT compiled code will trace each line executed on the standard error output.
-
Fix the order in which compilation tasks are waited for.
-
Remove explicit dependency on
gb.hash
.
-
GB_JIT_FORCE
now ignores the cache contents and forces recompilation when set to 1
.
-
GB_JIT_CACHE
environment variable now toggles the old compilation process without relocation and cache when set to "0".
-
Fix possible buffer overflows during code generation.
-
Fix compilation of
&=
operator.
-
Correctly display errors when the JIT compilation fails.
-
Correctly compile the
SWAP
instruction on String, Object, or Variant values.
-
Automatically remove JIT temporary directory when compilation is aborted.
GB.MARKDOWN
-
Move test files to the project folder so that they are not included in the executable.
GB.MEDIA
-
Support for properties having
gint64
datatype.
-
Use the new
GB.MakeDate()
API.
GB.MIME
-
Add a
MimeMessage.From
property, as in GMime 3, the Sender
and From
headers are not the same thing.
-
Workaround a bug in the
ContentType
property of the MimePart class.
GB.MONGODB
-
New component that provides a MongoDB client.
GB.NET.CURL
FtpClient
-
Raise an error when a method fails instead of being silent.
HttpClient
-
Raise an error when a method fails instead of being silent.
-
PostFile()
works correctly again.
-
Version
is a new property that allows to define how HTTP protocol version is negociated.
Miscellaneous
-
Fix the use of a deprecated feature.
-
Curl.SSL.CaInfo
is a new property that allows to define the CURLOPT_CAINFO
option.
-
Curl.SSL.CaPath
is a new property that allows to define the CURLOPT_CAPATH
option.
-
Handle errors when setting a CURL option internally.
-
Errors are correctly reported through the
Error
event only for asynchronous requests.
GB.NET.POP3
Pop3Client
-
Remove the useless return value of the
Open()
method.
GB.OPENSSL
-
Remove include of
engine.h
, as OpenSSL engines are deprecated, and even removed in latest Fedora.
GB.PDF
-
Fix a compiler warning.
-
Make component compile with
poppler
24.0.5.
-
Use the new
GB.MakeDate()
API.
-
Fix compilation with
poppler
version >= 24.11.
-
Mark
gb.pdf
as incompatible with gb.poppler
.
GB.POPPLER
-
PdfDocument[].Render()
method now computes the best resolution automatically when the width and height arguments are specified and not the resolution argument.
-
Add
C++20
compilation flag to make gb.poppler
compile with poppler
24.05.0.
-
Mark
gb.poppler
as incompatible with gb.pdf
.
GB.QT4
Application
-
GB_GUI_DARK_THEME
environment variable can be set to 0
to force Application.DarkTheme
to be FALSE.
-
Application.DarkTheme
is now writable to force its value if needed.
Button
-
Button
and ToolButton
now automatically ensure that their icon fit their size.
Color
-
Change()
is a new method that replaces an old color by the new one during a system colors change.
-
Fix
Color.TooltipBackground
, Color.LinkBackground
and Color.LinkForeground
.
Control
-
ProxyFor
is a new property that returns which control that control is a proxy for.
-
NoAnimation
is a new property that allows to explicitly disable animations for a specific control.
Mouse
-
During a mouse event,
Mouse.ScreenX
and Mouse.ScreenY
now return the absolute coordinates specified by the event.
-
Fix mouse wheel event management.
Paint
-
Paint.PathExtents
now takes the transformation matrix into account like GTK+ components.
-
Support for new composition operators.
-
Implementation of
PaintMatrix.Shear()
.
-
Workaround Qt bug with 1px line width.
-
Implement
Paint.Opacity
property.
Slider
-
Remove the Slider control.
Style
-
The Style methods called during a drawing event handler now correctly take the specified rectangle size into account in all case.
-
Style.FrameWidth
really returns the width of a panel frame.
Window
-
Controls
property works correctly now.
-
Optimize
Controls
property methods.
Miscellaneous
-
Update source code for
gb.qt6
.
-
Replace
COLOR_DEFAULT
constant by GB_COLOR_DEFAULT
constant.
-
Application.Change
is a new property that returns which change called Application_Change
.
-
Application_Change
is a new global event handler that is called when system theme, display animation flags or display shadows flag has changed.
-
Don't raise an error if
Application_Change
global event handler does not exist.
-
Fix compilation with older version of C++.
-
Update fix for the last versions of Breeze widget style.
-
Remove the unused
QT.Notify()
internal API.
-
Remove two unused internal control flags. Clean up the
CWidget.cpp
source file.
-
Fix how Qt version is checked.
-
Use the new constants for the duration of the
WAIT
hook.
GB.QT4.WEBKIT
-
Use the new
GB.MakeDate()
API.
GB.QT4.WEBVIEW
-
WebSettings: Add
LocalContentCanAccessRemoteUrls
flag.
-
Update to the new
GB.MakeDate()
API.
GB.QT5
Application
-
GB_GUI_DARK_THEME
environment variable can be set to 0
to force Application.DarkTheme
to be FALSE.
-
Application.DarkTheme
is now writable to force its value if needed.
Button
-
Button
and ToolButton
now automatically ensure that their icon fit their size.
Color
-
Change()
is a new method that replaces an old color by the new one during a system colors change.
-
Fix
Color.TooltipBackground
, Color.LinkBackground
and Color.LinkForeground
.
Control
-
ProxyFor
is a new property that returns which control that control is a proxy for.
-
NoAnimation
is a new property that allows to explicitly disable animations for a specific control.
Mouse
-
During a mouse event,
Mouse.ScreenX
and Mouse.ScreenY
now return the absolute coordinates specified by the event.
-
Fix Mouse wheel event management.
Paint
-
Paint.PathExtents
now takes the transformation matrix into account like GTK+ components.
-
Support for new composition operators.
-
Implementation of
PaintMatrix.Shear()
.
-
Workaround Qt bug with 1px line width.
-
Implement
Paint.Opacity
property.
Slider
-
Remove the Slider control.
Style
-
Style: Fix PaintBox() method with breeze style.
-
The Style methods called during a drawing event handler now correctly take the specified rectangle size into account in all case.
-
Style.FrameWidth
really returns the width of a panel frame.
TextArea
-
TextArea: Border is correctly drawn again with breeze style.
Window
-
Controls
property works correctly now.
-
Optimize
Controls
property methods.
-
Try to simplify how window flags are applied.
Miscellaneous
-
Replace
COLOR_DEFAULT
constant by GB_COLOR_DEFAULT
constant.
-
Application.Change
is a new property that returns which change called Application_Change
.
-
Application_Change
is a new global event handler that is called when system theme, display animation flags or display shadows flag has changed.
-
Adapt to system colors and system theme change at runtime.
-
Don't raise an error if
Application_Change
global event handler does not exist.
-
Fix compilation with older version of C++.
-
Update fix for the last versions of Breeze widget style.
-
Remove the unused
QT.Notify()
internal API.
-
Remove two unused internal control flags. Clean up the
CWidget.cpp
source file.
-
Fix how Qt version is checked.
-
Use the new constants for the duration of the WAIT hook.
-
Fix compilation with Qt version < 5.14.
GB.QT5.WAYLAND
-
Add more warning messages on missing Wayland features.
GB.QT5.WEBKIT
-
Use the new
GB.MakeDate()
API.
GB.QT5.WEBVIEW
-
Add
WebSettings.LocalContentCanAccessRemoteUrls
flag.
-
WebSettings.UserAgent
is a new property that allows to read or modify the HTTP user agent.
-
Force WebView internal initialization at creation, otherwise it may make the main window flicker on Qt6.
-
Use the new
GB.MakeDate()
API.
GB.QT6
-
New component based on Qt6.
GB.QT6.EXT
-
New component based on Qt6.
GB.QT6.OPENGL
-
New component based on Qt6.
GB.QT6.WAYLAND
-
New component based on Qt6.
GB.QT6.WEBVIEW
-
New component based on Qt6.
GB.QT6.X11
-
New component based on Qt6.
GB.REPORT2
-
ReportBrush:
_ImageDir
hidden property must be public.
GB.SDL2
-
Use the new constants for the duration of the
WAIT
hook.
GB.SETTINGS
GB.UTIL
CsvFile
-
Fields are correctly read now when
KeepNames
is TRUE.
Date
-
Fix
Date.ToISO8601()
. According to Wikipedia, the separator for milliseconds is a dot, not a comma.
Shell
-
Shell.Copy()
is new method that copy a file or a directory recursively.
Miscellaneous
-
Update Italian translation.
-
Update documentation.
-
Add project icon and version files.
-
Add directory icon file.
GB.UTIL.WEB
-
Add project icon and version files.
-
Add directory icon file.
GB.VB
-
Use the new
GB.MakeDate()
API.
GB.WEB
-
Update documentation.
-
Response: Use the new
File.RealPath()
syntax in Response.SendFile()
.
-
Response: Add correct content-type for javascript files.
-
Response: Specify UTF-8 charset in the content-type of CSS, javascript and HTML files.
GB.WEB.GUI
WebSeparator
-
Take into account the foreground color to draw the separator.
WebTree
-
The
Select
event correctly sets the internal cursor to the clicked item (if any).
-
Implement
WebTree[].EnsureVisible()
method.
Miscellaneous
-
Update Italian translation.
-
Update broken image icon.
-
Component is marked stable now.
GB.XML
-
Add a missing include now required.