summaryrefslogtreecommitdiffstats
path: root/doc/src/declarative
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-05-19 23:39:52 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-05-19 23:39:52 (GMT)
commit2ba48e94330957158a82cc56d13bf2c301f33c22 (patch)
treecacdfa4595123374b3d200ac830cb727a1ec216c /doc/src/declarative
parent178a4e12da0601ecc662851e5bf7f124932e1a12 (diff)
parent83df329a42107764889f46b9019a37804c36776a (diff)
downloadQt-2ba48e94330957158a82cc56d13bf2c301f33c22.zip
Qt-2ba48e94330957158a82cc56d13bf2c301f33c22.tar.gz
Qt-2ba48e94330957158a82cc56d13bf2c301f33c22.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (37 commits) Search for QML import libraries also in application directory Doc improvements Disable mouse-based selection in TextInput/TextEdit Rename qml executable to qmlviewer Don't crash if the target parent is destroyed. Introduce a threaded interpreter for QML binding bytecode Bug moved. doc doc Remove image example (covered in class docs) When changing Loader source, remove old item from scene immediately. Add missing .qmlproject files Fix folderlistmodel with qt namespace Renaming "Qml Launcher" back to "QML Viewer" Rename some examples: proxyviewer -> networkaccessmanagerfactory, Regression fix for Loader anchors not working Make Qt.include() work for js files that have '.pragma library' doc fix Improve docs for Qt.quit() Prevent assignment of values (string, number, bool) to signal handlers. ...
Diffstat (limited to 'doc/src/declarative')
-rw-r--r--doc/src/declarative/examples.qdoc19
-rw-r--r--doc/src/declarative/extending.qdoc5
-rw-r--r--doc/src/declarative/focus.qdoc7
-rw-r--r--doc/src/declarative/globalobject.qdoc5
-rw-r--r--doc/src/declarative/pics/listview-highlight.png (renamed from doc/src/declarative/pics/trivialListView.png)bin5918 -> 5918 bytes
-rw-r--r--doc/src/declarative/pics/listview-simple.pngbin0 -> 5351 bytes
-rw-r--r--doc/src/declarative/qdeclarativemodels.qdoc23
-rw-r--r--doc/src/declarative/qmlruntime.qdoc26
8 files changed, 58 insertions, 27 deletions
diff --git a/doc/src/declarative/examples.qdoc b/doc/src/declarative/examples.qdoc
index cdc308a..5b8c937 100644
--- a/doc/src/declarative/examples.qdoc
+++ b/doc/src/declarative/examples.qdoc
@@ -82,7 +82,6 @@ For example, from your build directory, run:
\section2 Image Elements
\list
\o \l{declarative/imageelements/borderimage}{BorderImage}
-\o \l{declarative/imageelements/image}{Image}
\endlist
\section2 \l{declarative/positioners}{Positioners}
@@ -122,7 +121,6 @@ For example, from your build directory, run:
\section2 XML
\list
-\o \l{declarative/xml/xmldata}{XML data}
\o \l{declarative/xml/xmlhttprequest}{XmlHttpRequest}
\endlist
@@ -140,20 +138,20 @@ For example, from your build directory, run:
\list
\o \l{declarative/cppextensions/referenceexamples}{Reference examples} (discussed in \l {Extending QML in C++})
\o \l{declarative/cppextensions/plugins}{Plugins}
-\o \l{declarative/cppextensions/proxywidgets}{QtWidgets}
\o \l{declarative/cppextensions/qgraphicslayouts}{QGraphicsLayouts}
+\o \l{declarative/cppextensions/qwidgets}{QWidgets}
\o \l{declarative/cppextensions/imageprovider}{Image provider}
-\o \l{declarative/cppextensions/proxyviewer}{Network access manager factory}
+\o \l{declarative/cppextensions/networkaccessmanagerfactory}{Network access manager factory}
\endlist
\section2 Toys
\list
\o \l{declarative/toys/clocks}{Clocks}
+\o \l{declarative/toys/corkboards}{Corkboards}
\o \l{declarative/toys/dial}{Dial}
-\o \l{declarative/toys/dynamic}{Dynamic}
+\o \l{declarative/toys/dynamicscene}{Dynamic Scene}
\o \l{declarative/toys/tic-tac-toe}{Tic Tac Toe}
\o \l{declarative/toys/tvtennis}{TV Tennis}
-\o \l{declarative/toys/velocity}{Velocity}
\endlist
@@ -161,12 +159,19 @@ For example, from your build directory, run:
\list
\o \l{demos/declarative/calculator}{Calculator}
+\o \l{demos/declarative/flickr}{Flickr Mobile}
\o \l{demos/declarative/minehunt}{Minehunt}
\o \l{demos/declarative/photoviewer}{Photo Viewer}
-\o \l{demos/declarative/flickr}{Flickr Mobile}
+\o \l{demos/declarative/rssnews}{RSS News Reader}
\o \l{demos/declarative/samegame}{Same Game}
\o \l{demos/declarative/snake}{Snake}
\endlist
+\section1 Labs
+
+\list
+\o \l{src/imports/folderlistmodel}{Folder List Model} - a C++ model plugin
+\endlist
+
*/
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 5b695f7..574b0b2 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -61,8 +61,11 @@ QML for their own independent use.
The QML snippet shown above instantiates one \c Person instance and sets
the \c name and \c shoeSize properties on it. Everything in QML ultimately comes down
to either instantiating an object instance, or assigning a property a value.
+
QML relies heavily on Qt's meta object system and can only instantiate classes
-that derive from QObject.
+that derive from QObject. For visual element types, this will usually mean a subclass
+of QDeclarativeItem; for models used with the view elements, a subclass of QAbstractItemModel;
+and for abitrary objects with properties, a direct subclass of QObject.
The QML engine has no intrinsic knowledge of any class types. Instead the
programmer must register the C++ types with their corresponding QML names.
diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc
index e2b8bb6..4c4a317 100644
--- a/doc/src/declarative/focus.qdoc
+++ b/doc/src/declarative/focus.qdoc
@@ -67,7 +67,12 @@ item and thus subsequently be \l {QEvent::ignore()}{ignored}.
\code
Item {
Item {
- Keys.onPressed: if (event.key == Qt.Key_A) { console.log('Key A was pressed'); event.accepted = true }
+ Keys.onPressed: {
+ if (event.key == Qt.Key_A) {
+ console.log('Key A was pressed');
+ event.accepted = true;
+ }
+ }
Rectangle {}
}
}
diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc
index 2a83e30..c29a796 100644
--- a/doc/src/declarative/globalobject.qdoc
+++ b/doc/src/declarative/globalobject.qdoc
@@ -219,8 +219,9 @@ Binary to ASCII - this function returns a base64 encoding of \c data.
ASCII to binary - this function returns a base64 decoding of \c data.
\section3 Qt.quit()
-This function causes the QML engine to emit the quit signal, which in
-\l {Qt Declarative UI Runtime}{qml} causes the runtime to quit.
+This function causes the QDeclarativeEngine::quit() signal to be emitted.
+Within the \l {Qt Declarative UI Runtime}{qml} application this causes the
+launcher application to exit.
\section3 Qt.resolvedUrl(url)
This function returns \c url resolved relative to the URL of the
diff --git a/doc/src/declarative/pics/trivialListView.png b/doc/src/declarative/pics/listview-highlight.png
index dc5c6b3..dc5c6b3 100644
--- a/doc/src/declarative/pics/trivialListView.png
+++ b/doc/src/declarative/pics/listview-highlight.png
Binary files differ
diff --git a/doc/src/declarative/pics/listview-simple.png b/doc/src/declarative/pics/listview-simple.png
new file mode 100644
index 0000000..71a1c51
--- /dev/null
+++ b/doc/src/declarative/pics/listview-simple.png
Binary files differ
diff --git a/doc/src/declarative/qdeclarativemodels.qdoc b/doc/src/declarative/qdeclarativemodels.qdoc
index 788d417..109d390 100644
--- a/doc/src/declarative/qdeclarativemodels.qdoc
+++ b/doc/src/declarative/qdeclarativemodels.qdoc
@@ -99,7 +99,8 @@ There are a number of QML elements that operate using data models:
\endlist
QML supports several types of data model, which may be provided by QML
-or C++ (via QDeclarativeContext::setContextProperty(), for example).
+or C++ (via QDeclarativeContext::setContextProperty() or as plugin types,
+for example).
\section1 QML Data Models
@@ -210,8 +211,13 @@ will be positioned by the view.
\section1 C++ Data Models
+Models defined in C++ can be made available to QML either from a C++ application or from a
+\l{QDeclarativeExtensionPlugin}{QML C++ plugin}.
+
\section2 QAbstractItemModel
+A model can be defined by subclassing QAbstractItemModel.
+
QAbstractItemModel provides the roles set via the QAbstractItemModel::setRoleNames() method.
The default role names set by Qt are:
@@ -227,7 +233,18 @@ The default role names set by Qt are:
\o decoration
\endtable
-QAbstractItemModel presents a heirachy of tables. Views currently provided by QML
+The model could be made available to QML either directly:
+
+\code
+QDeclarativeContext *ctxt = view.rootContext();
+MyModel *model = new MyModel; // subclass of QAbstractItemModel
+ctxt->setContextProperty("myModel", model);
+\endcode
+
+or by registering the subclass as a new QML type in
+a \l{QDeclarativeExtensionPlugin}{QML C++ plugin}.
+
+QAbstractItemModel presents a heirachy of tables, but views currently provided by QML
can only display list data.
In order to display child lists of a heirachical model
the VisualDataModel element provides several properties and functions for use
@@ -242,7 +259,7 @@ with models of type QAbstractItemModel:
\section2 QStringList
-QStringList provides the contents of the list via the \e modelData role:
+A model may be a simple QStringList, which provides the contents of the list via the \e modelData role:
\table
\row
diff --git a/doc/src/declarative/qmlruntime.qdoc b/doc/src/declarative/qmlruntime.qdoc
index b105df4..cef5e63 100644
--- a/doc/src/declarative/qmlruntime.qdoc
+++ b/doc/src/declarative/qmlruntime.qdoc
@@ -42,17 +42,17 @@
/*!
\page qmlruntime.html
\title Qt Declarative UI Runtime
- \keyword qml runtime
+ \keyword QML Viewer
\ingroup qttools
This page documents the \e{Declarative UI Runtime} for the Qt GUI
- toolkit, and the \QQL which can be used to run apps
- written for the runtime. The \QQL reads a declarative
+ toolkit, and the \QQV which can be used to run apps
+ written for the runtime. The \QQV reads a declarative
user interface definition (\c .qml) file and displays the user interface it describes.
QML is a runtime, as you can run plain QML files which pull in their required modules.
To run apps with the QML runtime, you can either start the runtime
- from your own application (using a QDeclarativeView) or with the simple \QQL.
+ from your own application (using a QDeclarativeView) or with the simple \QQV.
The launcher can be installed in a production environment, assuming that it is not already
present in the system. It is generally packaged alongside Qt.
@@ -61,16 +61,16 @@
\list
\o Write your own Qt application including a QDeclarative view and deploy it the same as
any other Qt application (not discussed further on this page), or
- \o Write a main QML file for your application, and run your application using the included \QQL.
+ \o Write a main QML file for your application, and run your application using the included \QQV.
\endlist
- To run an application with the \QQL, pass the filename as an argument:
+ To run an application with the \QQV, pass the filename as an argument:
\code
- qml myQmlFile.qml
+ qmlviewer myQmlFile.qml
\endcode
- Deploying a QML application via the \QQL allows for QML only deployments, but can also
+ Deploying a QML application via the \QQV allows for QML only deployments, but can also
include custom C++ modules just as easily. Below is an example of how you might structure
a complex application deployed via the QML runtime, it is a listing of the files that would
be included in the deployment package.
@@ -92,8 +92,8 @@
as the appropriate module file is chosen based on platform naming conventions. The C++
modules must contain a QDeclarativeExtentionPlugin subclass.
- The application would be executed either with your own application, the command 'qml MyApp.qml' or by
- opening the file if your system has the \QQL registered as the handler for QML files. The MyApp.qml file would have access
+ The application would be executed either with your own application, the command 'qmlviewer MyApp.qml' or by
+ opening the file if your system has the \QQV registered as the handler for QML files. The MyApp.qml file would have access
to all of the deployed types using the import statements such as the following:
\code
@@ -101,15 +101,15 @@
import "OtherModule" 1.0 as Other
\endcode
- \section1 Qt QML Launcher functionality
- The \QQL implements some additional functionality to help it supporting
+ \section1 Qt QML Viewer functionality
+ The \QQV implements some additional functionality to help it supporting
myriad applications. If you implement your own application, you may also wish to reimplement
some or all of this functionality. However, much of this functionality is intended to aid the prototyping of
QML applications and may not be necessary for a deployed application.
\section2 Options
- When run with the \c -help option, \c qml shows available options.
+ When run with the \c -help option, \c qmlviewer shows available options.
\section2 Translations