This is a very early test version of Qt Script for Applications
(QSA). Qt Script for Applications is a framework which enables the
user to make Qt/C++ applications scriptable. The end users of the
Qt/C++ applications can modify and extend the application dynamically.

Although the documentation is currently incomplete, you can find
documents about the technology used for QSA, how to make a Qt/C++
application scriptable, a tutorial on how to use the scripting IDE to
write scripts for a scriptable Qt/C++ application, the language Qt
Script and the system API in doc/html/index.html.

Examples of script enabled applications can be found in the examples
directory.

As stated above, this is an early test version of QSA. The following
paragraphs provide information on QSA's status and what development is
in the works for future versions. Please read through this carefully
and give us your feedback by sending mail to qsa@trolltech.com.

With QSA, we provide a technology which dynamically binds QObjects (and
subclasses) to the scripting language, Qt Script. This means that by
using the Qt Meta Object System, the scripting engine can query all
signals, slots and properties of the QObjects on runtime, and offer
these objects, signals, slots and properties to the user of the
scripting language. This is extremely powerful since QObjects can be
used from the scripting language without any additional effort; in
other words, no additional wrappers need to be written.

In practice however, existing signals, slots and properties in C++
code are not always sufficient. Additional functions of already
defined QObject-subclasses may be required for full use of the class.
In our experience, the number of such functions is small but shouldn't
be neglected in order to make the full functionality available to the
script user.

In order to solve this problem without adding any bloat to the core
C++ implementation, we implemented an "add-on" technology that allows
"enriching" existing QObject classes with additional signals, slots
and properties. We haven't completed the work of thoroughly scanning
through every single Qt class as of yet. If you miss some
functionality, please tell use about it and we will add additional
wrappers. Using QSWrapperFactory and QSObjectFactory it is also
possible to add wrappers, "enrich" classes and add constructable C++
objects to Qt Script.

Additionally, there are some Qt classes (File, Color, etc.), which
are not QObjects, but which are useful in the scripting language since
they are not supported by the language natively. We provide wrappers
for most of these classes. Again, if you miss any classes, or miss
functions in the API of the available classes, please let us know at
qsa@trolltech.com.
