Qt Declarative API Changes

As with any Qt API, the Qt Declarative QML API that we expose needs to be carefully thought through to provide a consistent and intuitive developer experience.

One area of inconsistency has been the mixing of nouns and verbs. A declarative language describes what, not how. An example of this is the SetProperties element. This element describes the changes to one or more properties in a particular state. The SetProperties name has a distinctly imperative flavor. It implies an immediate action and fails to capture the nature of the element. Changes to properties in a state are merely overrides that will be restored when the state is left. These factors lead to the proposed renaming of SetProperties to PropertyChanges.

We are currently in the process of reviewing the entire QML element API. We expect the review to be complete by the end of August, though it may take a little longer for the proposed changes to propagate into the code. Unfortunately, if you are a Qt Declarative early adopter you will need to update your code. In order to help with this there is a list of changes and pending changes in the src/declarative/QmlChanges.txt file in the kinetic-declarativeui branch of the Kinetic repo.

BTW, if you've been experimenting with Qt Declarative we'd love to hear what you've been doing and how you've found using QML.


Blog Topics:

Comments

?
Nicola
0 points
162 months ago

Can you give some attention to QTCREATORBUG-2949 please? Autocompletion for c++ is still better in kdevelop than qtcreator and obviuosly qtcreator is better for other things and I want to use qtcreator

thanks
Nicola

?
Guido Seifert
0 points
162 months ago

One thing I'd really love to see: An appropriate tag in the repository before I seen an announcement of a new version here. ;-)

?
m][sko
0 points
162 months ago

you are right @Guido Seifert

You tolls publish some beta, RC, final version but I don't see any tag in git.
Are you going to fix something letter ? :)

?
Eike Ziller
0 points
162 months ago
?
Guido Seifert
0 points
162 months ago

Sorry, my post was a bit misleading. No fault on your side. It is just that I pulled and rebuilt the creator this morning... only to see a few hours later that if I had waited a bit longer, I could have seen the rc tag and had an 'official' version. But that's how it usually works....no progress is made until 5 minutes after I downloaded everything and upgraded my system. ;-)

?
Guido Seifert
0 points
162 months ago

I hate you. :-)

Just checked: Eike Ziller commited 0672813 at 10:11.
My update: Wed, 16 Nov 2011 09:24:18 GMT

Btw... Looks very good. The only problem I discovered yet, is only a problem for those, who want to or have to stay with debian stable: gdb 7.0.x does not work correctly anymore.

?
Eike Ziller
0 points
162 months ago

@guido: ah, always a pleasure ;)

?
Andre'
0 points
162 months ago

@Guido: 7.0.1 with python?

?
Andre'
0 points
162 months ago

@Guido Seifert: anyway, 7.0.1 seems to work even without python, but this means "no prettyprinting", and building 7.0.1 is not supported with python 2.7 etc, so to make that work "again" is significant effort which does not seem to be worthwhile.

?
Guido Seifert
0 points
162 months ago

Andre',
yes. Python seems to be in by default in Debian squeeze:
http://packages.debian.org/...

And it worked fine for me in 717acb6bf4b4799dfb7e72b1481728fb95964d7c.
When I upgraded to 9df694c6eb9fb2cda1de6b6532d8f137c064d744 many of
the variables suddenly only showed 'Unavailable synchronous data'.

Fixed when I upgraded my gdb. As I wrote, generally not a problem. Problem only for those who have no saying in what build configuration they have to use. And Debian stable isn't such an uncommon release.

?
christoph
0 points
162 months ago

What a luck I took off yesterday afternoon. Otherwise I'd have distributed 2.4 beta to my users. Very cool that I can now at last get thread names when looking at core dumps :).

?
Guilherme Moreira
0 points
162 months ago

Is it possible to use Qt Creator as a software platform, in a similar way Eclipse RCP is used? I know the source code is available, but I would have to clean it up removing all IDE features so I could plugin my application features. I wish someone could have thought about it.

?
Eike Ziller
0 points
162 months ago

@guilherme: We had thought about it, from the beginning. And rejected it as being out of scope of what we want to do.

?
Stephen Chu
0 points
162 months ago

I haven't been keeping up with Creator for some time. I downloaded this RC and tried it on my 10.6 Mac with Xcode 4.2. Right away, the tool chains setup is confusing me.

First of all, it shows all the available gcc flavors, even the non-existent ones. Like PPC for LLVM-CLANG and gcc4.2-llvm. Those DO NOT have PPC output.
[](http://imgur.com/DBrIP)

Then in Qt Versions panel, the tool chain selection for building helper doesn't tell me which GCC is which:
[](http://imgur.com/jA9sb)

It also fails to find the installed Qt 4.8 RC.

?
Guido Seifert
0 points
162 months ago

On minor annoyance bit me today. I added a custom deployment step in run settings. But instead of 'make' in the command line I typed 'make '. The extra space was invisible, but prevented deployment.

?
Jason
0 points
162 months ago

My system is windows xp.
Installed QtSDK 1.1.4.
When I IDE after replacing QtCreator 2.4.0 RC .
When editing QML code , the program will automatically exit silently .

?
Jason
0 points
162 months ago

Each time you edit QML code will automatically exit the program , this is my problem?

?
Christian Kamm
0 points
162 months ago

Jason: Does that always happen? Even with a minimal QML file such as "import QtQuick 1.1; Item {}"? I suspect this might be the same as https://bugreports.qt.nokia... . Can you get a stack trace and file a bug report (assign to me)?

?
Luc
0 points
162 months ago

Please give some love to QTCREATORBUG-166 (it is the one that keeps me from switching to qtcreator).
Thank you.

?
mindz_eye
0 points
162 months ago

Unfortunately, scrolling is still nearly unusable on Mac after opening Help. Most likely due to https://bugreports.qt.nokia... :(

?
Guido Seifert
0 points
162 months ago

Anyone compiled qt-creator with Qt 4.8? I did ages ago and found a strange bug, that in some dialog boxes I wasn't able to click a button until I moved the box a few pixels. Mouseover effects did always work. I dismissed this bug since Qt 4.8 was far from the state it is today so I could not be sure whether it was a qt-creator or a 4.8 problem. Last week I tried again to compile the creator with 4.8 on a different system and this bug still exists. I compiled several of my own programs with 4.8 and never experienced this problem somewhere else, so now I really think it might be a bug in qt-creator.

?
Eike Ziller
0 points
162 months ago

@guido: I've heard from a collegue that updating ubuntu supposedly might mend that problem (I suppose that you are on that platform).

?
Guido Seifert
0 points
162 months ago

Nope, Debian Wheezy. As updated as possible. Fairly recent Qt 4.8.
This problem does not exist when I compile with 4.7.4.

?
Mamuk
0 points
162 months ago

Verygood

?
Mamuk
0 points
162 months ago

That site looking good

?
Jason
0 points
162 months ago

@Christian Kamm: Yes, and https://bugreports.qt.nokia... similar problems .
As long as when using a custom component , modify the code to automatically close the QML QtCreator.
And very often , so I can not make any changes to the QML code .
QML is only open a separate file , not the entire project , it will not automatically shut down .
Sorry, I do not know where to find the stack in the log file .

?
vjncadyast
0 points
162 months ago

qrjmwmbct, vrlureqxbn

?
Nicolas
0 points
162 months ago

When you compile it for Windows with MinGW?

?
Jon
0 points
162 months ago

What are the minimum system requirements for QtCreator now days? I am using Redhat Enterprise 5.5, all applications I develop have to run on this standard (controlled hardware/software). It seems that debugging with the python debugger helpers do not work on my machine. The last successful, for reading nice debugging output, version of QtCreator that I can use is 2.1.0. From what I understand that after this version QtCreator switched to the python way of doing things with NO ability to continue to compile the old debugger libraries even if we wanted them. I think forcing a developer to a certain way is wrong specially if the application runs on my machine. I like some of the features found in the newer versions but can't use them as they don't make debugging easy. 2.1.0 is easier to use and would like that option on the new builds of QtCreator. But with all the questions about this all over the web, it seems the Trolls don't care about giving the information needed to fix this or give a definite statement on which machines it will run.

I know some will say install this or upgrade that, sorry can't do. Develop machine has to stay as stock as possible as the machines running the developed app are stock and CAN NOT be upgraded due other priority software running on them.

Thanks for any and all help!

?
Eike Ziller
0 points
162 months ago

@jon: Debugging helpers on linux nowadays require a python enabled gdb 7, gdb 7.2 is recommended. If your machines don't have that you can try the binaries that we have on our ftp here ftp://ftp.qt.nokia.com/misc... (and tell Qt Creator to use it in Tools->Options->Debugger->Gdb)

?
Rob Caldecott
0 points
162 months ago

Ever since Qt Creator 2.3.x if I have an enum like the one below (C++ code) then I get a wavy line under the last element and if I hover over it I get the following warning: commas at the end of enumerator lists are a C++0x specific feature

enum Type
{
TYPEONE = 1,
TYPE
TWO = 2,
};

I've ALWAYS left in the last comma and it's never given me any problems. How can I disable this warning as I don't want to change all my code!

?
Jon
0 points
162 months ago

@Eike: Thanks for the suggestion. I have installed on my machine the latest QtSDK, done before the earlier comment was posted, and used the gdb from there but get the following error message: "/path/to/app/qtc_test not in executable format: File format not recognized". Did a clean and then build a couple of times.

Setup was to clone the GCC that was auto detected and then browse to the gdb located in the QtSDK structure and set the project to use that tool chain. I left the g++ alone, so I am making a guess that my compiler is in need up updating as well.

?
Rob Caldecott
0 points
162 months ago

I am unable to start a debug session - although I can attach to an existing process. Here is what I see in the debug log - error 193 even though the path exists. Sigh. Anyone?

sStarting debugger 'GdbEngine' for ABI 'x86-windows-msys-pe-32bit'...
dStart parameters: 'test' mode: 1
dABI: x86-windows-msys-pe-32bit
dExecutable: C:Documents and SettingscaldecorDesktopProjectstest-build-desktop-QtinPATHDebugdebugtest.exe
dDirectory: C:Documents and SettingscaldecorDesktopProjectstest-build-desktop-Qt
inPATHDebug
dDebugger: C:Qtqtcreator-2.3.1pythongdbgdb-i686-pc-mingw32.exe
dProject: C:Documents and SettingscaldecorDesktopProjectstest (built: C:Documents and SettingscaldecorDesktopProjectstest-build-desktop-QtinPATHDebug)
dQt: C:Qt4.7.4
dQML server: 127.0.0.1:0
d
dDebugger settings:
dUseAlternatingRowColours: false (default: false)
dFontSizeFollowsEditor: false (default: false)
dUseMessageBoxForSignals: true (default: true)
dAutoQuit: false (default: false)
dLogTimeStamps: false (default: false)
dVerboseLog: false (default: false)
dCloseBuffersOnExit: false (default: false)
dSwitchModeOnExit: false (default: false)
dUseDebuggingHelper: true (default: true)
dUseCodeModel: true (default: true)
dShowThreadNames: false (default: false)
dUseToolTips: false (default: false)
dUseToolTipsInLocalsView: false (default: false)
dUseToolTipsInBreakpointsView: false (default: false)
dUseAddressInBreakpointsView: false (default: false)
dUseAddressInStackView: false (default: false)
dRegisterForPostMortem: false (default: false)
dLoadGdbInit: true (default: true)
dScriptFile: (default: )
dWatchdogTimeout: 20 (default: 20)
dTargetAsync: false (default: false)
dMaximalStackDepth: 20 (default: 20)
dAlwaysAdjustStackColumnWidths: false (default: false)
dShowStandardNamespace: true (default: true)
dShowQtNamespace: true (default: true)
dSortStructMembers: true (default: true)
dAutoDerefPointers: true (default: true)
dAlwaysAdjustLocalsColumnWidths: false (default: false)
dListSourceFiles: false (default: false)
dSkipKnownFrames: false (default: false)
dEnableReverseDebugging: false (default: false)
dAllPluginBreakpoints: true (default: true)
dSelectedPluginBreakpoints: false (default: false)
dAdjustBreakpointLocations: true (default: true)
dAlwaysAdjustBreakpointsColumnWidths: false (default: false)
dNoPluginBreakpoints: false (default: false)
dSelectedPluginBreakpointsPattern: .* (default: .*)
dBreakOnThrow: false (default: false)
dBreakOnCatch: false (default: false)
dBreakOnWarning: false (default: false)
dBreakOnFatal: false (default: false)
dAlwaysAdjustRegistersColumnWidths: false (default: false)
dAlwaysAdjustSnapshotsColumnWidths: false (default: false)
dAlwaysAdjustThreadsColumnWidths: false (default: false)
dAlwaysAdjustModulesColumnWidths: false (default: false)
dState changed from DebuggerNotReady(0) to EngineSetupRequested(1).
dQUEUE: SETUP ENGINE
dCALL: SETUP ENGINE
dTRYING TO START ADAPTER
dENABLING TEST CASE: 0
Python path: C:Qtqtcreator-2.3.1pythongdblib
dSTARTING C:/Qt/qtcreator-2.3.1/pythongdb/gdb-i686-pc-mingw32.exe -i mi --tty=.pipecreator-5708-6334
dGDB STARTED, INITIALIZING IT
<1show version
<2-list-features
<3set breakpoint pending on
<4set print elements 10000
<5set overload-resolution off
<6handle SIGSEGV nopass stop print
<7set unwindonsignal on
<8pwd
<9set width 0
<10set height 0
<11set auto-solib-add on
<12-interpreter-exec console "maintenance set internal-warning quit no"
<13-interpreter-exec console "maintenance set internal-error quit no"
<14-interpreter-exec console "disassemble 0 0"
<15-interpreter-exec console "python execfile(&#039C:/Qt/qtcreator-2.3.1/share/qtcreator/dumper/bridge.py&#039)"
<16-interpreter-exec console "python execfile(&#039C:/Qt/qtcreator-2.3.1/share/qtcreator/dumper/dumper.py&#039)"
<17-interpreter-exec console "python execfile(&#039C:/Qt/qtcreator-2.3.1/share/qtcreator/dumper/qttypes.py&#039)"
<18-interpreter-exec console "bbsetup"
dADAPTER SUCCESSFULLY STARTED
dNOTE: ENGINE SETUP OK
dState changed from EngineSetupRequested(1) to EngineSetupOk(3).
dQUEUE: SETUP INFERIOR
dState changed from EngineSetupOk(3) to InferiorSetupRequested(4).
dQUEUE: SETUP INFERIOR
dCALL: SETUP INFERIOR
sSetting up inferior...
=thread-group-added,id="i1"
>~"GNU gdb (GDB) 7.2n"
>~"Copyright (C) 2010 Free Software Foundation, Inc.n"
>~"License GPLv3+: GNU GPL version 3 or later nThis is free software: you are free to change and redistribute it.nThere is NO WARRANTY, to the extent permitted by law. Type "show copying"nand "show warranty" for details.n"
>~"This GDB was configured as "i686-pc-mingw32".nFor bug reporting instructions, please see:n"
>~".n"
>&"show versionn"
>~"GNU gdb (GDB) 7.2n"
>~"Copyright (C) 2010 Free Software Foundation, Inc.n"
>~"License GPLv3+: GNU GPL version 3 or later nThis is free software: you are free to change and redistribute it.nThere is NO WARRANTY, to the extent permitted by law. Type "show copying"nand "show warranty" for details.n"
>~"This GDB was configured as "i686-pc-mingw32".nFor bug reporting instructions, please see:n"
>~".n"
>1^done
dPARSING VERSION: 1^done
d
dSUPPORTED GDB VERSION GNU gdb (GDB) 7.2
dCopyright (C) 2010 Free Software Foundation, Inc.
dLicense GPLv3+: GNU GPL version 3 or later
dThis is free software: you are free to change and redistribute it.
dThere is NO WARRANTY, to the extent permitted by law. Type "show copying"
dand "show warranty" for details.
dThis GDB was configured as "i686-pc-mingw32".
dFor bug reporting instructions, please see:
d.
dGNU gdb (GDB) 7.2
dCopyright (C) 2010 Free Software Foundation, Inc.
dLicense GPLv3+: GNU GPL version 3 or later
dThis is free software: you are free to change and redistribute it.
dThere is NO WARRANTY, to the extent permitted by law. Type "show copying"
dand "show warranty" for details.
dThis GDB was configured as "i686-pc-mingw32".
dFor bug reporting instructions, please see:
d.
d
dUSING GDB VERSION: 70200, BUILD: 2010
>2^done,features=["frozen-varobjs","pending-breakpoints","thread-info","python"]
dFEATURES: 2^done,data={features=["frozen-varobjs","pending-breakpoints","thread-info","python"]}
d
>&"set breakpoint pending onn"
>3^done
>&"set print elements 10000n"
>4^done
>&"set overload-resolution offn"
>5^done
>&"handle SIGSEGV nopass stop printn"
>~"Signal StoptPrinttPass to programtDescriptionn"
>~"SIGSEGV YestYestNottSegmentation faultn"
>6^done
>&"set unwindonsignal onn"
>7^done
>&"pwdn"
>~"Working directory C:Documents and SettingscaldecorDesktopProjectstest-build-desktop-Qt
inPATHDebug.n"
>8^done
>&"set width 0n"
>9^done
>&"set height 0n"
>10^done
>&"set auto-solib-add onn"
>11^done
>12^done
>13^done
>&"A syntax error in expression, near 0'.n" &gt;14^error,msg="A syntax error in expression, near0'."
>15^done
>16^done
>17^done
>~"dumpers=[{type="QLinkedList",formats=""},{type="QSize",formats=""},{type="QFileInfo",formats=""},{type="QAbstractItemModel",formats=""},{type="stdstack",formats=""},{type="QTextDocument",formats=""},{type="QTJSCJSValue",formats=""},{type="gnu_cxxhash_set",formats=""},{type="QStringList",formats=""},{type="QRegion",formats=""},{type="stdwstring",formats=""},{type="QString",formats="Inline,Separate Window",editable="true"},{type="QTextCodec",formats=""},{type="QBasicAtomicInt",formats=""},{type="QScriptValue",formats=""},{type="QTime",formats=""},{type="QSharedData",formats=""},{type="stdvector",formats="",editable="true"},{type="QRegExp",formats=""},{type="QTextCursor",formats=""},{type="QxXmlAttributes",formats=""},{type="QDateTime",formats=""},{type="QList",formats=""},{type="QStandardItem",formats=""},{type="stddeque",formats=""},{type="QFixed",formats=""},{type="QHash",formats=""},{type="QSharedPointer",formats=""},{type="QUrl",formats=""},{type="stdset",formats=""},{type="stdlist",formats=""},{type="stdbasic_string",formats=""},{type="QPoint",formats=""},{type="QStack",formats=""},{type="QScopedPointer",formats=""},{type="QRectF",formats=""},{type="QMultiMap",formats=""},{type="QMapNode",formats=""},{type="QObject",formats=""},{type="QHostAddress",formats=""},{type="QLocale",formats=""},{type="QSharedDataPointer",formats=""},{type="QVariant",formats=""},{type="string",formats="",editable="true"},{type="QBasicAtomicPointer",formats=""},{type="QVector",formats="",editable="true"},{type="QDate",formats=""},{type="QFile",formats=""},{type="QAtomicInt",formats=""},{type="wstring",formats=""},{type="QWeakPointer",formats=""},{type="QSizeF",formats=""},{type="m128",formats="As Floats,As Doubles"},{type="boostoptional",formats=""},{type="TBuf",formats=""},{type="QPointF",formats=""},{type="TLitC",formats=""},{type="QRect",formats=""},{type="QByteArray",formats=""},{type="QMap",formats=""},{type="boostshared_ptr",formats=""},{type="QChar",formats=""},{type="QDir",formats=""},{type="QPixmap",formats=""},{type="QFlags",formats=""},{type="stdmap",formats=""},{type="QHashNode",formats=""},{type="QTemporaryFile",formats=""},{type="QModelIndex",formats=""},{type="EigenMatrix",formats=""},{type="stdstring",formats="",editable="true"},{type="QImage",formats="Normal,Displayed"},{type="QSet",formats=""},],hasInferiorThreadList="0"n"
>18^done
>19^done
<20set substitute-path C:/iwmake/buildmingwopensource C:/Qt/4.7.4
<21set substitute-path C:/ndkbuildrepos/qt-desktop/src C:/Qt/4.7.4
&"set substitute-path C:/iwmake/build
mingwopensource C:/Qt/4.7.4n"
>20^done
>&"set substitute-path C:/ndk
buildrepos/qt-desktop/src C:/Qt/4.7.4n"
>21^done
>&"set substitute-path C:/qt-greenhouse/Trolltech/Codelesscreatemore/Trolltech/Codelesscreatemore/Troll/4.6/qt C:/Qt/4.7.4n"
>22^done
dALL COMMANDS DONE; INVOKING CALLBACK
&"maint print msymbols C:/DOCUME~1/caldecor/LOCALS~1/Temp/gdbns.hg5708n"
>23^done
dFOUND NON-NAMESPACED QT
dNOTE: INFERIOR SETUP OK
dState changed from InferiorSetupRequested(4) to InferiorSetupOk(6).
dState changed from InferiorSetupOk(6) to EngineRunRequested(7).
dQUEUE: RUN ENGINE
dCALL: RUN ENGINE
24^error,msg="Error creating process C:/Documents and Settings/caldecor/Desktop/Projects/test-build-desktop-QtinPATHDebug/debug/test.exe, (error 193)."
dError creating process C:/Documents and Settings/caldecor/Desktop/Projects/test-build-desktop-Qt
inPATHDebug/debug/test.exe, (error 193).
dNOTE: ENGINE RUN FAILED
dState changed from EngineRunRequested(7) to EngineRunFailed(8).
dState changed from EngineRunFailed(8) to EngineShutdownRequested(20).
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN ENGINE
dPLAIN ADAPTER SHUTDOWN 20
dINITIATE GDBENGINE SHUTDOWN IN STATE 0, PROC: 2
25^exit
dGDB CLAIMS EXIT; WAITING
dGDB PROCESS FINISHED, status 0, code 0
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(20) to EngineShutdownOk(22).
dState changed from EngineShutdownOk(22) to DebuggerFinished(23).
dQUEUE: FINISH DEBUGGER
dNOTE: FINISH DEBUGGER
dHANDLE RUNCONTROL FINISHED
sDebugger finished.

?
Rob Caldecott
0 points
162 months ago

Ack. Seems to be the spaces in the pathname. Sigh

?
Jack
0 points
162 months ago

when open a xx.cpp file,the QCreator will be exit .I think this is the bug of the QtCreator.

?
Eike Ziller
0 points
162 months ago

The qt-creator@qt-project.org mailing list is really a better place for discussions.

?
Jon
0 points
162 months ago

@Eike: If I followed your suggestion and not try to out think you, things would have worked much better. I have now successfully made things work with QtCreator 2.3.1. But still unable to make it work with 2.4.0-rc, it will tell me it is unable to load the helpers. I found a bug report for this in your tracker, but it is listed as Qt5 only, well I think it might be 4 as well in these older systems.

Again thanks for the help and link to the proper gdb.

?
Dini
0 points
161 months ago

Hello,

Do you have an idea on the date for the launch of QtCreartor 2.4.0?
At least for Christmas ;).

Thanks.
Good luck

?
Eike Ziller
0 points
161 months ago

@dini: definitely

?
Michael
0 points
161 months ago

I love the new "Show Containing Folder" & "Open Terminal" features. Really nice for my workflow.

Could we please get the double-click drag bug fixed for this new release?
For the past few months in QtCreator I have had to precisely click around the start word and and word of the text that I want to drag around. I used to be able to just double click and drag across really quickly & easily.

?
Eike Ziller
0 points
161 months ago

@michael: The word-selection-drag problem is an issue with Qt 4.7.4 that we can't solve from Qt Creator. That issue is fixed in Qt 4.8, which isn't released yet. (If you rely on that feature heavily it might be worth compiling Qt 4.8 and Qt Creator yourself from source.)

?
Tony
0 points
161 months ago

@Eike Can we then also assume that Qt4.8 will be out by Christmas too?

?
Eike Ziller
0 points
161 months ago

@tony: no idea, you'll have to ask someone that is involved in the Qt release process for an answer to that.

?
Marius
0 points
161 months ago

I'm also having serious problems with the debugger. I've found it to be verry buggy and ruining what is otherwise my favorite IDE.
I've also opened a bug report for a problem I had on Linux but it's still unresolved (need to retest to see if it still happens ).
While I do understand the need to introduce new code and features it would be nice to have the existing one with less bugs.
It's nice that Qt Creator is able to use the MS debugger too but it ships with GDB for Windows and right now that's not working for me under Windows 7 x64. Speaking of which it would be really nice to have a 64 bit for Windows.
That's all , sorry if I'm being a bit harsh ... I'm trying to work on something and I can't really debug it properly.
I know you "trolls" have always been nice, open and receptive.