diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/src/declarative/extending.qdoc | 70 | ||||
-rwxr-xr-x | doc/src/template/scripts/functions.js | 17 | ||||
-rwxr-xr-x | doc/src/template/style/style.css | 39 |
3 files changed, 100 insertions, 26 deletions
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index 6476dfb..28d4ed4 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -65,20 +65,22 @@ template<typename T> int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) \endcode -Calling qmlRegisterType() registers the C++ type \a T with the QML system, and makes it available in QML -under the name \a qmlName in library \a uri version \a versionMajor.versionMinor. -The \a qmlName can be the same as the C++ type name. +Calling qmlRegisterType() registers the C++ type \a T with the QML +system, and makes it available in QML under the name \a qmlName in +library \a uri version \a versionMajor.versionMinor. The \a qmlName +can be the same as the C++ type name. Type \a T must be a concrete type that inherits QObject and has a default constructor. + \endquotation -Types can be registered by libraries (such as Qt does), application code, -or by plugins (see QDeclarativeExtensionPlugin). +Types can be registered by libraries, application code, or by plugins +(see QDeclarativeExtensionPlugin). -Once registered, all of the \l {Qt's Property System}{properties} of a supported -type are available for use within QML. QML has intrinsic support for properties -of these types: +Once registered, all \l {Qt's Property System}{properties} of the +supported types are available in QML. QML has intrinsic support for +properties of these types: \list \o bool @@ -94,9 +96,14 @@ of these types: \o QVariant \endlist -QML is typesafe. Attempting to assign an invalid value to a property will -generate an error. For example, assuming the name property of the \c Person -element had a type of QString, this would cause an error: +When a property of a supported type is added to a C++ class, in a QML +element based on the C++ class, a \e{value-changed} signal handler +will be available. See \l{Signal Support} below. + +QML is typesafe. Attempting to assign an invalid value to a property +will generate an error. For example, assuming the \e{name} property +of the \c Person element had a type of QString, this would cause an +error: \code Person { @@ -412,7 +419,28 @@ value will not be accessible from script. implement the onPartyStarted signal property. If you want to use signals from items not created in QML, you can access their -signals with the \l {Connections} element. +signals with the \l {Connections} element. + +Additionally, if a property is added to a C++ class, all QML elements +based on that C++ class will have a \e{value-changed} signal handler +for that property. The name of the signal handler is \e{on<Property +name>Changed}, with the first letter of the property name being upper +cased. + +\note If the NOTIFY signal for the added property is not simply +\c{<property_name>Changed()}, then you will get two equivalent signal +handlers, one because of the signal, one because of the property. For +example, if the property \c{test_property} with NOTIFY signal +\c{testPropChanged()} is added to a C++ class, then QML elements based +on that C++ class will have two signal handlers: +\c{onTest_propertyChanged} because of the property, and +\c{onTestPropChanged} because of the NOTIFY signal. For clarity, we +suggest that for properties exposed to QML in this way, the name of +the NOTIFY signal should be just \c{<property_name>Changed()}, so that +there will be just one signal handler in QML and one naming +convention used. + +See also \l {Extending types from QML}. \section1 Property Value Sources @@ -705,6 +733,24 @@ controls the color of the inner rectangle. } \endcode +Adding a property to an item automatically adds a \e{value-changed} +signal handler to the item. The signal hander is named +\c{on<Property_name>Changed}, with the first letter of the property +name being upper case. + +Signal handlers can have arbitrary JavaScript code assigned. The following +example shows how to output to a text console a new value of property +\c{innerColor} whenever the value of this property changes. + +\code + Rectangle { + id: rect + property color innerColor: "black" + + onInnerColorChanged: { console.log(rect.innerColor); } + } +\endcode + \target qml-property-aliases \section2 Property aliases diff --git a/doc/src/template/scripts/functions.js b/doc/src/template/scripts/functions.js index 2723ff2..faa4ca4 100755 --- a/doc/src/template/scripts/functions.js +++ b/doc/src/template/scripts/functions.js @@ -63,11 +63,9 @@ function processNokiaData(response){ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'APIPage'){ lookupCount++; - for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue; full_li_element = full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd; - $('#ul001').append(full_li_element); $('#ul001 .defaultLink').css('display','none'); @@ -77,7 +75,6 @@ function processNokiaData(response){ if(propertyTags[i].getElementsByTagName('pageType')[0].firstChild.nodeValue == 'Article'){ articleCount++; - for (var j=0; j< propertyTags[i].getElementsByTagName('pageWords').length; j++){ full_li_element = linkStart + propertyTags[i].getElementsByTagName('pageUrl')[j].firstChild.nodeValue; full_li_element =full_li_element + "'>" + propertyTags[i].getElementsByTagName('pageTitle')[0].firstChild.nodeValue + linkEnd ; @@ -103,10 +100,13 @@ function processNokiaData(response){ if(i==propertyTags.length){$('#pageType').removeClass('loading');} } + if(lookupCount > 0){$('#ul001 .menuAlert').remove();$('#ul001').prepend('<li class=\"menuAlert liveResult hit\">Found ' + lookupCount + ' hits</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');} + if(articleCount > 0){$('#ul002 .menuAlert').remove();$('#ul002').prepend('<li class=\"menuAlert liveResult hit\">Found ' + articleCount + ' hits</li>');$('#ul002 li').css('display','block');} + if(exampleCount > 0){$('#ul003 .menuAlert').remove();$('#ul003').prepend('<li class=\"menuAlert liveResult hit\">Found ' + articleCount + ' hits</li>');$('#ul003 li').css('display','block');} - if(lookupCount == 0){$('#ul001').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');} - if(articleCount == 0){$('#ul002').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul002 li').css('display','block');} - if(exampleCount == 0){$('#ul003').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul003 li').css('display','block');} + if(lookupCount == 0){$('#ul001 .menuAlert').remove();$('#ul001').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul001 li').css('display','block');$('.sidebar .search form input').removeClass('loading');} + if(articleCount == 0){$('#ul002 .menuAlert').remove();$('#ul002').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul002 li').css('display','block');} + if(exampleCount == 0){$('#ul003 .menuAlert').remove();$('#ul003').prepend('<li class=\"menuAlert liveResult noMatch\">Found no result</li>');$('#ul003 li').css('display','block');} // reset count variables; lookupCount=0; articleCount = 0; @@ -121,6 +121,7 @@ function CheckEmptyAndLoadList() var pageVal = $('title').html(); $('#feedUrl').remove(); $('#pageVal').remove(); + $('.menuAlert').remove(); $('#feedform').append('<input id="feedUrl" name="feedUrl" value="'+pageUrl+'" style="display:none;">'); $('#feedform').append('<input id="pageVal" name="pageVal" value="'+pageVal+'" style="display:none;">'); $('.liveResult').remove(); @@ -170,6 +171,7 @@ else if (this.timer) clearTimeout(this.timer); this.timer = setTimeout(function () { $('#pageType').addClass('loading'); + $('.searching').remove(); $('.list ul').prepend('<li class="menuAlert searching">Searching...</li>'); $.ajax({ contentType: "application/x-www-form-urlencoded", @@ -180,7 +182,8 @@ else success: function (response, textStatus) { $('.liveResult').remove(); - $('#pageType').removeClass('loading'); + $('.searching').remove(); + $('#pageType').removeClass('loading'); $('.list ul').prepend('<li class="menuAlert searching">Searching...</li>'); processNokiaData(response); diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css index b174622..299806b 100755 --- a/doc/src/template/style/style.css +++ b/doc/src/template/style/style.css @@ -239,7 +239,7 @@ width: 158px; height: 19px; padding: 0; - border: none; + border: 0px; outline: none; font: 13px/1.2 Verdana; } @@ -328,13 +328,18 @@ { background: url(../images/box_bg.png) repeat-x 0 bottom; } - .sidebar .box ul li.menuAlert + .sidebar .box ul li.noMatch { background: none; - color:gray; + color:#FF2A00; font-style:italic; } - + .sidebar .box ul li.hit + { + background: none; + color:#AAD2F0; + font-style:italic; + } .wrap { @@ -857,7 +862,7 @@ position: fixed; top: 100px; left: 33%; - height: 190px; + height: 230px; width: 400px; padding: 5px; background-color: #e6e7e8; @@ -881,12 +886,25 @@ height: 120px; margin: 0px 25px 10px 15px; } + #noteHead + { + font-weight:bold; + padding:10px 10px 10px 20px; + } #feedsubmit { display: inline; float: right; margin: 4px 32px 0 0; } + + .note + { + font-size:7pt; + padding-bottom:3px; + padding-left:20px; + } + #blurpage { display: none; @@ -1233,12 +1251,19 @@ pre.highlightedCode { .navTop{ float:right; padding-right:5px; - padding-top:15px; + margin-top:15px; } .wrap .content .toc h3{ - border-bottom:none; + border-bottom:0px; + margin-top:0px; } + + .wrap .content .toc h3 a:hover{ + color:#00732F; + text-decoration:none; + } + /* end of screen media */ /* start of print media */ |