/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt local connectivity 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 The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/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: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \example ndefeditor \title NDEF Editor Example \brief An example about reading and writing NFC Data Exchange Format (NDEF) messages to NFC Forum Tags. The NDEF Editor example reads and writes NFC Data Exchange Format (NDEF) messages to NFC Forum Tags. NDEF messages can be composed by adding records of supported types. Additionally, NDEF messages can be loaded/saved from/into a file located in the file system of the machine where the application is running. \image ndefeditor.png \section1 NFC Tag detection The MainWindow class is able to detect if a NFC Tag is in the range for read/write operations. It can also detect if connectivity has been lost. This is achieved by connecting the MainWindow class private handlers to the signals QNearFieldManager::targetDetected and QNearFieldManager::targetLost. \snippet ndefeditor/mainwindow.cpp QNearFieldManager init Through the UI a user requests when to start the detection of a NFC Tag by calling the method QNearFieldManager::startTargetDetection. \snippet ndefeditor/mainwindow.cpp QNearFieldManager start detection Once the target is detected the MainWindow connects the following signals to its internal private slots: QNearFieldTarget::ndefMessageRead, QNearFieldTarget::NdefReadError, QNearFieldTarget::ndefMessagesWritten, QNearFieldTarget::NdefWriteError and QNearFieldTarget::error \snippet ndefeditor/mainwindow.cpp QNearFieldTarget detected If during the process of reading or writing to a NFC Tag the connection is lost, the MainWindow reacts to this event by scheduling the target deletion (QObject::deleteLater). \snippet ndefeditor/mainwindow.cpp QNearFieldTarget lost \section1 Record creation The main window of the ndefeditor example manages the composition and creation of NFC records. The UI contains a QScrollArea where RecordEditors are added dynamically on a user requests basis. The following methods of the MainWindow class provide an interface towards each of the record editing classes managing the different types of records. \snippet ndefeditor/mainwindow.h 0 The following sections explain each of the record editing classes. \section1 Record editing classes \section2 TextRecordEditor The TextRecordEditor is a QWidget that can handle editing the values of text record that has been requested by the user. For each text record, there is a new instance of this class. \snippet ndefeditor/textrecordeditor.h 0 \section2 UriRecordEditor The UriRecordEditor is a QWidget that can handle editing the values of Uri record that has been requested by the user. For each new Uri record there is a new instance of this class. \snippet ndefeditor/urirecordeditor.h 0 \section2 MimeImageRecordEditor The UriRecordEditor is a QWidget that can handle editing the values of a Mime Image record that has been requested by the user. For each Mime Image record there is a new instance of this class. \snippet ndefeditor/mimeimagerecordeditor.h 0 \include examples-run.qdocinc \sa {Qt NFC} */