[Gambas-devel] Release of Gambas 1.9.25

Benoit Minisini gambas at ...1...
Sat Feb 18 17:52:51 CET 2006


Banzai!

There are two new important components in this version:

* gb.image, that allows you to apply various effects on Image objects:
  - Adjust brightness, contrast, intensity.
  - Create gradients.
  - Flatten.
  - Fade.
  - Make it gray.
  - Desaturate.
  - Threshold.
  - Solarize.
  - Normalize.
  - Equalize.
  - Invert.
  - Emboss.
  - Edge.
  - Despeckle.
  - Charcoal.
  - OilPaint.
  - Blur.
  - Sharpen.
  - Spread.
  - Shade.
  - Swirl.
  - Wave.
  - Noise.
  - Implode.

This component shoule be compatible with gb.qt, gb.gtk, and any other 
component that provide an image creator hook.

* gb.db.form, that provides some data bound controls, i.e. controls that can 
display and edit database records automatically.

THIS DEVELOPMENT IS SPONSORED (AND PAYED (I hope so :-))) BY GNULINEX AND THE 
SPANISH REGION OF EXTREMADURA.

To Daniel Campos:

* If you can send me a pretty logo of you for that...
* The component relies on TableView, and so cannot be used by gb.gtk at the 
moment. Do you plan to make a TableView in gb.gtk?
* I couldn't go to Malaga, because of a bad flu.

IMPORTANT: This component is highly experimental yet! 

To test it:

- Run the 'Database' example, and create a database named 'test', create the 
tables with the button 'Create', and fill them with the 'Fill' button.

- Then, open the gb.db.form project in the source tree, and run it. You will 
see... If you cannot connect, check the database connection parameters in the 
Main module.

In a few words, here are the principle:

The DataSource control is a Container that is linked to a specific database 
table. Each data control inside the DataSource are automatically linked to 
it.

IMPORTANT: the table must have a primary key.

The DataBrowser control provides a little control panel to navigate through 
the DataSource record, and a list of the records of the DataSource.

The DataControl is a control that allow to edit a specific field of the 
current DataSource record.

The DataCombo is a control that allow to edit a field that is actually a key 
of another table. Instead of displaying the key, its goal is to display 
another field of the foreign table.

The DataView is a list view of all records inside a DataSource. It is used 
internally by the DataBrowser.

Note that DataSource can be imbricated. Then, the inner DataSource is 
constrained by the values of the primary key of the parent DataSource. This 
is used in the gb.db.form project example.

Tell me what you think about that. There are many things to improve and debug 
yet...

Otherwise, there are two important changes that can break your projects:

* The RENAME instruction was... renamed, as MOVE. 

* The Load() method of Image, Picture and Drawing classes is now static, and 
returns a newly created object.

Finally, here is the changelog:

--8<--------------------------------------------------------------------------

DEVELOPMENT ENVIRONMENT

* BUG: Translation of component names are used now.
* NEW: String[] properties are managed now.
* BUG: Selecting all controls on a form updates the property window 
  correctly now.
* BUG: Toolbox panels are intelligently sorted now.
* BUG: Big images are now stretched in the project treeview.

INTERPRETER

* NEW: The image and picture hooks syntax has changed.
* NEW: The image and picture API has been enhanced.
* NEW: _compare is a new special method used for comparing an object
  with another during a sort.
* NEW: System.User now returns the same static object as the User class.
* NEW: String[].Join() now can take an extra optional argument that
  is an escape string added to the beginning and the end of each
  joined element.
* BUG: The event inheritance now works correctly with interpreted classes
* BUG: Calling a method on an anonymous reference now works correctly
  if the called method does not always have the same number of arguments.
* NEW: Implementation of the new IS operator (see below).
* BUG: The Subst() instruction now interprets the '&&' sequence as a
  single '&'.
* NEW: Path names now interprets the '~' character like the shell does.
* BUG: INPUT now works correctly with more than one argument.
* BUG: The debugger now prints string expressions without corrupting
  memory anymore.

COMPILER

* NEW: The RENAME/AS instruction was replaced by the MOVE/TO instruction.
* NEW: Class names are detected at compilation time now.
* BUG: When declaring several local variables on the same line, each one
  can have its own initialization expression now.
* BUG: Internal subroutines, i.e. those that are associated with an
  instruction, cannot be called directly anymore.
* NEW: The syntax '[]' now returns NULL.
* NEW: A new subroutine named Comp(), that compare two strings.
* NEW: IS is a new operator that returns if an object is an instance of
  a specified class, or one of its child classes.

EVAL COMPONENT

* BUG: Now class names are displayed with the same color as datatypes.

DATABASE COMPONENT

* NEW: The Firebird driver was merged into the source tree.
* BUG: The current database is now correctly tracked, and cannot point
  at an already freed object anymore.
* BUG: Connection.Version now correctly checks that the database is opened.
* NEW: Connection.Opened returns if a connection is opened.
* NEW: Connection.Limit() is a new method that makes the next SQL request
  only return a specified number of rows. This method returns the connection
  object, so that you can use the following syntax: DB.Limit(X).Exec(...)
  The limit is reset to infinity once used.
* NEW: Information on how to limit the result of a SQL query is filled by
  the open_database() driver function.
* BUG: Connection.Delete() does not leak memory anymore.
* NEW: Writing to a serial field is silently ignored now.

NETWORKING COMPONENT

* BUG: Now ServerSocket can accept more than five connections without
  crashing anymore.
* NEW: ServerSocket is now enumerable, and returns each connected socket.
* NEW: ServerSocket.Count returns the number of connected sockets.

QT COMPONENT

* NEW: Image.Load() is now a static method that returns a newly created 
  image from a file.
* NEW: Picture.Load() is now a static method that returns a newly created
  picture from a file.
* NEW: Drawing.Load() is now a static method that returns a newly created
  drawing from a file.
* NEW: The Image constructor now takes an extra optional parameter that
  indicates if the image has an alpha channel.
* NEW: Image.Transparent is a new property that indicates if an image has
  an alpha channel.
* NEW: Image.Depth is read-only now.
* NEW: Label.Padding is a new property that represents the pixel padding
  between the label border and the label text.
* BUG: The Label.AutoResize property was enabled again, but is now TRUE
  by default.
* BUG: Image conversion methods were fixed.

GTK+ COMPONENT

* NEW: Image.Load() is now a static method that returns a newly created 
  image from a file.
* NEW: Picture.Load() is now a static method that returns a newly created
  image from a file.
* BUG: The HSV/RGB color conversion method now use the same value range
  than the QT component.
* BUG: Loaded images are automatically converted to a 32-bits per pixel 
  format.
* BUG: Image conversion methods were fixed.

PCRE COMPONENT

* BUG: The PCRE component should now compile with older versions of 
  libpcre.

IMAGE COMPONENT

* NEW: This is a new component for applying many various effects on images.
  The effects source code was ported from the KDE libkdefx library, which 
  includes itself some ImageMagick algorithms, and from the KolourPaint 
  program.

DATABASE FORM COMPONENT

* NEW: This component implements data bound controls. It provides the 
  following new controls: DataSource, DataBrowser, DataView, DataControl
  and DataCombo. It is highly experimental at the moment.

--8<--------------------------------------------------------------------------

Enjoy it!

-- 
Benoit Minisini





More information about the Devel mailing list