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

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(TypeNameFormat newTypeNameFormat)
QString type() const
TypeNameFormat typeNameFormat() const

Signals

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

ConstantValueDescription
QQmlNdefRecord::EmptyQNdefRecord::EmptyAn empty NDEF record, the record does not contain a payload.
QQmlNdefRecord::NfcRtdQNdefRecord::NfcRtdThe NDEF record type is defined by an NFC RTD Specification.
QQmlNdefRecord::MimeQNdefRecord::MimeThe NDEF record type follows the construct described in RFC 2046.
QQmlNdefRecord::UriQNdefRecord::UriThe NDEF record type follows the construct described in RFC 3986.
QQmlNdefRecord::ExternalRtdQNdefRecord::ExternalRtdThe NDEF record type follows the construct for external type names described the NFC RTD Specification.
QQmlNdefRecord::UnknownQNdefRecord::UnknownThe NDEF record type is unknown.

Property Documentation

record : QNdefRecord

This property hold the NDEF record that this class represents.

Access functions:

QNdefRecord record() const
void setRecord(const QNdefRecord &record)

Notifier signal:

void recordChanged()

type : QString

This property hold the type of the NDEF record.

Access functions:

QString type() const
void setType(const QString &newtype)

Notifier signal:

void typeChanged()

typeNameFormat : TypeNameFormat

This property hold the TNF of the NDEF record.

Access functions:

TypeNameFormat typeNameFormat() const
void setTypeNameFormat(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(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().

TypeNameFormat QQmlNdefRecord::typeNameFormat() const

Returns the type name format of the NDEF record.

Note: Getter function for property typeNameFormat.

See also setTypeNameFormat().

Macro Documentation

Q_DECLARE_NDEFRECORD(className, typeNameFormat, type)

This macro ensures that className is declared as the class implementing the NDEF record identified by typeNameFormat and type.

This macro should be expanded in the implementation file for className.