- Qt 5.15
- Qt NFC
- C++ Classes
- QQmlNdefRecord
- Qt 5.15.11 Reference Documentation

# 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

This class was introduced in Qt 5.2.

- List of all members, including inherited members

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

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.