diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-10-12 03:01:12 +0200 |
---|---|---|
committer | Oliver Wolff <oliver.wolff@qt.io> | 2019-10-14 08:43:23 +0200 |
commit | 11f8350412c26f7693b1714e4a30eddd924b8c86 (patch) | |
tree | afafdfbb606241d42e67b6277258d529efd9329d | |
parent | 15e414cd0ac29f9224206a07e9872c2ef06a88a2 (diff) | |
parent | 1a32211d8df7b0f06c75707b1bec029f48789d16 (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
src/bluetooth/bluetooth.pro
Change-Id: Ibc52464c7d607b13950eb1e67f565a9909541026
-rw-r--r-- | src/bluetooth/android/android.pri | 2 | ||||
-rw-r--r-- | src/bluetooth/bluetooth.pro | 36 | ||||
-rw-r--r-- | src/bluetooth/darwin/darwinbt.pri | 6 | ||||
-rw-r--r-- | src/bluetooth/osx/osxbt.pri | 61 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.cpp | 2 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller_dummy.cpp (renamed from src/bluetooth/qlowenergycontroller_p.cpp) | 2 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller_dummy_p.h (renamed from src/bluetooth/qlowenergycontroller_p.h) | 0 | ||||
-rw-r--r-- | src/bluetooth/windows/windows.pri | 2 | ||||
-rw-r--r-- | src/imports/bluetooth/plugins.qmltypes | 276 | ||||
-rw-r--r-- | src/imports/nfc/nfc.pro | 2 | ||||
-rw-r--r-- | src/imports/nfc/plugins.qmltypes | 2 | ||||
-rw-r--r-- | src/imports/nfc/qdeclarativenearfieldsocket.cpp | 380 | ||||
-rw-r--r-- | src/imports/nfc/qdeclarativenearfieldsocket_p.h | 123 | ||||
-rw-r--r-- | src/nfc/nfc.pro | 14 |
14 files changed, 365 insertions, 543 deletions
diff --git a/src/bluetooth/android/android.pri b/src/bluetooth/android/android.pri index c50a919a..af39a6d7 100644 --- a/src/bluetooth/android/android.pri +++ b/src/bluetooth/android/android.pri @@ -1,4 +1,4 @@ -PRIVATE_HEADERS += \ +HEADERS += \ android/inputstreamthread_p.h \ android/devicediscoverybroadcastreceiver_p.h \ android/servicediscoverybroadcastreceiver_p.h \ diff --git a/src/bluetooth/bluetooth.pro b/src/bluetooth/bluetooth.pro index d1653786..b2ed5edf 100644 --- a/src/bluetooth/bluetooth.pro +++ b/src/bluetooth/bluetooth.pro @@ -5,7 +5,7 @@ DEFINES += QT_NO_FOREACH QMAKE_DOCS = $$PWD/doc/qtbluetooth.qdocconf OTHER_FILES += doc/src/*.qdoc # show .qdoc files in Qt Creator -PUBLIC_HEADERS += \ +HEADERS += \ qtbluetoothglobal.h \ qbluetoothaddress.h\ qbluetoothhostinfo.h \ @@ -30,9 +30,7 @@ PUBLIC_HEADERS += \ qlowenergyadvertisingdata.h \ qlowenergyadvertisingparameters.h \ qlowenergyconnectionparameters.h \ - qlowenergycontroller.h - -PRIVATE_HEADERS += \ + qlowenergycontroller.h \ qtbluetoothglobal_p.h \ qbluetoothaddress_p.h\ qbluetoothhostinfo_p.h \ @@ -94,7 +92,7 @@ qtConfig(bluez) { include(bluez/bluez.pri) - PRIVATE_HEADERS += \ + HEADERS += \ qbluetoothtransferreply_bluez_p.h \ qbluetoothsocket_bluez_p.h \ qbluetoothsocket_bluezdbus_p.h @@ -118,7 +116,7 @@ qtConfig(bluez) { lecmaccalculator.cpp \ qlowenergycontroller_bluezdbus.cpp - PRIVATE_HEADERS += qlowenergycontroller_bluezdbus_p.h \ + HEADERS += qlowenergycontroller_bluezdbus_p.h \ qlowenergycontroller_bluez_p.h qtConfig(linux_crypto_api): DEFINES += CONFIG_LINUX_CRYPTO_API @@ -126,9 +124,9 @@ qtConfig(bluez) { DEFINES += QT_BLUEZ_NO_BTLE include(dummy/dummy.pri) SOURCES += \ - qlowenergycontroller_p.cpp + qlowenergycontroller_dummy.cpp - PRIVATE_HEADERS += qlowenergycontroller_p.h + HEADERS += qlowenergycontroller_dummy_p.h } } else:android:!android-embedded { @@ -152,7 +150,7 @@ qtConfig(bluez) { qbluetoothserver_android.cpp \ qlowenergycontroller_android.cpp - PRIVATE_HEADERS += qlowenergycontroller_android_p.h \ + HEADERS += qlowenergycontroller_android_p.h \ qbluetoothsocket_android_p.h } else:osx { QT_PRIVATE = concurrent @@ -170,9 +168,9 @@ qtConfig(bluez) { qbluetoothtransferreply_macos.mm \ qlowenergycontroller_darwin.mm - PRIVATE_HEADERS += qbluetoothsocket_macos_p.h \ - qbluetoothtransferreply_macos_p.h \ - qlowenergycontroller_darwin_p.h + HEADERS += qbluetoothsocket_macos_p.h \ + qbluetoothtransferreply_macos_p.h \ + qlowenergycontroller_darwin_p.h } else:ios|tvos { DEFINES += QT_IOS_BLUETOOTH LIBS_PRIVATE += -framework Foundation -framework CoreBluetooth @@ -181,7 +179,7 @@ qtConfig(bluez) { qbluetoothdevicediscoveryagent_darwin.mm \ qlowenergycontroller_darwin.mm - PRIVATE_HEADERS += \ + HEADERS += \ qlowenergycontroller_darwin_p.h \ qbluetoothsocket_dummy_p.h @@ -212,13 +210,13 @@ qtConfig(bluez) { qbluetoothutils_winrt.cpp \ qlowenergycontroller_winrt.cpp - PRIVATE_HEADERS += qlowenergycontroller_winrt_p.h \ + HEADERS += qlowenergycontroller_winrt_p.h \ qbluetoothsocket_winrt_p.h \ qbluetoothutils_winrt_p.h qtConfig(winrt_btle_no_pairing) { SOURCES += qlowenergycontroller_winrt_new.cpp - PRIVATE_HEADERS += qlowenergycontroller_winrt_new_p.h + HEADERS += qlowenergycontroller_winrt_new_p.h } lessThan(WINDOWS_SDK_VERSION, 14393) { @@ -241,7 +239,7 @@ qtConfig(bluez) { qbluetoothserver_win.cpp \ qlowenergycontroller_win.cpp - PRIVATE_HEADERS += qlowenergycontroller_win_p.h \ + HEADERS += qlowenergycontroller_win_p.h \ qbluetoothsocket_win_p.h } else { message("Unsupported Bluetooth platform, will not build a working QtBluetooth library.") @@ -254,9 +252,9 @@ qtConfig(bluez) { qbluetoothservicediscoveryagent_p.cpp \ qbluetoothsocket_dummy.cpp \ qbluetoothserver_p.cpp \ - qlowenergycontroller_p.cpp + qlowenergycontroller_dummy.cpp - PRIVATE_HEADERS += qlowenergycontroller_p.h \ + HEADERS += qlowenergycontroller_dummy_p.h \ qbluetoothsocket_dummy_p.h } @@ -268,6 +266,4 @@ winrt { OTHER_FILES += -HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS - load(qt_module) diff --git a/src/bluetooth/darwin/darwinbt.pri b/src/bluetooth/darwin/darwinbt.pri index a1ca887b..b419007a 100644 --- a/src/bluetooth/darwin/darwinbt.pri +++ b/src/bluetooth/darwin/darwinbt.pri @@ -4,7 +4,7 @@ SOURCES += darwin/uistrings.cpp \ darwin/btledeviceinquiry.mm \ darwin/btcentralmanager.mm -PRIVATE_HEADERS += darwin/uistrings_p.h \ +HEADERS += darwin/uistrings_p.h \ darwin/btgcdtimer_p.h \ darwin/btraii_p.h \ darwin/btdelegates_p.h \ @@ -20,7 +20,7 @@ OBJECTIVE_SOURCES += darwin/btgcdtimer.mm \ #QMAKE_CXXFLAGS_WARN_ON += -Wno-nullability-completeness macos { - PRIVATE_HEADERS += darwin/btdevicepair_p.h \ + HEADERS += darwin/btdevicepair_p.h \ darwin/btdeviceinquiry_p.h \ darwin/btconnectionmonitor_p.h \ darwin/btsdpinquiry_p.h \ @@ -42,7 +42,7 @@ macos { } macos | ios { - PRIVATE_HEADERS += darwin/btperipheralmanager_p.h + HEADERS += darwin/btperipheralmanager_p.h OBJECTIVE_SOURCES += darwin/btperipheralmanager.mm } diff --git a/src/bluetooth/osx/osxbt.pri b/src/bluetooth/osx/osxbt.pri new file mode 100644 index 00000000..edc1c751 --- /dev/null +++ b/src/bluetooth/osx/osxbt.pri @@ -0,0 +1,61 @@ +SOURCES += osx/uistrings.cpp \ + osx/osxbtnotifier.cpp \ + osx/btdelegates.cpp + +HEADERS += osx/uistrings_p.h \ + osx/osxbtgcdtimer_p.h \ + osx/btraii_p.h \ + osx/btdelegates_p.h + + +OBJECTIVE_SOURCES += osx/osxbtgcdtimer.mm \ + osx/btraii.mm +#QMAKE_CXXFLAGS_WARN_ON += -Wno-nullability-completeness + +CONFIG(osx) { + HEADERS += osx/osxbtutility_p.h \ + osx/osxbtdevicepair_p.h \ + osx/osxbtdeviceinquiry_p.h \ + osx/osxbtconnectionmonitor_p.h \ + osx/osxbtsdpinquiry_p.h \ + osx/osxbtrfcommchannel_p.h \ + osx/osxbtl2capchannel_p.h \ + osx/osxbtservicerecord_p.h \ + osx/osxbtsocketlistener_p.h \ + osx/osxbtobexsession_p.h \ + osx/osxbtledeviceinquiry_p.h \ + osx/osxbluetooth_p.h \ + osx/osxbtcentralmanager_p.h \ + osx/osxbtnotifier_p.h \ + osx/osxbtperipheralmanager_p.h + + OBJECTIVE_SOURCES += osx/osxbtutility.mm \ + osx/osxbtdevicepair.mm \ + osx/osxbtdeviceinquiry.mm \ + osx/osxbtconnectionmonitor.mm \ + osx/osxbtsdpinquiry.mm \ + osx/osxbtrfcommchannel.mm \ + osx/osxbtl2capchannel.mm \ + osx/osxbtservicerecord.mm \ + osx/osxbtsocketlistener.mm \ + osx/osxbtobexsession.mm \ + osx/osxbtledeviceinquiry.mm \ + osx/osxbtcentralmanager.mm \ + osx/osxbtperipheralmanager.mm +} else { + HEADERS += osx/osxbtutility_p.h \ + osx/osxbtledeviceinquiry_p.h \ + osx/osxbluetooth_p.h \ + osx/osxbtcentralmanager_p.h \ + osx/osxbtnotifier_p.h + ios { + HEADERS += osx/osxbtperipheralmanager_p.h + } + + OBJECTIVE_SOURCES += osx/osxbtutility.mm \ + osx/osxbtledeviceinquiry.mm \ + osx/osxbtcentralmanager.mm + ios { + OBJECTIVE_SOURCES += osx/osxbtperipheralmanager.mm + } +} diff --git a/src/bluetooth/qlowenergycontroller.cpp b/src/bluetooth/qlowenergycontroller.cpp index ec140a85..06fa0369 100644 --- a/src/bluetooth/qlowenergycontroller.cpp +++ b/src/bluetooth/qlowenergycontroller.cpp @@ -65,7 +65,7 @@ #elif defined(Q_OS_DARWIN) #include "qlowenergycontroller_darwin_p.h" #else -#include "qlowenergycontroller_p.h" +#include "qlowenergycontroller_dummy_p.h" #endif #include <algorithm> diff --git a/src/bluetooth/qlowenergycontroller_p.cpp b/src/bluetooth/qlowenergycontroller_dummy.cpp index c3605f05..2542b355 100644 --- a/src/bluetooth/qlowenergycontroller_p.cpp +++ b/src/bluetooth/qlowenergycontroller_dummy.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include "qlowenergycontroller_p.h" +#include "qlowenergycontroller_dummy_p.h" #include "dummy/dummy_helper_p.h" QT_BEGIN_NAMESPACE diff --git a/src/bluetooth/qlowenergycontroller_p.h b/src/bluetooth/qlowenergycontroller_dummy_p.h index 54a49b53..54a49b53 100644 --- a/src/bluetooth/qlowenergycontroller_p.h +++ b/src/bluetooth/qlowenergycontroller_dummy_p.h diff --git a/src/bluetooth/windows/windows.pri b/src/bluetooth/windows/windows.pri index bf35eaa4..de3d863c 100644 --- a/src/bluetooth/windows/windows.pri +++ b/src/bluetooth/windows/windows.pri @@ -1,2 +1,2 @@ -PRIVATE_HEADERS += \ +HEADERS += \ windows/qwinlowenergybluetooth_p.h diff --git a/src/imports/bluetooth/plugins.qmltypes b/src/imports/bluetooth/plugins.qmltypes index 9318fe93..2060b594 100644 --- a/src/imports/bluetooth/plugins.qmltypes +++ b/src/imports/bluetooth/plugins.qmltypes @@ -4,11 +4,285 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtBluetooth 5.13' +// 'qmlplugindump -nonrelocatable QtBluetooth 5.14' Module { dependencies: ["QtQuick 2.0"] Component { + name: "QAbstractItemModel" + prototype: "QObject" + Enum { + name: "LayoutChangeHint" + values: { + "NoLayoutChangeHint": 0, + "VerticalSortHint": 1, + "HorizontalSortHint": 2 + } + } + Enum { + name: "CheckIndexOption" + values: { + "NoOption": 0, + "IndexIsValid": 1, + "DoNotUseParent": 2, + "ParentIsInvalid": 4 + } + } + Signal { + name: "dataChanged" + Parameter { name: "topLeft"; type: "QModelIndex" } + Parameter { name: "bottomRight"; type: "QModelIndex" } + Parameter { name: "roles"; type: "QVector<int>" } + } + Signal { + name: "dataChanged" + Parameter { name: "topLeft"; type: "QModelIndex" } + Parameter { name: "bottomRight"; type: "QModelIndex" } + } + Signal { + name: "headerDataChanged" + Parameter { name: "orientation"; type: "Qt::Orientation" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "layoutChanged" + Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" } + Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" } + } + Signal { + name: "layoutChanged" + Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" } + } + Signal { name: "layoutChanged" } + Signal { + name: "layoutAboutToBeChanged" + Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" } + Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" } + } + Signal { + name: "layoutAboutToBeChanged" + Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" } + } + Signal { name: "layoutAboutToBeChanged" } + Signal { + name: "rowsAboutToBeInserted" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "rowsInserted" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "rowsAboutToBeRemoved" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "rowsRemoved" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "columnsAboutToBeInserted" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "columnsInserted" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "columnsAboutToBeRemoved" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { + name: "columnsRemoved" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "first"; type: "int" } + Parameter { name: "last"; type: "int" } + } + Signal { name: "modelAboutToBeReset" } + Signal { name: "modelReset" } + Signal { + name: "rowsAboutToBeMoved" + Parameter { name: "sourceParent"; type: "QModelIndex" } + Parameter { name: "sourceStart"; type: "int" } + Parameter { name: "sourceEnd"; type: "int" } + Parameter { name: "destinationParent"; type: "QModelIndex" } + Parameter { name: "destinationRow"; type: "int" } + } + Signal { + name: "rowsMoved" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "start"; type: "int" } + Parameter { name: "end"; type: "int" } + Parameter { name: "destination"; type: "QModelIndex" } + Parameter { name: "row"; type: "int" } + } + Signal { + name: "columnsAboutToBeMoved" + Parameter { name: "sourceParent"; type: "QModelIndex" } + Parameter { name: "sourceStart"; type: "int" } + Parameter { name: "sourceEnd"; type: "int" } + Parameter { name: "destinationParent"; type: "QModelIndex" } + Parameter { name: "destinationColumn"; type: "int" } + } + Signal { + name: "columnsMoved" + Parameter { name: "parent"; type: "QModelIndex" } + Parameter { name: "start"; type: "int" } + Parameter { name: "end"; type: "int" } + Parameter { name: "destination"; type: "QModelIndex" } + Parameter { name: "column"; type: "int" } + } + Method { name: "submit"; type: "bool" } + Method { name: "revert" } + Method { + name: "hasIndex" + type: "bool" + Parameter { name: "row"; type: "int" } + Parameter { name: "column"; type: "int" } + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { + name: "hasIndex" + type: "bool" + Parameter { name: "row"; type: "int" } + Parameter { name: "column"; type: "int" } + } + Method { + name: "index" + type: "QModelIndex" + Parameter { name: "row"; type: "int" } + Parameter { name: "column"; type: "int" } + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { + name: "index" + type: "QModelIndex" + Parameter { name: "row"; type: "int" } + Parameter { name: "column"; type: "int" } + } + Method { + name: "parent" + type: "QModelIndex" + Parameter { name: "child"; type: "QModelIndex" } + } + Method { + name: "sibling" + type: "QModelIndex" + Parameter { name: "row"; type: "int" } + Parameter { name: "column"; type: "int" } + Parameter { name: "idx"; type: "QModelIndex" } + } + Method { + name: "rowCount" + type: "int" + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { name: "rowCount"; type: "int" } + Method { + name: "columnCount" + type: "int" + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { name: "columnCount"; type: "int" } + Method { + name: "hasChildren" + type: "bool" + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { name: "hasChildren"; type: "bool" } + Method { + name: "data" + type: "QVariant" + Parameter { name: "index"; type: "QModelIndex" } + Parameter { name: "role"; type: "int" } + } + Method { + name: "data" + type: "QVariant" + Parameter { name: "index"; type: "QModelIndex" } + } + Method { + name: "setData" + type: "bool" + Parameter { name: "index"; type: "QModelIndex" } + Parameter { name: "value"; type: "QVariant" } + Parameter { name: "role"; type: "int" } + } + Method { + name: "setData" + type: "bool" + Parameter { name: "index"; type: "QModelIndex" } + Parameter { name: "value"; type: "QVariant" } + } + Method { + name: "headerData" + type: "QVariant" + Parameter { name: "section"; type: "int" } + Parameter { name: "orientation"; type: "Qt::Orientation" } + Parameter { name: "role"; type: "int" } + } + Method { + name: "headerData" + type: "QVariant" + Parameter { name: "section"; type: "int" } + Parameter { name: "orientation"; type: "Qt::Orientation" } + } + Method { + name: "fetchMore" + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { + name: "canFetchMore" + type: "bool" + Parameter { name: "parent"; type: "QModelIndex" } + } + Method { + name: "flags" + type: "Qt::ItemFlags" + Parameter { name: "index"; type: "QModelIndex" } + } + Method { + name: "match" + type: "QModelIndexList" + Parameter { name: "start"; type: "QModelIndex" } + Parameter { name: "role"; type: "int" } + Parameter { name: "value"; type: "QVariant" } + Parameter { name: "hits"; type: "int" } + Parameter { name: "flags"; type: "Qt::MatchFlags" } + } + Method { + name: "match" + type: "QModelIndexList" + Parameter { name: "start"; type: "QModelIndex" } + Parameter { name: "role"; type: "int" } + Parameter { name: "value"; type: "QVariant" } + Parameter { name: "hits"; type: "int" } + } + Method { + name: "match" + type: "QModelIndexList" + Parameter { name: "start"; type: "QModelIndex" } + Parameter { name: "role"; type: "int" } + Parameter { name: "value"; type: "QVariant" } + } + } + Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" } + Component { name: "QDeclarativeBluetoothDiscoveryModel" prototype: "QAbstractListModel" exports: [ diff --git a/src/imports/nfc/nfc.pro b/src/imports/nfc/nfc.pro index d651e837..e7ce081b 100644 --- a/src/imports/nfc/nfc.pro +++ b/src/imports/nfc/nfc.pro @@ -4,7 +4,6 @@ QT = core qml nfc # Input HEADERS += \ - #qdeclarativenearfieldsocket_p.h \ qdeclarativenearfield_p.h \ qdeclarativendeffilter_p.h \ qdeclarativendeftextrecord_p.h \ @@ -12,7 +11,6 @@ HEADERS += \ qdeclarativendefmimerecord_p.h SOURCES += plugin.cpp \ - #qdeclarativenearfieldsocket.cpp \ qdeclarativenearfield.cpp \ qdeclarativendeffilter.cpp \ qdeclarativendeftextrecord.cpp \ diff --git a/src/imports/nfc/plugins.qmltypes b/src/imports/nfc/plugins.qmltypes index d99cac23..2151ad7d 100644 --- a/src/imports/nfc/plugins.qmltypes +++ b/src/imports/nfc/plugins.qmltypes @@ -4,7 +4,7 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtNfc 5.13' +// 'qmlplugindump -nonrelocatable QtNfc 5.14' Module { dependencies: ["QtQuick 2.0"] diff --git a/src/imports/nfc/qdeclarativenearfieldsocket.cpp b/src/imports/nfc/qdeclarativenearfieldsocket.cpp deleted file mode 100644 index 0bf9abcd..00000000 --- a/src/imports/nfc/qdeclarativenearfieldsocket.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtNfc module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qdeclarativenearfieldsocket_p.h" - -#include <qllcpserver.h> - -/*! - \qmltype NearFieldSocket - \instantiates QDeclarativeNearFieldSocket - \since 5.2 - \brief Represents an LLCP socket. - - \ingroup nfc-qml - \inqmlmodule QtNfc - - The NearFieldSocket type can be used to create a peer-to-peer connection over NFC LLCP - sockets. NearfieldSocket can be used for both client and server side sockets. - - \internal -*/ - -/*! - \qmlproperty string NearFieldSocket::uri - - This property hold the URI of the socket. The URI uniquely identifies a remote service (for - client sockets) or to register a service (for server sockets). -*/ - -/*! - \qmlproperty bool NearFieldSocket::connected - - This property holds the connected state of the socket. -*/ - -/*! - \qmlproperty string NearFieldSocket::error - - This property holds the last error that occurred. -*/ - -/*! - \qmlproperty string NearFieldSocket::state - - This property holds the state of the socket. -*/ - -/*! - \qmlproperty bool NearFieldSocket::listening - - This property holds whether the socket is listening for incoming connections. -*/ - -/*! - \qmlproperty string NearFieldSocket::stringData - - This property returns the available string data read from the socket. Seting this property - sends the data to the remote socket. -*/ - -class QDeclarativeNearFieldSocketPrivate -{ - Q_DECLARE_PUBLIC(QDeclarativeNearFieldSocket) - -public: - QDeclarativeNearFieldSocketPrivate(QDeclarativeNearFieldSocket *q) - : q_ptr(q), m_socket(0), m_server(0), - m_error(QLatin1String("No Error")), - m_state(QLatin1String("No Service Set")), - m_componentCompleted(false), - m_connected(false), m_listen(false) - { - } - - ~QDeclarativeNearFieldSocketPrivate() - { - delete m_socket; - } - - void connect() - { - Q_ASSERT(!uri.isEmpty()); - - m_error = QLatin1String("No Error"); - - if (m_socket) - m_socket->deleteLater(); - - m_socket = new QLlcpSocket; - - Q_Q(const QDeclarativeNearFieldSocket); - - QObject::connect(m_socket, SIGNAL(connected()), q, SLOT(socket_connected())); - QObject::connect(m_socket, SIGNAL(disconnected()), q, SLOT(socket_disconnected())); - QObject::connect(m_socket, SIGNAL(error(QLlcpSocket::SocketError)), - q, SLOT(socket_error(QLlcpSocket::SocketError))); - QObject::connect(m_socket, SIGNAL(stateChanged(QLlcpSocket::SocketState)), - q, SLOT(socket_state(QLlcpSocket::SocketState))); - QObject::connect(m_socket, SIGNAL(readyRead()), q, SLOT(socket_readyRead())); - - m_socket->connectToService(0, uri); - } - - QDeclarativeNearFieldSocket *q_ptr; - QString uri; - QLlcpSocket *m_socket; - QLlcpServer *m_server; - QString m_error; - QString m_state; - bool m_componentCompleted; - bool m_connected; - bool m_listen; -}; - -QDeclarativeNearFieldSocket::QDeclarativeNearFieldSocket(QObject *parent) -: QObject(parent), d_ptr(new QDeclarativeNearFieldSocketPrivate(this)) -{ -} - -QDeclarativeNearFieldSocket::~QDeclarativeNearFieldSocket() -{ - delete d_ptr; -} - -void QDeclarativeNearFieldSocket::componentComplete() -{ - Q_D(QDeclarativeNearFieldSocket); - - d->m_componentCompleted = true; - - if (d->m_connected && !d->uri.isEmpty()) - d->connect(); - else if (d->m_listen) - setListening(true); -} - -QString QDeclarativeNearFieldSocket::uri() const -{ - Q_D(const QDeclarativeNearFieldSocket); - - return d->uri; -} - -void QDeclarativeNearFieldSocket::setUri(const QString &uri) -{ - Q_D(QDeclarativeNearFieldSocket); - - d->uri = uri; - - if (!d->m_componentCompleted) - return; - - if (d->m_connected) - d->connect(); - - emit uriChanged(); -} - -bool QDeclarativeNearFieldSocket::connected() const -{ - Q_D(const QDeclarativeNearFieldSocket); - - if (!d->m_socket) - return false; - - return d->m_socket->state() == QLlcpSocket::ConnectedState; -} - -void QDeclarativeNearFieldSocket::setConnected(bool connected) -{ - Q_D(QDeclarativeNearFieldSocket); - - d->m_connected = connected; - if (connected && d->m_componentCompleted) { - if (!d->uri.isEmpty()) - d->connect(); - else - qWarning() << "NearFieldSocket::setConnected called before a uri was set"; - } - - if (!connected && d->m_socket) - d->m_socket->close(); -} - -QString QDeclarativeNearFieldSocket::error() const -{ - Q_D(const QDeclarativeNearFieldSocket); - - return d->m_error; -} - -void QDeclarativeNearFieldSocket::socket_connected() -{ - emit connectedChanged(); -} - -void QDeclarativeNearFieldSocket::socket_disconnected() -{ - Q_D(QDeclarativeNearFieldSocket); - - d->m_socket->deleteLater(); - d->m_socket = 0; - emit connectedChanged(); -} - -void QDeclarativeNearFieldSocket::socket_error(QLlcpSocket::SocketError err) -{ - Q_D(QDeclarativeNearFieldSocket); - - if (err == QLlcpSocket::RemoteHostClosedError) - d->m_error = QLatin1String("Connection Closed by Remote Host"); - else - d->m_error = QLatin1String("Unknown Error"); - - emit errorChanged(); -} - -void QDeclarativeNearFieldSocket::socket_state(QLlcpSocket::SocketState state) -{ - Q_D(QDeclarativeNearFieldSocket); - - switch (state) { - case QLlcpSocket::UnconnectedState: - d->m_state = QLatin1String("Unconnected"); - break; - case QLlcpSocket::ConnectingState: - d->m_state = QLatin1String("Connecting"); - break; - case QLlcpSocket::ConnectedState: - d->m_state = QLatin1String("Connected"); - break; - case QLlcpSocket::ClosingState: - d->m_state = QLatin1String("Closing"); - break; - case QLlcpSocket::ListeningState: - d->m_state = QLatin1String("Listening"); - break; - case QLlcpSocket::BoundState: - d->m_state = QLatin1String("Bound"); - break; - } - - emit stateChanged(); -} - -QString QDeclarativeNearFieldSocket::state() const -{ - Q_D(const QDeclarativeNearFieldSocket); - - return d->m_state; -} - -bool QDeclarativeNearFieldSocket::listening() const -{ - Q_D(const QDeclarativeNearFieldSocket); - - if (d->m_server) - return true; - - return false; -} - -void QDeclarativeNearFieldSocket::setListening(bool listen) -{ - Q_D(QDeclarativeNearFieldSocket); - - if (listen == false && d->m_server) { - qWarning() << "Once socket is in listening state, can not be returned to client socket"; - return; - } - - if (!d->m_componentCompleted){ - d->m_listen = listen; - return; - } - - if (d->uri.isEmpty()) { - qWarning() << "Can not put socket into listening state without an assigned uri"; - return; - } - - d->m_server = new QLlcpServer; - - connect(d->m_server, SIGNAL(newConnection()), this, SLOT(llcp_connection())); - - d->m_server->listen(d->uri); - - - - emit listeningChanged(); -} - -void QDeclarativeNearFieldSocket::socket_readyRead() -{ - emit dataAvailable(); -} - -QString QDeclarativeNearFieldSocket::stringData() -{ - Q_D(QDeclarativeNearFieldSocket); - - if (!d->m_socket|| !d->m_socket->bytesAvailable()) - return QString(); - - const QByteArray data = d->m_socket->readAll(); - return QString::fromUtf8(data.constData(), data.size()); -} - -void QDeclarativeNearFieldSocket::sendStringData(const QString &data) -{ - Q_D(QDeclarativeNearFieldSocket); - - if (!d->m_connected || !d->m_socket) { - qWarning() << "Writing data to unconnected socket"; - return; - } - - d->m_socket->write(data.toUtf8()); -} - -void QDeclarativeNearFieldSocket::llcp_connection() -{ - Q_D(QDeclarativeNearFieldSocket); - - QLlcpSocket *socket = d->m_server->nextPendingConnection(); - if (!socket) - return; - - if (d->m_socket) { - socket->close(); - return; - } - - d->m_socket = socket; - - connect(socket, SIGNAL(disconnected()), this, SLOT(socket_disconnected())); - connect(socket, SIGNAL(error(QLlcpSocket::SocketError)), - this, SLOT(socket_error(QLlcpSocket::SocketError))); - connect(socket, SIGNAL(stateChanged(QLlcpSocket::SocketState)), - this, SLOT(socket_state(QLlcpSocket::SocketState))); - connect(socket, SIGNAL(readyRead()), this, SLOT(socket_readyRead())); - - void connectedChanged(); -} diff --git a/src/imports/nfc/qdeclarativenearfieldsocket_p.h b/src/imports/nfc/qdeclarativenearfieldsocket_p.h deleted file mode 100644 index 09db52e0..00000000 --- a/src/imports/nfc/qdeclarativenearfieldsocket_p.h +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtNfc module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDECLARATIVENEARFIELDSOCKET_P_H -#define QDECLARATIVENEARFIELDSOCKET_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtCore/QObject> -#include <QtQml/qqml.h> -#include <QtQml/QQmlParserStatus> -#include <QtNfc/QLlcpSocket> - -QT_USE_NAMESPACE - -class QDeclarativeNearFieldSocketPrivate; - -class QDeclarativeNearFieldSocket : public QObject, public QQmlParserStatus -{ - Q_OBJECT - - Q_PROPERTY(QString uri READ uri WRITE setUri NOTIFY uriChanged) - Q_PROPERTY(bool connected READ connected WRITE setConnected NOTIFY connectedChanged) - Q_PROPERTY(QString error READ error NOTIFY errorChanged) - Q_PROPERTY(QString state READ state NOTIFY stateChanged) - Q_PROPERTY(bool listening READ listening WRITE setListening NOTIFY listeningChanged) - Q_PROPERTY(QString stringData READ stringData WRITE sendStringData NOTIFY dataAvailable) - - Q_INTERFACES(QQmlParserStatus) - - Q_DECLARE_PRIVATE(QDeclarativeNearFieldSocket) - -public: - explicit QDeclarativeNearFieldSocket(QObject *parent = 0); - ~QDeclarativeNearFieldSocket(); - - QString uri() const; - bool connected() const; - QString error() const; - QString state() const; - bool listening() const; - - QString stringData(); - - // From QDeclarativeParserStatus - void classBegin() {} - void componentComplete(); - -signals: - void uriChanged(); - void connectedChanged(); - void errorChanged(); - void stateChanged(); - void listeningChanged(); - void dataAvailable(); - -public slots: - void setUri(const QString &service); - void setConnected(bool connected); - void setListening(bool listen); - void sendStringData(const QString &data); - -private slots: - void socket_connected(); - void socket_disconnected(); - void socket_error(QLlcpSocket::SocketError); - void socket_state(QLlcpSocket::SocketState); - void socket_readyRead(); - - void llcp_connection(); - -private: - QDeclarativeNearFieldSocketPrivate *d_ptr; -}; - -QML_DECLARE_TYPE(QDeclarativeNearFieldSocket) - -#endif // QDECLARATIVENEARFIELDSOCKET_P_H diff --git a/src/nfc/nfc.pro b/src/nfc/nfc.pro index ed88b79a..c6ae147d 100644 --- a/src/nfc/nfc.pro +++ b/src/nfc/nfc.pro @@ -5,7 +5,7 @@ DEFINES += QT_NO_FOREACH QMAKE_DOCS = $$PWD/doc/qtnfc.qdocconf OTHER_FILES += doc/src/*.qdoc # show .qdoc files in Qt Creator -PUBLIC_HEADERS += \ +HEADERS += \ qtnfcglobal.h \ qnearfieldmanager.h \ qnearfieldtarget.h \ @@ -17,9 +17,7 @@ PUBLIC_HEADERS += \ qqmlndefrecord.h \ qndefnfcsmartposterrecord.h \ qnearfieldsharemanager.h \ - qnearfieldsharetarget.h - -PRIVATE_HEADERS += \ + qnearfieldsharetarget.h \ qtnfcglobal_p.h \ qllcpsocket_p.h \ qllcpserver_p.h \ @@ -63,7 +61,7 @@ linux:!android:qtHaveModule(dbus) { DEFINES += NEARD_NFC - PRIVATE_HEADERS += \ + HEADERS += \ qllcpsocket_p_p.h \ qllcpserver_p_p.h \ qnearfieldmanager_neard_p.h \ @@ -91,7 +89,7 @@ linux:!android:qtHaveModule(dbus) { DEFINES += ANDROID_NFC QT_PRIVATE += core-private gui androidextras - PRIVATE_HEADERS += \ + HEADERS += \ qllcpserver_android_p.h \ qllcpsocket_android_p.h \ android/androidjninfc_p.h \ @@ -117,7 +115,7 @@ linux:!android:qtHaveModule(dbus) { isEmpty(NFC_BACKEND_AVAILABLE) { message("Unsupported NFC platform, will not build a working QtNfc library.") - PRIVATE_HEADERS += \ + HEADERS += \ qllcpsocket_p_p.h \ qllcpserver_p_p.h \ qnearfieldmanagerimpl_p.h \ @@ -133,6 +131,4 @@ isEmpty(NFC_BACKEND_AVAILABLE) { qnearfieldtarget_p.cpp } -HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS - load(qt_module) |