summaryrefslogtreecommitdiffstats
path: root/doc/src/declarative
diff options
context:
space:
mode:
authorJerome Pasion <jerome.pasion@nokia.com>2011-02-10 10:50:17 (GMT)
committerJerome Pasion <jerome.pasion@nokia.com>2011-02-10 10:50:17 (GMT)
commit208715da3f06a862081f86548348518f9bc63177 (patch)
treeadd28358953c792f88fa96ad545cd75956971f75 /doc/src/declarative
parent69500fc302cd52033a058c601bdbad3a31ed2971 (diff)
downloadQt-208715da3f06a862081f86548348518f9bc63177.zip
Qt-208715da3f06a862081f86548348518f9bc63177.tar.gz
Qt-208715da3f06a862081f86548348518f9bc63177.tar.bz2
Re-wrote QML Reusable Components documentation
Task-number: QTBUG-16071
Diffstat (limited to 'doc/src/declarative')
-rw-r--r--doc/src/declarative/basicelements.qdoc9
-rw-r--r--doc/src/declarative/qmlreusablecomponents.qdoc40
2 files changed, 38 insertions, 11 deletions
diff --git a/doc/src/declarative/basicelements.qdoc b/doc/src/declarative/basicelements.qdoc
index 5997998..ad53ea4 100644
--- a/doc/src/declarative/basicelements.qdoc
+++ b/doc/src/declarative/basicelements.qdoc
@@ -109,15 +109,6 @@ the component will retain the top-level component's properties. If a non-visual
component is the top-level component, the visual properties should be aliased to
the top-level to display the component properly.
-A component implemented using a \c Rectangle as the top-level component:
-\snippet doc/src/snippets/declarative/focus/mywidget.qml document
-
-A component that uses a \c FocusScope as the top-level component:
-\snippet doc/src/snippets/declarative/focus/myfocusscopewidget.qml document
-Note that the visual properties need to be passed to the parent. The
-\l {Keyboard Focus in QML}{focus} article provides more details about the
-\c FocusScope element.
-
For more information on how to build upon QML elements, see the
\l{Importing Reusable Components} document.
*/
diff --git a/doc/src/declarative/qmlreusablecomponents.qdoc b/doc/src/declarative/qmlreusablecomponents.qdoc
index 0fd5515..956fa24 100644
--- a/doc/src/declarative/qmlreusablecomponents.qdoc
+++ b/doc/src/declarative/qmlreusablecomponents.qdoc
@@ -74,14 +74,14 @@ declaring a \c Button. The button is defined in the
\snippet doc/src/snippets/declarative/reusablecomponents/application.qml document
Note that the component name, \c Button, matches the QML filename, \c Button.qml.
-Specifically, the first character is in upper case. Matching the names allow
+Also, the first character is in upper case. Matching the names allow
components in the same directory to be in the direct import path of the
application.
For flexibility, a \c qmldir file is for dictating which additional components,
plugins, or directories should be imported. By using a \c qmldir file,
component names do not need to match the filenames. The \c qmldir file should,
-however, in an imported path.
+however, be in an imported path.
\snippet doc/src/snippets/declarative/reusablecomponents/qmldir document
\section2 Loading an Inline Component
@@ -103,6 +103,42 @@ Specifically, there are \l{attached-properties}{attached properties} and
\l{attached-signalhandlers}{attached signal handlers} for setting properties
during the lifetime of a component.
+The \c{Component.onCompleted} attached signal handler is called when the
+component completes initialization. It is useful for executing any commands
+after component initialization. Similarly, the \c{Component.onDestruction}
+signal handler executes when the component finishes destruction.
+
+\keyword qml-top-level
+\section1 Top-Level Component
+
+Choosing the \e{top-level} or the \e{root} object of components is an important
+design aspect because the top-level object dictates which properties are
+accessible outside the component. Some elements are not visual elements and
+will not have visual properties exposed outside the component. Likewise, some
+elements add functionality that are not available to visual elements.
+
+Consider the Button component from the
+\l{qml-define-components}{Defining New Components} section; it's top-level
+object is a \l Rectangle. When imported, the Button component will possess the
+Rectangle's properties, methods, signals, and any custom properties.
+
+\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml parent begin
+\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml ellipses
+\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml properties
+\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml ellipses
+\snippet doc/src/snippets/declarative/reusablecomponents/Button.qml parent end
+
+The Button's \c text alias is accessible from outside the component as well as
+the Rectangle's visual properties and signals such as \c x, \c y, \c anchors,
+and \c states.
+
+Alternatively, we may choose a \l {Keyboard Focus in QML}{FocusScope} as our
+top-level object. The \l FocusScope element manage keyboard focus for its
+children which is beneficial for certain types of interfaces. However, since
+\c FocusScopes are not visual elements, the visual properties of its child need
+to be exposed.
+
+\snippet doc/src/snippets/declarative/reusablecomponents/focusbutton.qml document
*/
The root object in \c Button.qml defines the attributes that are available to users of the