diff options
author | Aaron McCarthy <mccarthy.aaron@gmail.com> | 2012-10-01 13:28:16 +1000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-01 12:04:55 +0200 |
commit | f3d8f66116af4319650d8f3e7ca069275fdfa780 (patch) | |
tree | 2b7dc73c029adfdf0302409a2422b3df4d9e5c54 | |
parent | 3f4a920f87842e1bbb20f72ce04d6da7a866ab1d (diff) |
Further porting of NFC module from mobility to Qt 5.
Includes the following changes:
* Conditionally enables building of the NFC module when qmake is
run with CONFIG+=nfc.
* Correctly build within the QtNfc namespace.
* Fix compile errors in examples, enable building of NFC examples.
* Fix compile errors in tests, enable building of NFC tests.
Mark the some NFC tests as insignificant as they currently crash.
Notably does not enable NFC documentation generation.
Task-number: QTBUG-22015
Change-Id: I9ff170c45848c8f0215e9427797922f840c2f015
Reviewed-by: Alex <ablasche@gmail.com>
43 files changed, 252 insertions, 168 deletions
diff --git a/examples/examples.pro b/examples/examples.pro index 36b1ecb5..a6efc9a0 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -1,11 +1,4 @@ TEMPLATE = subdirs -!contains(QT_CONFIG, no-widgets) { - SUBDIRS += bluetooth -} -SUBDIRS += bluetooth - -#Qt NFC based examples -#SUBDIRS += poster \ -# ndefeditor \ -# annotatedurl +!isEmpty(QT.bluetooth.name):SUBDIRS += bluetooth +!isEmpty(QT.nfc.name):SUBDIRS += nfc diff --git a/examples/nfc/nfc.pro b/examples/nfc/nfc.pro new file mode 100644 index 00000000..d219924c --- /dev/null +++ b/examples/nfc/nfc.pro @@ -0,0 +1,7 @@ +TEMPLATE = subdirs +!contains(QT_CONFIG, no-widgets) { + SUBDIRS += \ + annotatedurl \ + ndefeditor \ + poster +} diff --git a/examples/nfc/poster/poster.pro b/examples/nfc/poster/poster.pro index de2e1a05..d108b2a2 100644 --- a/examples/nfc/poster/poster.pro +++ b/examples/nfc/poster/poster.pro @@ -1,4 +1,4 @@ -QT += declarative quick network nfc widgets +QT += qml quick network nfc widgets SOURCES += \ qmlposter.cpp diff --git a/examples/nfc/poster/qmlposter.cpp b/examples/nfc/poster/qmlposter.cpp index 606a96f8..cb75c2a1 100644 --- a/examples/nfc/poster/qmlposter.cpp +++ b/examples/nfc/poster/qmlposter.cpp @@ -39,8 +39,8 @@ ****************************************************************************/ #include <QtWidgets/QApplication> +#include <QtQml/QQmlEngine> #include <QtQuick/QQuickView> -#include <QtDeclarative/QDeclarativeEngine> int main(int argc, char *argv[]) { diff --git a/src/imports/imports.pro b/src/imports/imports.pro index 7403281d..a6efc9a0 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -1,5 +1,4 @@ TEMPLATE = subdirs -SUBDIRS += bluetooth -#The Qt NFC module is currently not supported -#SUBDIRS += nfc +!isEmpty(QT.bluetooth.name):SUBDIRS += bluetooth +!isEmpty(QT.nfc.name):SUBDIRS += nfc diff --git a/src/imports/nfc/nfc.pro b/src/imports/nfc/nfc.pro index 61b81c2c..bed94d5f 100644 --- a/src/imports/nfc/nfc.pro +++ b/src/imports/nfc/nfc.pro @@ -1,4 +1,4 @@ -QT += declarative nfc +QT = core qml nfc # Input HEADERS += \ diff --git a/src/imports/nfc/plugin.cpp b/src/imports/nfc/plugin.cpp index 76c98836..3a42d181 100644 --- a/src/imports/nfc/plugin.cpp +++ b/src/imports/nfc/plugin.cpp @@ -39,12 +39,10 @@ ** ****************************************************************************/ +#include <QtQml/QQmlEngine> +#include <QtQml/QQmlExtensionPlugin> -#include <QtDeclarative/QDeclarativeEngine> -#include <QtDeclarative/QDeclarativeExtensionPlugin> - -#include <qdeclarativendefrecord.h> - +#include "qdeclarativendefrecord.h" #include "qdeclarativenearfieldsocket_p.h" #include "qdeclarativenearfield_p.h" #include "qdeclarativendeffilter_p.h" @@ -54,15 +52,19 @@ QT_USE_NAMESPACE -class QNfcQmlPlugin : public QDeclarativeExtensionPlugin +class QNfcQmlPlugin : public QQmlExtensionPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + public: void registerTypes(const char *uri) { Q_ASSERT(uri == QLatin1String("QtNfc")); + // @uri QtNfc + int major = 5; int minor = 0; qmlRegisterType<QDeclarativeNearFieldSocket>(uri, major, minor, "NearFieldSocket"); diff --git a/src/imports/nfc/qdeclarativenearfield.cpp b/src/imports/nfc/qdeclarativenearfield.cpp index ca46a880..6c9577a4 100644 --- a/src/imports/nfc/qdeclarativenearfield.cpp +++ b/src/imports/nfc/qdeclarativenearfield.cpp @@ -106,23 +106,23 @@ QDeclarativeNearField::QDeclarativeNearField(QObject *parent) { } -QDeclarativeListProperty<QDeclarativeNdefRecord> QDeclarativeNearField::messageRecords() +QQmlListProperty<QDeclarativeNdefRecord> QDeclarativeNearField::messageRecords() { - return QDeclarativeListProperty<QDeclarativeNdefRecord>(this, 0, - &QDeclarativeNearField::append_messageRecord, - &QDeclarativeNearField::count_messageRecords, - &QDeclarativeNearField::at_messageRecord, - &QDeclarativeNearField::clear_messageRecords); + return QQmlListProperty<QDeclarativeNdefRecord>(this, 0, + &QDeclarativeNearField::append_messageRecord, + &QDeclarativeNearField::count_messageRecords, + &QDeclarativeNearField::at_messageRecord, + &QDeclarativeNearField::clear_messageRecords); } -QDeclarativeListProperty<QDeclarativeNdefFilter> QDeclarativeNearField::filter() +QQmlListProperty<QDeclarativeNdefFilter> QDeclarativeNearField::filter() { - return QDeclarativeListProperty<QDeclarativeNdefFilter>(this, 0, - &QDeclarativeNearField::append_filter, - &QDeclarativeNearField::count_filters, - &QDeclarativeNearField::at_filter, - &QDeclarativeNearField::clear_filter); + return QQmlListProperty<QDeclarativeNdefFilter>(this, 0, + &QDeclarativeNearField::append_filter, + &QDeclarativeNearField::count_filters, + &QDeclarativeNearField::at_filter, + &QDeclarativeNearField::clear_filter); } bool QDeclarativeNearField::orderMatch() const @@ -183,7 +183,7 @@ void QDeclarativeNearField::_q_handleNdefMessage(const QNdefMessage &message) { m_messageUpdating = true; - QDeclarativeListReference listRef(this, "messageRecords"); + QQmlListReference listRef(this, "messageRecords"); listRef.clear(); @@ -195,8 +195,8 @@ void QDeclarativeNearField::_q_handleNdefMessage(const QNdefMessage &message) emit messageRecordsChanged(); } -void QDeclarativeNearField::append_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list, - QDeclarativeNdefRecord *record) +void QDeclarativeNearField::append_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list, + QDeclarativeNdefRecord *record) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) @@ -208,7 +208,7 @@ void QDeclarativeNearField::append_messageRecord(QDeclarativeListProperty<QDecla emit nearField->messageRecordsChanged(); } -int QDeclarativeNearField::count_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list) +int QDeclarativeNearField::count_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) @@ -217,8 +217,8 @@ int QDeclarativeNearField::count_messageRecords(QDeclarativeListProperty<QDeclar return nearField->m_message.count(); } -QDeclarativeNdefRecord *QDeclarativeNearField::at_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list, - int index) +QDeclarativeNdefRecord *QDeclarativeNearField::at_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list, + int index) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) @@ -227,7 +227,7 @@ QDeclarativeNdefRecord *QDeclarativeNearField::at_messageRecord(QDeclarativeList return nearField->m_message.at(index); } -void QDeclarativeNearField::clear_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list) +void QDeclarativeNearField::clear_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (nearField) { @@ -238,8 +238,8 @@ void QDeclarativeNearField::clear_messageRecords(QDeclarativeListProperty<QDecla } } -void QDeclarativeNearField::append_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list, - QDeclarativeNdefFilter *filter) +void QDeclarativeNearField::append_filter(QQmlListProperty<QDeclarativeNdefFilter> *list, + QDeclarativeNdefFilter *filter) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) @@ -253,7 +253,7 @@ void QDeclarativeNearField::append_filter(QDeclarativeListProperty<QDeclarativeN nearField->registerMessageHandler(); } -int QDeclarativeNearField::count_filters(QDeclarativeListProperty<QDeclarativeNdefFilter> *list) +int QDeclarativeNearField::count_filters(QQmlListProperty<QDeclarativeNdefFilter> *list) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) @@ -262,8 +262,8 @@ int QDeclarativeNearField::count_filters(QDeclarativeListProperty<QDeclarativeNd return nearField->m_filter.count(); } -QDeclarativeNdefFilter *QDeclarativeNearField::at_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list, - int index) +QDeclarativeNdefFilter *QDeclarativeNearField::at_filter(QQmlListProperty<QDeclarativeNdefFilter> *list, + int index) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) @@ -272,7 +272,7 @@ QDeclarativeNdefFilter *QDeclarativeNearField::at_filter(QDeclarativeListPropert return nearField->m_filter.at(index); } -void QDeclarativeNearField::clear_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list) +void QDeclarativeNearField::clear_filter(QQmlListProperty<QDeclarativeNdefFilter> *list) { QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object); if (!nearField) diff --git a/src/imports/nfc/qdeclarativenearfield_p.h b/src/imports/nfc/qdeclarativenearfield_p.h index 47f0fc13..fe7c6b6e 100644 --- a/src/imports/nfc/qdeclarativenearfield_p.h +++ b/src/imports/nfc/qdeclarativenearfield_p.h @@ -43,32 +43,32 @@ #define QDECLARATIVENEARFIELD_P_H #include <QtCore/QObject> -#include <QtDeclarative/qdeclarative.h> -#include <QtDeclarative/QDeclarativeParserStatus> +#include <QtQml/qqml.h> +#include <QtQml/QQmlParserStatus> +#include <QtNfc/QNearFieldManager> -#include <qnearfieldmanager.h> -#include <qdeclarativendefrecord.h> +#include "qdeclarativendefrecord.h" class QDeclarativeNdefFilter; QTNFC_USE_NAMESPACE -class QDeclarativeNearField : public QObject, public QDeclarativeParserStatus +class QDeclarativeNearField : public QObject, public QQmlParserStatus { Q_OBJECT - Q_PROPERTY(QDeclarativeListProperty<QDeclarativeNdefRecord> messageRecords READ messageRecords NOTIFY messageRecordsChanged) - Q_PROPERTY(QDeclarativeListProperty<QDeclarativeNdefFilter> filter READ filter NOTIFY filterChanged) + Q_PROPERTY(QQmlListProperty<QDeclarativeNdefRecord> messageRecords READ messageRecords NOTIFY messageRecordsChanged) + Q_PROPERTY(QQmlListProperty<QDeclarativeNdefFilter> filter READ filter NOTIFY filterChanged) Q_PROPERTY(bool orderMatch READ orderMatch WRITE setOrderMatch NOTIFY orderMatchChanged) - Q_INTERFACES(QDeclarativeParserStatus) + Q_INTERFACES(QQmlParserStatus) public: explicit QDeclarativeNearField(QObject *parent = 0); - QDeclarativeListProperty<QDeclarativeNdefRecord> messageRecords(); + QQmlListProperty<QDeclarativeNdefRecord> messageRecords(); - QDeclarativeListProperty<QDeclarativeNdefFilter> filter(); + QQmlListProperty<QDeclarativeNdefFilter> filter(); bool orderMatch() const; void setOrderMatch(bool on); @@ -97,19 +97,19 @@ private: void registerMessageHandler(); - static void append_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list, + static void append_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list, QDeclarativeNdefRecord *record); - static int count_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list); - static QDeclarativeNdefRecord *at_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list, + static int count_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list); + static QDeclarativeNdefRecord *at_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list, int index); - static void clear_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list); + static void clear_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list); - static void append_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list, + static void append_filter(QQmlListProperty<QDeclarativeNdefFilter> *list, QDeclarativeNdefFilter *filter); - static int count_filters(QDeclarativeListProperty<QDeclarativeNdefFilter> *list); - static QDeclarativeNdefFilter *at_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list, - int index); - static void clear_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list); + static int count_filters(QQmlListProperty<QDeclarativeNdefFilter> *list); + static QDeclarativeNdefFilter *at_filter(QQmlListProperty<QDeclarativeNdefFilter> *list, + int index); + static void clear_filter(QQmlListProperty<QDeclarativeNdefFilter> *list); }; #endif // QDECLARATIVENEARFIELD_P_H diff --git a/src/imports/nfc/qdeclarativenearfieldsocket_p.h b/src/imports/nfc/qdeclarativenearfieldsocket_p.h index 0e7bcc13..7536123d 100644 --- a/src/imports/nfc/qdeclarativenearfieldsocket_p.h +++ b/src/imports/nfc/qdeclarativenearfieldsocket_p.h @@ -43,16 +43,15 @@ #define QDECLARATIVENEARFIELDSOCKET_P_H #include <QtCore/QObject> -#include <QtDeclarative/qdeclarative.h> -#include <QtDeclarative/QDeclarativeParserStatus> - -#include <qllcpsocket.h> +#include <QtQml/qqml.h> +#include <QtQml/QQmlParserStatus> +#include <QtNfc/QLlcpSocket> QTNFC_USE_NAMESPACE class QDeclarativeNearFieldSocketPrivate; -class QDeclarativeNearFieldSocket : public QObject, public QDeclarativeParserStatus +class QDeclarativeNearFieldSocket : public QObject, public QQmlParserStatus { Q_OBJECT @@ -63,7 +62,7 @@ class QDeclarativeNearFieldSocket : public QObject, public QDeclarativeParserSta Q_PROPERTY(bool listening READ listening WRITE setListening NOTIFY listeningChanged) Q_PROPERTY(QString stringData READ stringData WRITE sendStringData NOTIFY dataAvailable) - Q_INTERFACES(QDeclarativeParserStatus) + Q_INTERFACES(QQmlParserStatus) Q_DECLARE_PRIVATE(QDeclarativeNearFieldSocket) diff --git a/src/nfc/nfc.pro b/src/nfc/nfc.pro index 58ea1c06..9d74ac04 100644 --- a/src/nfc/nfc.pro +++ b/src/nfc/nfc.pro @@ -3,6 +3,11 @@ QT = core load(qt_module) +# All classes in this module are in the QtNfc namespace. Define the namespace which moc generated +# code will be in. +DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\" +DEFINES += QT_END_MOC_NAMESPACE=\""}"\" + PUBLIC_HEADERS += \ qnearfieldmanager.h \ qnearfieldtarget.h \ @@ -119,7 +124,7 @@ simulator { } isEmpty(NFC_BACKEND_AVAILABLE) { - # unsupported platform stub + message("Unsupported NFC platform, will not build a working QtNfc library.") PRIVATE_HEADERS += \ qllcpsocket_p.h \ diff --git a/src/nfc/qdeclarativendefrecord.cpp b/src/nfc/qdeclarativendefrecord.cpp index 66e6cbc9..61abd002 100644 --- a/src/nfc/qdeclarativendefrecord.cpp +++ b/src/nfc/qdeclarativendefrecord.cpp @@ -271,6 +271,4 @@ void QDeclarativeNdefRecord::setRecord(const QNdefRecord &record) d->record = record; } -#include "moc_qdeclarativendefrecord.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qllcpserver.cpp b/src/nfc/qllcpserver.cpp index f63f4c6d..17a34e1a 100644 --- a/src/nfc/qllcpserver.cpp +++ b/src/nfc/qllcpserver.cpp @@ -198,6 +198,4 @@ QLlcpSocket::SocketError QLlcpServer::serverError() const return d->serverError(); } -#include "moc_qllcpserver.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qllcpserver_maemo6_p.cpp b/src/nfc/qllcpserver_maemo6_p.cpp index fe3dde33..894bd4f6 100644 --- a/src/nfc/qllcpserver_maemo6_p.cpp +++ b/src/nfc/qllcpserver_maemo6_p.cpp @@ -198,5 +198,3 @@ void QLlcpServerPrivate::Socket(const QDBusVariant &lsap, int fd, const QVariant } QTNFC_END_NAMESPACE - -#include "moc_qllcpserver_maemo6_p.cpp" diff --git a/src/nfc/qllcpsocket.cpp b/src/nfc/qllcpsocket.cpp index b17d7573..dc4357ae 100644 --- a/src/nfc/qllcpsocket.cpp +++ b/src/nfc/qllcpsocket.cpp @@ -400,6 +400,4 @@ qint64 QLlcpSocket::writeData(const char *data, qint64 len) return d->writeData(data, len); } -#include <moc_qllcpsocket.cpp> - QTNFC_END_NAMESPACE diff --git a/src/nfc/qllcpsocket_maemo6_p.cpp b/src/nfc/qllcpsocket_maemo6_p.cpp index ef94776e..9a802bc1 100644 --- a/src/nfc/qllcpsocket_maemo6_p.cpp +++ b/src/nfc/qllcpsocket_maemo6_p.cpp @@ -637,6 +637,4 @@ void QLlcpSocketPrivate::initializeRequestor() } } -#include "moc_qllcpsocket_maemo6_p.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldmanager.cpp b/src/nfc/qnearfieldmanager.cpp index 108c2f69..6c6b1dd1 100644 --- a/src/nfc/qnearfieldmanager.cpp +++ b/src/nfc/qnearfieldmanager.cpp @@ -440,7 +440,4 @@ QNearFieldManager::TargetAccessModes QNearFieldManager::targetAccessModes() cons return d->m_requestedModes; } -#include "moc_qnearfieldmanager.cpp" -#include "moc_qnearfieldmanager_p.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldmanager.h b/src/nfc/qnearfieldmanager.h index 15b87a05..2cf88968 100644 --- a/src/nfc/qnearfieldmanager.h +++ b/src/nfc/qnearfieldmanager.h @@ -58,6 +58,7 @@ class QNearFieldManagerPrivate; class Q_NFC_EXPORT QNearFieldManager : public QObject { Q_OBJECT + Q_DECLARE_PRIVATE(QNearFieldManager) public: diff --git a/src/nfc/qnearfieldmanager_emulator.cpp b/src/nfc/qnearfieldmanager_emulator.cpp index 0b973679..82c29f82 100644 --- a/src/nfc/qnearfieldmanager_emulator.cpp +++ b/src/nfc/qnearfieldmanager_emulator.cpp @@ -47,6 +47,8 @@ #include <QtCore/QDebug> +QTNFC_BEGIN_NAMESPACE + QNearFieldManagerPrivateImpl::QNearFieldManagerPrivateImpl() { TagActivator *tagActivator = TagActivator::instance(); @@ -99,4 +101,4 @@ void QNearFieldManagerPrivateImpl::tagDeactivated(TagBase *tag) targetDeactivated(target); } - +QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldmanager_emulator_p.h b/src/nfc/qnearfieldmanager_emulator_p.h index e9e335cc..e125f4c9 100644 --- a/src/nfc/qnearfieldmanager_emulator_p.h +++ b/src/nfc/qnearfieldmanager_emulator_p.h @@ -49,6 +49,10 @@ #include <QtCore/QObject> #include <QtCore/QWeakPointer> +QT_BEGIN_HEADER + +QTNFC_BEGIN_NAMESPACE + class TagBase; class QNearFieldManagerPrivateImpl : public QNearFieldManagerPrivateVirtualBase { @@ -73,4 +77,8 @@ private: }; +QTNFC_END_NAMESPACE + +QT_END_HEADER + #endif // QNEARFIELDMANAGER_EMULATOR_H diff --git a/src/nfc/qnearfieldmanager_maemo6.cpp b/src/nfc/qnearfieldmanager_maemo6.cpp index f6c94ccd..42ebb33b 100644 --- a/src/nfc/qnearfieldmanager_maemo6.cpp +++ b/src/nfc/qnearfieldmanager_maemo6.cpp @@ -448,6 +448,4 @@ void QNearFieldManagerPrivateImpl::_q_targetLost(const QDBusObjectPath &targetPa emit targetLost(nearFieldTarget); } -#include "moc_qnearfieldmanager_maemo6_p.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldmanager_simulator.cpp b/src/nfc/qnearfieldmanager_simulator.cpp index 442a3705..18cb6e33 100644 --- a/src/nfc/qnearfieldmanager_simulator.cpp +++ b/src/nfc/qnearfieldmanager_simulator.cpp @@ -202,7 +202,6 @@ void QNearFieldManagerPrivateImpl::targetLeavingProximity(const QByteArray &uid) targetDeactivated(target); } -#include "qnearfieldmanager_simulator.moc" -#include "moc_qnearfieldmanager_simulator_p.cpp" - QTNFC_END_NAMESPACE + +#include "qnearfieldmanager_simulator.moc" diff --git a/src/nfc/qnearfieldmanagerimpl_p.cpp b/src/nfc/qnearfieldmanagerimpl_p.cpp index c4fd68e8..28fe62fe 100644 --- a/src/nfc/qnearfieldmanagerimpl_p.cpp +++ b/src/nfc/qnearfieldmanagerimpl_p.cpp @@ -58,6 +58,5 @@ QNearFieldManagerPrivateImpl::QNearFieldManagerPrivateImpl() QNearFieldManagerPrivateImpl::~QNearFieldManagerPrivateImpl() { } -//#include "moc_qnearfieldmanagerimpl_p.cpp" QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldmanagervirtualbase.cpp b/src/nfc/qnearfieldmanagervirtualbase.cpp index f343f1c5..ffafa281 100644 --- a/src/nfc/qnearfieldmanagervirtualbase.cpp +++ b/src/nfc/qnearfieldmanagervirtualbase.cpp @@ -214,6 +214,4 @@ void QNearFieldManagerPrivateVirtualBase::ndefReceived(const QNdefMessage &messa } } -#include "moc_qnearfieldmanagervirtualbase_p.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtagtype1.cpp b/src/nfc/qnearfieldtagtype1.cpp index fca7b7d9..28477c90 100644 --- a/src/nfc/qnearfieldtagtype1.cpp +++ b/src/nfc/qnearfieldtagtype1.cpp @@ -733,6 +733,4 @@ bool QNearFieldTagType1::handleResponse(const QNearFieldTarget::RequestId &id, return handled; } -#include "moc_qnearfieldtagtype1.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtagtype2.cpp b/src/nfc/qnearfieldtagtype2.cpp index 8c02d780..1add9b78 100644 --- a/src/nfc/qnearfieldtagtype2.cpp +++ b/src/nfc/qnearfieldtagtype2.cpp @@ -346,6 +346,4 @@ void QNearFieldTagType2::timerEvent(QTimerEvent *event) } } -#include "moc_qnearfieldtagtype2.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtagtype3.cpp b/src/nfc/qnearfieldtagtype3.cpp index 4783dd06..aafd123c 100644 --- a/src/nfc/qnearfieldtagtype3.cpp +++ b/src/nfc/qnearfieldtagtype3.cpp @@ -183,6 +183,4 @@ bool QNearFieldTagType3::handleResponse(const QNearFieldTarget::RequestId &id, return QNearFieldTarget::handleResponse(id, response); } -#include "moc_qnearfieldtagtype3.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtagtype4.cpp b/src/nfc/qnearfieldtagtype4.cpp index f165de1c..8b94e639 100644 --- a/src/nfc/qnearfieldtagtype4.cpp +++ b/src/nfc/qnearfieldtagtype4.cpp @@ -159,6 +159,4 @@ bool QNearFieldTagType4::handleResponse(const QNearFieldTarget::RequestId &id, return QNearFieldTarget::handleResponse(id, response); } -#include "moc_qnearfieldtagtype4.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtarget.cpp b/src/nfc/qnearfieldtarget.cpp index 7ce86974..d519eab3 100644 --- a/src/nfc/qnearfieldtarget.cpp +++ b/src/nfc/qnearfieldtarget.cpp @@ -457,6 +457,4 @@ bool QNearFieldTarget::handleResponse(const QNearFieldTarget::RequestId &id, return true; } -#include "moc_qnearfieldtarget.cpp" - QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtarget_emulator.cpp b/src/nfc/qnearfieldtarget_emulator.cpp index 3661ea2a..a4bd888c 100644 --- a/src/nfc/qnearfieldtarget_emulator.cpp +++ b/src/nfc/qnearfieldtarget_emulator.cpp @@ -48,13 +48,12 @@ #include <QtCore/QCoreApplication> #include <QtCore/QDateTime> -#include <QtCore/QDebug> +QTNFC_BEGIN_NAMESPACE static QMutex tagMutex; static QMap<TagBase *, bool> tagMap; static TagActivator tagActivator; - TagType1::TagType1(TagBase *tag, QObject *parent) : QNearFieldTagType1(parent), m_tag(tag) { @@ -226,13 +225,11 @@ void TagActivator::initialize() target.endGroup(); if (tagType == QLatin1String("TagType1")) { - qDebug() << "loading" << targetFilename << "as NfcTagType1"; NfcTagType1 *tag = new NfcTagType1; tag->load(&target); tagMap.insert(tag, false); } else if (tagType == QLatin1String("TagType2")) { - qDebug() << "loading" << targetFilename << "as NfcTagType2"; NfcTagType2 *tag = new NfcTagType2; tag->load(&target); @@ -277,8 +274,10 @@ void TagActivator::timerEvent(QTimerEvent *e) *m_current = false; + TagBase *tag = m_current.key(); + tagMutex.unlock(); - emit tagDeactivated(m_current.key()); + emit tagDeactivated(tag); tagMutex.lock(); } @@ -289,12 +288,14 @@ void TagActivator::timerEvent(QTimerEvent *e) if (m_current != tagMap.end()) { *m_current = true; - tagMutex.unlock(); + TagBase *tag = m_current.key(); - emit tagActivated(m_current.key()); + tagMutex.unlock(); + emit tagActivated(tag); tagMutex.lock(); } tagMutex.unlock(); } +QTNFC_END_NAMESPACE diff --git a/src/nfc/qnearfieldtarget_emulator_p.h b/src/nfc/qnearfieldtarget_emulator_p.h index 42002693..10b42fb7 100644 --- a/src/nfc/qnearfieldtarget_emulator_p.h +++ b/src/nfc/qnearfieldtarget_emulator_p.h @@ -48,6 +48,10 @@ #include <QtCore/QMap> +QT_BEGIN_HEADER + +QTNFC_BEGIN_NAMESPACE + class TagType1 : public QNearFieldTagType1 { Q_OBJECT @@ -111,4 +115,8 @@ private: int timerId; }; +QTNFC_END_NAMESPACE + +QT_END_HEADER + #endif // QNEARFIELDTARGET_EMULATOR_P_H diff --git a/src/nfc/targetemulator.cpp b/src/nfc/targetemulator.cpp index e9f3741e..a374f521 100644 --- a/src/nfc/targetemulator.cpp +++ b/src/nfc/targetemulator.cpp @@ -49,6 +49,8 @@ // Implementation of qNfcChecksum #include "checksum_p.h" +QTNFC_BEGIN_NAMESPACE + TagBase::TagBase() : lastAccess(0) { @@ -71,6 +73,10 @@ NfcTagType1::NfcTagType1() memory[(0x0e << 3) | 0x01] = 0x60; } +NfcTagType1::~NfcTagType1() +{ +} + void NfcTagType1::load(QSettings *settings) { settings->beginGroup(QLatin1String("TagType1")); @@ -290,6 +296,10 @@ NfcTagType2::NfcTagType2() { } +NfcTagType2::~NfcTagType2() +{ +} + void NfcTagType2::load(QSettings *settings) { settings->beginGroup(QLatin1String("TagType2")); @@ -380,3 +390,5 @@ QByteArray NfcTagType2::processCommand(const QByteArray &command) return response; } + +QTNFC_END_NAMESPACE diff --git a/src/nfc/targetemulator_p.h b/src/nfc/targetemulator_p.h index 1d6438a8..0ac6121a 100644 --- a/src/nfc/targetemulator_p.h +++ b/src/nfc/targetemulator_p.h @@ -44,14 +44,19 @@ #include <QtCore/QtGlobal> #include <QtCore/QByteArray> +#include <QtNfc/qnfcglobal.h> QT_FORWARD_DECLARE_CLASS(QSettings) +QT_BEGIN_HEADER + +QTNFC_BEGIN_NAMESPACE + class TagBase { public: TagBase(); - ~TagBase(); + virtual ~TagBase(); virtual void load(QSettings *settings) = 0; @@ -104,4 +109,8 @@ private: bool expectPacket2; }; +QTNFC_END_NAMESPACE + +QT_END_HEADER + #endif // TARGETEMULATOR_P_H diff --git a/src/src.pro b/src/src.pro index 4f20fe20..7ebb6a01 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,9 +1,10 @@ TEMPLATE = subdirs CONFIG += ordered +SUBDIRS = bluetooth imports -SUBDIRS = bluetooth - -#The Qt NFC module is currently not supported -#SUBDIRS += nfc - -SUBDIRS += imports +# The Qt NFC module is currently not supported. The API is not finalized and may change. +# The Qt NFC module can be built by passing CONFIG+=nfc to qmake. +nfc { + message("Building unsupported Qt NFC module, API is not finalized and may change.") + SUBDIRS += nfc +} diff --git a/sync.profile b/sync.profile index 604a1cf7..c7f64203 100644 --- a/sync.profile +++ b/sync.profile @@ -1,6 +1,6 @@ %modules = ( # path to module name map "QtBluetooth" => "$basedir/src/bluetooth", -# "QtNfc" => "$basedir/src/nfc", + "QtNfc" => "$basedir/src/nfc", ); %moduleheaders = ( # restrict the module headers to those found in relative path ); diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index dec893bb..e3539b57 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -1,51 +1,32 @@ TEMPLATE = subdirs SUBDIRS += \ - qbluetoothaddress \ - qbluetoothdevicediscoveryagent \ - qbluetoothdeviceinfo \ - qbluetoothlocaldevice \ - qbluetoothhostinfo \ - qbluetoothservicediscoveryagent \ - qbluetoothserviceinfo \ - qbluetoothsocket \ - qbluetoothtransfermanager \ - qbluetoothtransferrequest \ - qbluetoothuuid \ - ql2capserver \ -# qndefmessage \ -# qndefrecord \ -# qnearfieldmanager \ -# qnearfieldtagtype1 \ -# qnearfieldtagtype2 \ - qrfcommserver \ cmake -!contains(QT_CONFIG, bluetooth): SUBDIRS -= \ - qbluetoothaddress \ - qbluetoothdevicediscoveryagent \ - qbluetoothdeviceinfo \ - qbluetoothlocaldevice \ - qbluetoothhostinfo \ - qbluetoothservicediscoveryagent \ - qbluetoothserviceinfo \ - qbluetoothsocket \ - qbluetoothtransfermanager \ - qbluetoothtransferrequest \ - qbluetoothuuid \ - ql2capserver \ +!isEmpty(QT.bluetooth.name) { + SUBDIRS += \ + qbluetoothaddress \ + qbluetoothdevicediscoveryagent \ + qbluetoothdeviceinfo \ + qbluetoothlocaldevice \ + qbluetoothhostinfo \ + qbluetoothservicediscoveryagent \ + qbluetoothserviceinfo \ + qbluetoothsocket \ + qbluetoothtransfermanager \ + qbluetoothtransferrequest \ + qbluetoothuuid \ + ql2capserver \ + qrfcommserver +} -#!contains(QT_CONFIG, nfc): SUBDIRS -= \ -# qndefmessage \ -# qndefrecord \ -# qnearfieldmanager \ -# qnearfieldtagtype1 \ -# qnearfieldtagtype2 \ -# -## QTBUG-22015 these do not compile. -#SUBDIRS -= \ -# qnearfieldmanager \ -# qnearfieldtagtype1 \ -# qnearfieldtagtype2 \ +!isEmpty(QT.nfc.name) { + SUBDIRS += \ + qndefmessage \ + qndefrecord \ + qnearfieldmanager \ + qnearfieldtagtype1 \ + qnearfieldtagtype2 \ +} qbluetoothservicediscoveryagent.CONFIG += no_check_target # QTBUG-22017 diff --git a/tests/auto/qnearfieldmanager/qnearfieldmanager.pro b/tests/auto/qnearfieldmanager/qnearfieldmanager.pro index 4d1d84b0..20772f6c 100644 --- a/tests/auto/qnearfieldmanager/qnearfieldmanager.pro +++ b/tests/auto/qnearfieldmanager/qnearfieldmanager.pro @@ -4,5 +4,28 @@ CONFIG += testcase QT = core nfc-private testlib +INCLUDEPATH += ../../../src/nfc +DEPENDPATH += ../../../src/nfc + +# This test includes source code from QtNfc library. Define the namespace which moc generated code +# should be in. +DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\" +DEFINES += QT_END_MOC_NAMESPACE=\""}"\" + +HEADERS += \ + qnearfieldmanagervirtualbase_p.h \ + qnearfieldmanager_emulator_p.h \ + qnearfieldtarget_emulator_p.h \ + targetemulator_p.h + +SOURCES += \ + qnearfieldmanagervirtualbase.cpp \ + qnearfieldmanager_emulator.cpp \ + qnearfieldtarget_emulator.cpp \ + targetemulator.cpp + DEFINES += SRCDIR=\\\"$$PWD/../nfcdata\\\" DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 + +# This test crashes +CONFIG += insignificant_test diff --git a/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp b/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp index b7acd820..92a4e99a 100644 --- a/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp +++ b/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp @@ -292,6 +292,12 @@ void tst_QNearFieldManager::registerNdefMessageHandler_filter() QVERIFY(target); } -QTEST_MAIN(tst_QNearFieldManager); +QTEST_MAIN(tst_QNearFieldManager) + +// Unset the moc namespace which is not required for the following include. +#undef QT_BEGIN_MOC_NAMESPACE +#define QT_BEGIN_MOC_NAMESPACE +#undef QT_END_MOC_NAMESPACE +#define QT_END_MOC_NAMESPACE #include "tst_qnearfieldmanager.moc" diff --git a/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro b/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro index 63a59333..1b66692f 100644 --- a/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro +++ b/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro @@ -4,6 +4,28 @@ CONFIG += testcase QT = core nfc-private testlib +INCLUDEPATH += ../../../src/nfc +DEPENDPATH += ../../../src/nfc + +# This test includes source code from QtNfc library. Define the namespace which moc generated code +# should be in. +DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\" +DEFINES += QT_END_MOC_NAMESPACE=\""}"\" + +HEADERS += \ + qnearfieldmanagervirtualbase_p.h \ + qnearfieldmanager_emulator_p.h \ + qnearfieldtarget_emulator_p.h \ + targetemulator_p.h + +SOURCES += \ + qnearfieldmanagervirtualbase.cpp \ + qnearfieldmanager_emulator.cpp \ + qnearfieldtarget_emulator.cpp \ + targetemulator.cpp DEFINES += SRCDIR=\\\"$$PWD/../nfcdata\\\" DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 + +# This test crashes +CONFIG += insignificant_test diff --git a/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp b/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp index 28839f19..36a8accf 100644 --- a/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp +++ b/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp @@ -484,6 +484,12 @@ void tst_QNearFieldTagType1::ndefMessages() } } -QTEST_MAIN(tst_QNearFieldTagType1); +QTEST_MAIN(tst_QNearFieldTagType1) + +// Unset the moc namespace which is not required for the following include. +#undef QT_BEGIN_MOC_NAMESPACE +#define QT_BEGIN_MOC_NAMESPACE +#undef QT_END_MOC_NAMESPACE +#define QT_END_MOC_NAMESPACE #include "tst_qnearfieldtagtype1.moc" diff --git a/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro b/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro index 77332b8e..0801a319 100644 --- a/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro +++ b/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro @@ -4,5 +4,28 @@ CONFIG += testcase QT = core nfc-private testlib +INCLUDEPATH += ../../../src/nfc +DEPENDPATH += ../../../src/nfc + +# This test includes source code from QtNfc library. Define the namespace which moc generated code +# should be in. +DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\" +DEFINES += QT_END_MOC_NAMESPACE=\""}"\" + +HEADERS += \ + qnearfieldmanagervirtualbase_p.h \ + qnearfieldtarget_emulator_p.h \ + qnearfieldmanager_emulator_p.h \ + targetemulator_p.h + +SOURCES += \ + qnearfieldmanagervirtualbase.cpp \ + qnearfieldtarget_emulator.cpp \ + qnearfieldmanager_emulator.cpp \ + targetemulator.cpp + DEFINES += SRCDIR=\\\"$$PWD\\\" DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 + +# This test crashes +CONFIG += insignificant_test diff --git a/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp b/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp index 70fcf9e6..c18d0291 100644 --- a/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp +++ b/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp @@ -351,6 +351,12 @@ void tst_QNearFieldTagType2::ndefMessages() } } -QTEST_MAIN(tst_QNearFieldTagType2); +QTEST_MAIN(tst_QNearFieldTagType2) + +// Unset the moc namespace which is not required for the following include. +#undef QT_BEGIN_MOC_NAMESPACE +#define QT_BEGIN_MOC_NAMESPACE +#undef QT_END_MOC_NAMESPACE +#define QT_END_MOC_NAMESPACE #include "tst_qnearfieldtagtype2.moc" diff --git a/tests/tests.pro b/tests/tests.pro index f00a536e..6fa5383b 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -1,9 +1,8 @@ TEMPLATE = subdirs SUBDIRS += auto -# NFC disabled -#SUBDIRS += nfctestserver - linux*:!linux-armcc:contains(bluez_enabled, yes):contains(QT_CONFIG, dbus) { SUBDIRS += btclient } + +!isEmpty(QT.nfc.name):SUBDIRS += nfctestserver |