summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2022-11-14 13:53:00 +0100
committerIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2022-11-18 10:52:34 +0100
commit182fa60432e68d8aaed9a6a7ad761edda33e27f8 (patch)
treed7143adc575a4404325042570b702e499cc6a3c0 /src
parent9f7fae5537ddcbbe720f796f61f65401c98b5151 (diff)
downloadqtconnectivity-182fa60432e68d8aaed9a6a7ad761edda33e27f8.tar.gz
QtNfc: Replace snippets with actual code
The snippets in the NFC overview page refer to the ndefeditor example that is about to be completely replaced. Task-number: QTBUG-103949 Change-Id: Ie0b42b36f82b58f680a5a355f79e04e0422e32c9 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/nfc/doc/src/nfc-overview.qdoc47
1 files changed, 42 insertions, 5 deletions
diff --git a/src/nfc/doc/src/nfc-overview.qdoc b/src/nfc/doc/src/nfc-overview.qdoc
index a4476331..f5c924e7 100644
--- a/src/nfc/doc/src/nfc-overview.qdoc
+++ b/src/nfc/doc/src/nfc-overview.qdoc
@@ -49,19 +49,32 @@ a tag comes into or leaves the range. The passed \l QNearFieldTarget parameter a
as primary interaction point for each detected tag. The detection does not actually start though until
\l QNearFieldManager::startTargetDetection() has been called.
-\snippet ndefeditor/mainwindow.cpp QNearFieldManager init
-\snippet ndefeditor/mainwindow.cpp QNearFieldManager start detection
+\code
+m_manager = new QNearFieldManager(this);
+connect(m_manager, &QNearFieldManager::targetDetected,
+ this, &MainWindow::targetDetected);
+connect(m_manager, &QNearFieldManager::targetLost,
+ this, &MainWindow::targetLost);
+m_manager->startTargetDetection(QNearFieldTarget::NdefAccess);
+\endcode
Finally the detection can be stopped:
-\snippet ndefeditor/mainwindow.cpp QNearFieldManager stop detection
+\code
+m_manager->stopTargetDetection();
+\endcode
Although each \l QNearFieldTarget instance is owned by its related \l QNearFieldManager
instance it can be beneficial to manually delete each instance. Otherwise they would continue to
exist until the \l QNearFieldManager instance is deleted. The best way to do that would be in response
to the \l QNearFieldManager::targetLost() signal:
-\snippet ndefeditor/mainwindow.cpp QNearFieldTarget lost
+\code
+void MainWindow::targetLost(QNearFieldTarget *target)
+{
+ target->deleteLater();
+}
+\endcode
\note The target object should only be deleted via deleteLater() if it is deleted inside the slot.
@@ -83,7 +96,31 @@ The \l QNearFieldTarget instance returned by \l QNearFieldManager::targetDetecte
is used to interact with the tag. Reading and writing a message is an asynchronous operation.
The \l QNearFieldTarget::RequestId class associates individual operations and their results.
-\snippet ndefeditor/mainwindow.cpp QNearFieldTarget detected
+\code
+void MainWindow::targetDetected(QNearFieldTarget *target)
+{
+ switch (m_touchAction) {
+ case NoAction:
+ break;
+ case ReadNdef:
+ connect(target, &QNearFieldTarget::ndefMessageRead, this, &MainWindow::ndefMessageRead);
+ connect(target, &QNearFieldTarget::error, this, &MainWindow::targetError);
+
+ m_request = target->readNdefMessages();
+ if (!m_request.isValid()) // cannot read messages
+ targetError(QNearFieldTarget::NdefReadError, m_request);
+ break;
+ case WriteNdef:
+ connect(target, &QNearFieldTarget::requestCompleted, this, &MainWindow::ndefMessageWritten);
+ connect(target, &QNearFieldTarget::error, this, &MainWindow::targetError);
+
+ m_request = target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage());
+ if (!m_request.isValid()) // cannot write messages
+ targetError(QNearFieldTarget::NdefWriteError, m_request);
+ break;
+ }
+}
+\endcode
Once the \l QNearFieldTarget::readNdefMessages() request was successfully processed, the
\l QNearFieldTarget::ndefMessageRead() signal is emitted. Each returned \l QNdefMessage