[Gambas-devel] Some notes/quick hacks for porting your (big) Gambas2 project to Gambas3

Benoît Minisini gambas at ...1...
Thu Jul 23 13:47:18 CEST 2009


> Ok, so I don't like to do things twice, therefor I took some time to
> find out how to port my project to development version quickly, not to
> use it, but to be able to gather bugs/tips helping to make it better.
>
> I'm sure I run into more things that needs work, but now it runs, and
> seem to work fine, not bad at all.
>
> Ok first...
> Make a copy of your current Gambas2 project and try/work with that,
> never load your original Gambas2 project into version 3 and try to
> compile it!
>
> If you try to load your Gambas2 project you get a warning, continue if
> you want to follow the steps here.
>
> It takes a bit of time to load the first time, because all your source
> files (*.module, *.form and *.class) are moved to a new <project
> dir>/.src directory, so they are hidden from now on, they are not gone.
>
> Trying to compile your project results in an error about a wrong Form
> file version, we fix that later.

You have a menu entry in the IDE "update all forms" that will convert forms 
automatically to Gambas 3 format. At least it does that...

>
> If you save the project first the .project file with be converted for
> you, some details below.
>
> PROJECT FILE CHANGES:
> <project dir>/.project
>
> old syntax:
> # Gambas Project File 2.0
> # Compiled with Gambas 2.14
> Title=DomotiGa
> Startup=Main
> Icon=images/logo.png
> Version=0.1.168
> Library=gb.qt
> Library=gb.form
> ...
>
> new syntax:
> # Gambas Project File 3.0
> # Compiled with Gambas 2.99.0
> Title=DomotiGa
> Startup=Main
> Icon=images/logo.png
> Version=0.1.168
> Component=gb.qt
> Component=gb.form
> ...
> Among other things, to find out later.
>
> FORM SOURCE CHANGES:
> Close project and goto your project source files directory
> $ cd <project dir>/.src
>
> Change form version:
> old syntax:
> # Gambas Form File 2.0
> new syntax:
> # Gambas Form File 3.0
>
> howto port them quickly:
> $ perl -pi -e "s/Gambas Form File 2.0/Gambas Form File 3.0/g;" *.form
>
> Change window properties for normal forms:
> old syntax:
> Border = Window.Fixed
>
> new syntax:
> Resizable = False
> Type = WindowType.Normal
>
> howto port quickly:
> $ perl -pi -e "s/Border = Window.Fixed/Resizable = False\n  Type =
> WindowType.Normal/g;" *.form
>
> Change window properties for splash forms:
> old syntax:
> Border = Window.Fixed
>
> new syntax:
> Resizable = False
> Type = WindowType.Splash
>
> Note: Only run this on forms you know are of type splash. (the ones you
> open with .Showmodal)
>
> howto port quickly:
> $ perl -pi -e "s/Border = Window.Fixed/Resizable = False\n  Type =
> WindowType.Splash/g;" yoursplash.form
>
>
> PROJECT SOURCE CHANGES:
> Some changes in syntax I came across till now.
>
> .ForeColor property in textlabels has been renamed:
>
> old syntax:
> hText = New TextLabel(hPanel) As "Sensors"
> With hText
> .ForeColor = Color.Gray
>
> new syntax:
> .Foreground = Color.Gray

Not all ForeColor and BackColor were removed yet. But this is the goal.

>
> howto port quickly:
> Do search and replace for it in your project.
>
> Unknown symbol GridView in class DataBrowser has been renamed:
>
> [GB.DB.FORM]
> * NEW: DataBrowser.GridView property was replaced by DataBrowser.View.
> * NEW: DataView.GridView property was replaced by DataView.View.
> * NEW: DataView now uses a TableView instead of a GridView.
> * NEW: DataView truncates cell contents to the first 1024 characters.
>
> old syntax:
> With DataBrowser1.GridView
>
> new syntax:
> With DataBrowser1.View

Yes. The internal view of DataBrowser is not a GridView anymore.

>
> howto port quickly:
> Do search for ".GridView" and replace with ".View" for it in your project.
>
> What does this mean in console:
> warning: Main.DisplaySensors.2996: ADD QUICK with Boolean

This is a consequence of a discussion on the mailing-list. Some people found 
heretic to use "ADD" to toggle boolean values. So the Gambas 3 interpreter now 
writes a warning when he sees that. You just have to fix your code.

>
> More suggestions are welcome, maybe useful to put this on the wiki
> somewhere?

The better would be writing a project converter by converting all these rules
into a Gambas program.

Regards,

-- 
Benoît




More information about the Devel mailing list