diff options
author | Jerome Pasion <jerome.pasion@digia.com> | 2012-09-25 15:20:41 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-27 14:43:52 +0200 |
commit | d8a179128c0fa8e9cc482df58b9334c696602be6 (patch) | |
tree | dd5032440aa87dfd63c973265adc9947db0918f6 /examples/nfc/poster | |
parent | 9d89c661395347bdda9362a77d38c86ad60f486b (diff) |
Qt Bluetooth: Modularized documentation
-moved documentation to src/bluetooth/doc
-added a qdocconf file for Qt Bluetooth
-fixed relative paths for snippets
-moved examples to examples/bluetooth
Change-Id: Id41bac50dca628400568d191f1c3ccfbaac790a1
Reviewed-by: Alex <ablasche@gmail.com>
Diffstat (limited to 'examples/nfc/poster')
-rw-r--r-- | examples/nfc/poster/doc/images/qml-poster-example.png | bin | 0 -> 54257 bytes | |||
-rw-r--r-- | examples/nfc/poster/doc/src/poster.qdoc | 38 | ||||
-rw-r--r-- | examples/nfc/poster/poster.pro | 13 | ||||
-rw-r--r-- | examples/nfc/poster/poster.qml | 186 | ||||
-rw-r--r-- | examples/nfc/poster/poster.qrc | 6 | ||||
-rw-r--r-- | examples/nfc/poster/qmlposter.cpp | 62 |
6 files changed, 305 insertions, 0 deletions
diff --git a/examples/nfc/poster/doc/images/qml-poster-example.png b/examples/nfc/poster/doc/images/qml-poster-example.png Binary files differnew file mode 100644 index 00000000..ab01a31f --- /dev/null +++ b/examples/nfc/poster/doc/images/qml-poster-example.png diff --git a/examples/nfc/poster/doc/src/poster.qdoc b/examples/nfc/poster/doc/src/poster.qdoc new file mode 100644 index 00000000..109938d2 --- /dev/null +++ b/examples/nfc/poster/doc/src/poster.qdoc @@ -0,0 +1,38 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of the Qt local connectivty modules. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! +\example poster +\title QML Poster Example + +The QML Poster example displays the contents of specifically formated NDEF messages read from an +NFC Tag. The NDEF message should contain a URI record, an optional image/* MIME record and one +or more localized Text records. + +\image qml-poster-example.png + +*/ diff --git a/examples/nfc/poster/poster.pro b/examples/nfc/poster/poster.pro new file mode 100644 index 00000000..de2e1a05 --- /dev/null +++ b/examples/nfc/poster/poster.pro @@ -0,0 +1,13 @@ +QT += declarative quick network nfc widgets + +SOURCES += \ + qmlposter.cpp + +TARGET = qml_poster +TEMPLATE = app + +RESOURCES += \ + poster.qrc + +OTHER_FILES += \ + poster.qml diff --git a/examples/nfc/poster/poster.qml b/examples/nfc/poster/poster.qml new file mode 100644 index 00000000..6cd181cd --- /dev/null +++ b/examples/nfc/poster/poster.qml @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtNfc module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt 4.7 +import QtNfc 5.0 + +Rectangle { + id: root + width: 640 + height: 360 + + NearField { + id: nearfield + + filter: [ + NdefFilter { type: "urn:nfc:wkt:U"; minimum: 1; maximum: 1 }, + NdefFilter { type: "urn:nfc:wkt:T"; minimum: 1 } + ] + + onMessageRecordsChanged: { + posterText.text = ""; + posterImage.source = ""; + posterUrl.text = ""; + + var currentLocaleMatch = NdefTextRecord.LocaleMatchedNone; + var i; + for (i = 0; i < messageRecords.length; ++i) { + if (messageRecords[i].recordType == "urn:nfc:wkt:T") { + if (messageRecords[i].localeMatch > currentLocaleMatch) { + currentLocaleMatch = messageRecords[i].localeMatch; + posterText.text = messageRecords[i].text; + } + } else if (messageRecords[i].recordType == "urn:nfc:wkt:U") { + posterUrl.text = messageRecords[i].uri; + } else if (messageRecords[i].recordType.substr(0, 19) == "urn:nfc:mime:image/") { + posterImage.source = messageRecords[i].uri; + } + } + + root.state = "show"; + } + } + + Text { + id: touchText + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + text: "Touch an NFC tag" + font.bold: true + font.pointSize: 18 + } + + Text { + id: posterText + anchors.horizontalCenter: parent.right + anchors.horizontalCenterOffset: - parent.width / 4 + y: -height + font.bold: true + font.pointSize: 18 + } + + Image { + id: posterImage + scale: Image.PreserveAspectFit + height: parent.height * 0.8 + width: height * sourceSize.width / sourceSize.height + anchors.verticalCenter: parent.verticalCenter + x: -width + smooth: true + } + + Text { + id: posterUrl + anchors.horizontalCenter: parent.right + anchors.horizontalCenterOffset: - parent.width / 4 + y: parent.height + font.italic: true + font.pointSize: 14 + } + + MouseArea { + id: openMouseArea + anchors.fill: parent + enabled: root.state == "show" + + onClicked: Qt.openUrlExternally(posterUrl.text) + + Rectangle { + id: testTouch + width: 50 + height: 50 + color: "lightsteelblue" + opacity: 0.3 + anchors.top: parent.top + anchors.right: close.left + anchors.rightMargin: 10 + + MouseArea { + id: touchMouseArea + anchors.fill: parent + + onClicked: { + if (root.state == "") { + root.state = "show"; + } else { + root.state = ""; + } + } + } + } + + Rectangle { + id: close + width: 50 + height: 50 + color: "black" + radius: 0 + opacity: 0.3 + anchors.top: parent.top + anchors.topMargin: 0 + anchors.right: parent.right + anchors.rightMargin: 0 + + MouseArea { + id: closeMouseArea + anchors.fill: parent + + onClicked: Qt.quit(); + } + } + } + + states: [ + State { + name: "show" + PropertyChanges { target: posterText; y: root.height / 3 } + PropertyChanges { target: posterUrl; y: 2 * root.height / 3 } + PropertyChanges { target: posterImage; x: root.width / 20 } + PropertyChanges { target: touchText; opacity: 0 } + } + ] + + transitions: [ + Transition { + PropertyAnimation { easing.type: Easing.OutQuad; properties: "x,y" } + PropertyAnimation { property: "opacity"; duration: 125 } + } + ] +} diff --git a/examples/nfc/poster/poster.qrc b/examples/nfc/poster/poster.qrc new file mode 100644 index 00000000..d8286e71 --- /dev/null +++ b/examples/nfc/poster/poster.qrc @@ -0,0 +1,6 @@ +<RCC> + <qresource prefix="/"> + <file>poster.qml</file> + </qresource> + <qresource prefix="/icons"/> +</RCC> diff --git a/examples/nfc/poster/qmlposter.cpp b/examples/nfc/poster/qmlposter.cpp new file mode 100644 index 00000000..606a96f8 --- /dev/null +++ b/examples/nfc/poster/qmlposter.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtNfc module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtWidgets/QApplication> +#include <QtQuick/QQuickView> +#include <QtDeclarative/QDeclarativeEngine> + +int main(int argc, char *argv[]) +{ + QApplication application(argc, argv); + const QString mainQmlApp = QLatin1String("qrc:/poster.qml"); + QQuickView view; + view.setSource(QUrl(mainQmlApp)); + view.setResizeMode(QQuickView::SizeRootObjectToView); + // Qt.quit() called in embedded .qml by default only emits + // quit() signal, so do this (optionally use Qt.exit()). + QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit())); +#if defined(Q_WS_MAEMO_6) || defined(Q_WS_SIMULATOR) + view.showFullScreen(); +#else + view.setGeometry(QRect(100, 100, 640, 360)); + view.show(); +#endif + return application.exec(); +} |