QQmlNdefRecord Class
The QQmlNdefRecord class implements the NdefRecord type in QML. More...
Header: | #include <QQmlNdefRecord> |
qmake: | QT += nfc |
Since: | Qt 5.2 |
Instantiated By: | NdefRecord |
Inherits: | QObject |
This class was introduced in Qt 5.2.
Public Types
enum | TypeNameFormat { Empty, NfcRtd, Mime, Uri, ExternalRtd, Unknown } |
Properties
- record : QNdefRecord
- type : QString
- typeNameFormat : TypeNameFormat
Public Functions
QQmlNdefRecord(const QNdefRecord &record, QObject *parent = nullptr) | |
QQmlNdefRecord(QObject *parent = nullptr) | |
virtual | ~QQmlNdefRecord() |
QNdefRecord | record() const |
void | setRecord(const QNdefRecord &record) |
void | setType(const QString &newtype) |
void | setTypeNameFormat(QQmlNdefRecord::TypeNameFormat newTypeNameFormat) |
QString | type() const |
QQmlNdefRecord::TypeNameFormat | typeNameFormat() const |
Signals
void | recordChanged() |
void | typeChanged() |
void | typeNameFormatChanged() |
Macros
Q_DECLARE_NDEFRECORD(className, typeNameFormat, type) |
Detailed Description
The QQmlNdefRecord class is the base class for all NdefRecord types in QML. To support a new NDEF record type in QML subclass this class and expose new properties, member functions and signals appropriate for the new record type. The following must be done to create a new NDEF record type in QML:
- The subclass must have a Q_OBJECT macro in its declaration.
- The subclass must have an invokable constructor that takes a QNdefRecord and a QObject pointer.
- The subclass must be declared as an NDEF record by expanding the Q_DECLARE_NDEFRECORD() macro in the implementation file of the subclass.
- The subclass must be registered with QML.
For example the declaration of such a class may look like the following.
class QQmlNdefFooRecord : public QQmlNdefRecord { Q_OBJECT Q_PROPERTY(int foo READ foo WRITE setFoo NOTIFY fooChanged) public: explicit QQmlNdefFooRecord(QObject *parent = 0); Q_INVOKABLE QQmlNdefFooRecord(const QNdefRecord &record, QObject *parent = 0); ~QQmlNdefFooRecord(); int foo() const; void setFoo(int value); signals: void fooChanged(); };
Within the implementation file the Q_DECLARE_NDEFRECORD() macro is expanded:
Q_DECLARE_NDEFRECORD(QQmlNdefFooRecord, QNdefRecord::ExternalRtd, "com.example:f")
Finially the application or plugin code calls qmlRegisterType():
qmlRegisterType<QQmlNdefFooRecord>(uri, 1, 0, "NdefFooRecord");
See also NdefRecord.
Member Type Documentation
enum QQmlNdefRecord::TypeNameFormat
This enum describes the type name format of an NDEF record. The values of this enum are according to QNdefRecord::TypeNameFormat
Constant | Value | Description |
---|---|---|
QQmlNdefRecord::Empty | QNdefRecord::Empty | An empty NDEF record, the record does not contain a payload. |
QQmlNdefRecord::NfcRtd | QNdefRecord::NfcRtd | The NDEF record type is defined by an NFC RTD Specification. |
QQmlNdefRecord::Mime | QNdefRecord::Mime | The NDEF record type follows the construct described in RFC 2046. |
QQmlNdefRecord::Uri | QNdefRecord::Uri | The NDEF record type follows the construct described in RFC 3986. |
QQmlNdefRecord::ExternalRtd | QNdefRecord::ExternalRtd | The NDEF record type follows the construct for external type names described the NFC RTD Specification. |
QQmlNdefRecord::Unknown | QNdefRecord::Unknown | The NDEF record type is unknown. |
Property Documentation
record : QNdefRecord
This property hold the NDEF record that this class represents.
Access functions:
Notifier signal:
void | recordChanged() |
type : QString
This property hold the type of the NDEF record.
Access functions:
Notifier signal:
void | typeChanged() |
typeNameFormat : TypeNameFormat
This property hold the TNF of the NDEF record.
Access functions:
QQmlNdefRecord::TypeNameFormat | typeNameFormat() const |
void | setTypeNameFormat(QQmlNdefRecord::TypeNameFormat newTypeNameFormat) |
Notifier signal:
void | typeNameFormatChanged() |
Member Function Documentation
QQmlNdefRecord::QQmlNdefRecord(const QNdefRecord &record, QObject *parent = nullptr)
Constructs a new QQmlNdefRecord representing record. The parent of the newly constructed object will be set to parent.
QQmlNdefRecord::QQmlNdefRecord(QObject *parent = nullptr)
Constructs a new empty QQmlNdefRecord with parent.
[signal]
void QQmlNdefRecord::typeChanged()
This signal is emitted when the record type changes.
Note: Notifier signal for property type.
[virtual]
QQmlNdefRecord::~QQmlNdefRecord()
Destroys the QQmlNdefRecord instance.
QNdefRecord QQmlNdefRecord::record() const
Returns a copy of the record.
Note: Getter function for property record.
See also setRecord().
void QQmlNdefRecord::setRecord(const QNdefRecord &record)
Sets the record to record. If the record is set the recordChanged() signal will be emitted.
Note: Setter function for property record.
See also record().
void QQmlNdefRecord::setType(const QString &newtype)
Sets the record type to newtype if it is not currently equal to type(); otherwise does nothing. If the record type is set the typeChanged() signal will be emitted.
Note: Setter function for property type.
See also QNdefRecord::setType() and QNdefRecord::type().
void QQmlNdefRecord::setTypeNameFormat(QQmlNdefRecord::TypeNameFormat newTypeNameFormat)
Sets the type name format of the NDEF record to newTypeNameFormat.
Note: Setter function for property typeNameFormat.
See also typeNameFormat().
QString QQmlNdefRecord::type() const
Returns the type of the record.
Note: Getter function for property type.
See also QNdefRecord::setType() and QNdefRecord::type().
QQmlNdefRecord::TypeNameFormat QQmlNdefRecord::typeNameFormat() const
Returns the type name format of the NDEF record.
Note: Getter function for property typeNameFormat.
See also setTypeNameFormat().
© 2020 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.