Qt Quick: Playground Example v1.4.1
===================================

This QML application demonstrates the features of Qt Quick with a set of demos 
and the possibility to view the source code of the demos. Each demo shows 
different Qt Quick features. The application is compatible with Maemo devices, 
Symbian^1, Symbian Anna, MeeGo 1.2 Harmattan devices, and Windows desktop.


FILES
-------------------------------------------------------------------------------

src/main.cpp

- The main file of the application. Creates QDeclarativeEngine and 
  QDeclarativeView, sets the view to landscape, and starts demochooser.qml.

src/qmlcodeprovider.cpp

- Implementation of Qt class. Reads / writes a text file and provides the 
  contents of the text file to the QML code.

demochooser.qml

- The main screen of the QtQuickPlayground application. Gives the parameters 
  of each demo to demoitem.qml.

content/demoitem.qml

- Contains the graphic elements of the demo; the skin, text editor, and 
  buttons. Handles the states and transitions when starting / closing / 
  entering the code editor.

content/demoitemcore.js

- The JavaScript file that contains the code to dynamically load / unload the 
  selected demo.

content/texteditor.qml

- TextEditor component, implements the code editor.

content/dialog.qml

- Dialog component which is used to show the error strings and to access the 
  code editor to view the place in the code where the error is.

content/sidepanel.qml

- Side panel component, consists mostly of back and code editor buttons.

content/fancypicker/*

- Implementation of the FancyPicker demo.

content/helloworld/*

- Implementation of the HelloWorld demo.

content/memorygame/*

- Implementation of the MemoryGame demo.

content/slideshow/*

- Implementation of the SlideShow demo.

content/webcontent/*

- Implementation of the WebContent demo.

qtc_packaging/

- The directory which contains files related to Debian (Maemo and Harmattan)
  packaging.

bin/

- The compiled binaries for each platform.


CLASSES AND ELEMENTS USED
-------------------------------------------------------------------------------

The most unusual Qt classes and QML elements are listed here.

Qt classes
~~~~~~~~~~
 QDeclarativeView - used to interpret QML files.
 QGLWidget        - used to paint the QDeclarativeView with Qt OpenGL.
 QDBusConnection  - used to send a DBUS message in Maemo to minimise the
                    application.
 
QML elements
~~~~~~~~~~~~
 Grid              - used to position the demos in the demo selector screen.
 TextEdit          - used to implement the code editor.
 TextInput         - used to implement the text input field in the WebContent 
                     demo.
 Flickable         - used to implement the FancyPicker image viewing area and
                     the panning feature of the code editor.
 WebView           - used to implement the WebContent demo's web browser.
 Particles         - used to implement the snow flakes.
 ListModel         - used to implement the slide content for the SlideShow 
                     demo.
 ListView          - used to implement the look of the slides of the SlideShow 
                     demo.
 StateChangeScript - used to run scripts in the state changes.
 ParentChange      - used to change the parent of the demo when one of the 
                     demos is started.


KNOWN ISSUES
-------------------------------------------------------------------------------

- The performance could be better (mostly in Symbian) due to the fact that 
  each demo has several hidden graphic elements (code editor).
  
- There are issues with the virtual keyboard (VKB) on Harmattan. The
  texts inputted must be "committed" by the Done button of the VKB in order the
  software to see the inputted text.

DESIGN CONSIDERATIONS
-------------------------------------------------------------------------------

- There should be only one code editor in this application. Currently each
  demo has its own code editor, which consumes memory and resources.

  
BUILD & INSTALLATION INSTRUCTIONS
-------------------------------------------------------------------------------

Preparations
~~~~~~~~~~~~

Check that you have the latest Qt/Qt SDK installed in the development 
environment and on the device.


Build & installation instructions using Qt SDK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Open the Qt PRO file.
   File > Open File or Project, select pro-file.

2. Select target(s), for example 'Qt 4.7.4 for Symbian Anna (Qt SDK)', and
   press the Finish button.

3. Press the Run button to build the project and create the Symbian install 
   package. The application is installed on the device.


RUNNING THE APPLICATION
-------------------------------------------------------------------------------

Launch QtQuickPlayground on your device. The main window is loaded showing a 
set of six Qt Quick demos.

You can start each demo by tapping the demo icon on the screen. The demo icon 
will scale to full screen and the actual demo is loaded dynamically. All demos 
have a sidepanel on the right side, allowing you to go back to the main 
screen or to open the code editor of the demo. You can also access the 
code editor by peeling the skin off the demo on the demo’s main screen by 
moving a finger diagonally from the bottom right corner towards the top left 
corner.

In the code editor, you can examine the code of the demo. You can scroll the 
code editor by dragging a finger on top of the code in the browse state. The 
browse state can be changed to edit state with the Browse button on the top. 
In the edit state, code cannot be scrolled but you can edit the code with the 
device’s keyboard. To scroll the code, change the state back to the browse 
state. After editing the code, you might want to try and see how the editing 
affected the demo. The demo can be started from the Try Demo button in the 
bottom right corner. If there are error(s) in the code, an error dialogue is 
shown, and by clicking the dialogue you can go back to the editor to see 
what’s wrong.

Each demo can be closed from the Back button in the top right corner, which 
brings you back to the main screen of the application. The application is 
closed from the X button on the upper right corner of the main screen.

Note: Every time the QtQuickPlayground application is started, the code of 
each demo will revert to its original state destroying all the code changes 
you may have done.


COMPATIBILITY
-------------------------------------------------------------------------------

- Qt SDK 1.1.4
- Qt Mobility 1.2.1
- Symbian Anna with Qt 4.7.4
- Symbian^1 with Qt 4.7.4
- MeeGo 1.2 Harmattan
- Maemo 5
- Windows desktop
     
Tested on:

- Nokia 5800 XpressMusic
- Nokia N97
- Nokia N8-00
- Nokia E7-00
- Nokia N900
- Nokia N950
- Windows 7


VERSION HISTORY
-------------------------------------------------------------------------------
1.4.1 Added support for VKB on Symbian and Harmattan.
1.4 Added MeeGo 1.2 Harmattan support.
1.3 Added S60 5th Edition (Symbian^1) support. Compatibility with Qt 4.7.1.
1.2 Added Qt OpenGL support. Fixed the WebContent demo to work on Symbian 
    devices. Compatibility with public Qt 4.7.0. Published in FN Projects only.
1.1 Updated the software to work with Qt 4.7.0 RC in Symbian, Maemo, and 
    Windows desktop. Published in FN Projects only.
1.0 Initial version. Published in FN Projects only.