summaryrefslogtreecommitdiffstats
path: root/examples/bluetooth/pingpong
diff options
context:
space:
mode:
Diffstat (limited to 'examples/bluetooth/pingpong')
-rw-r--r--examples/bluetooth/pingpong/assets/Dialog.qml2
-rw-r--r--examples/bluetooth/pingpong/assets/Menu.qml11
-rw-r--r--examples/bluetooth/pingpong/main.cpp3
-rw-r--r--examples/bluetooth/pingpong/pingpong.cpp48
-rw-r--r--examples/bluetooth/pingpong/pingpong.h3
-rw-r--r--examples/bluetooth/pingpong/pingpong.pro1
6 files changed, 46 insertions, 22 deletions
diff --git a/examples/bluetooth/pingpong/assets/Dialog.qml b/examples/bluetooth/pingpong/assets/Dialog.qml
index 2a332715..53be3eaa 100644
--- a/examples/bluetooth/pingpong/assets/Dialog.qml
+++ b/examples/bluetooth/pingpong/assets/Dialog.qml
@@ -42,7 +42,7 @@ import QtQuick 2.0
Rectangle {
width: parent.width/2
- height: 100
+ height: message.implicitHeight*2
z: 50
border.width: 2
border.color: "#363636"
diff --git a/examples/bluetooth/pingpong/assets/Menu.qml b/examples/bluetooth/pingpong/assets/Menu.qml
index b7516262..09eabb36 100644
--- a/examples/bluetooth/pingpong/assets/Menu.qml
+++ b/examples/bluetooth/pingpong/assets/Menu.qml
@@ -47,17 +47,18 @@ Rectangle {
Rectangle {
width: parent.width
- height: 70
+ height: headerText.implicitHeight *1.2
border.width: 1
border.color: "#363636"
radius: 5
Text {
+ id: headerText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
anchors.fill: parent
text: "Welcome to PingPong Game \n Please select an option"
- font.pixelSize: 20
+ font.pointSize: 20
elide: Text.ElideMiddle
color: "#363636"
}
@@ -67,10 +68,11 @@ Rectangle {
id: startServer
anchors.centerIn: parent
width: parent.width/2
- height: parent.height/5
+ height: startServerText.implicitHeight*5
color: "#363636"
Text {
+ id: startServerText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
anchors.fill: parent
@@ -95,10 +97,11 @@ Rectangle {
anchors.top: startServer.bottom
anchors.topMargin: 10
width: parent.width/2
- height: parent.height/5
+ height: startClientText.implicitHeight*5
color: "#363636"
Text {
+ id: startClientText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
anchors.fill: parent
diff --git a/examples/bluetooth/pingpong/main.cpp b/examples/bluetooth/pingpong/main.cpp
index d2a84440..b6430248 100644
--- a/examples/bluetooth/pingpong/main.cpp
+++ b/examples/bluetooth/pingpong/main.cpp
@@ -41,10 +41,13 @@
#include <QQmlContext>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
+#include <QLoggingCategory>
#include "pingpong.h"
+
int main(int argc, char *argv[])
{
+ //QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));
QGuiApplication app(argc, argv);
PingPong pingPong;
QQmlApplicationEngine engine;
diff --git a/examples/bluetooth/pingpong/pingpong.cpp b/examples/bluetooth/pingpong/pingpong.cpp
index ab6ba8c7..d893f64c 100644
--- a/examples/bluetooth/pingpong/pingpong.cpp
+++ b/examples/bluetooth/pingpong/pingpong.cpp
@@ -40,13 +40,16 @@
#include "pingpong.h"
#include <QDebug>
+#ifdef Q_OS_ANDROID
+#include <QtAndroid>
+#endif
PingPong::PingPong():
m_serverInfo(0), socket(0), discoveryAgent(0), interval(5), m_resultLeft(0), m_resultRight(0),
m_showDialog(false), m_role(0), m_proportionX(0), m_proportionY(0), m_serviceFound(false)
{
m_timer = new QTimer(this);
- connect(m_timer, SIGNAL(timeout()), this, SLOT(update()));
+ connect(m_timer, &QTimer::timeout, this, &PingPong::update);
}
PingPong::~PingPong()
@@ -230,9 +233,10 @@ void PingPong::startServer()
setMessage(QStringLiteral("Starting the server"));
//! [Starting the server]
m_serverInfo = new QBluetoothServer(QBluetoothServiceInfo::RfcommProtocol, this);
- connect(m_serverInfo, SIGNAL(newConnection()), this, SLOT(clientConnected()));
- connect(m_serverInfo, SIGNAL(error(QBluetoothServer::Error)),
- this, SLOT(serverError(QBluetoothServer::Error)));
+ connect(m_serverInfo, &QBluetoothServer::newConnection,
+ this, &PingPong::clientConnected);
+ connect(m_serverInfo, QOverload<QBluetoothServer::Error>::of(&QBluetoothServer::error),
+ this, &PingPong::serverError);
const QBluetoothUuid uuid(serviceUuid);
m_serverInfo->listen(uuid, QStringLiteral("PingPong server"));
@@ -248,13 +252,22 @@ void PingPong::startClient()
//! [Searching for the service]
discoveryAgent = new QBluetoothServiceDiscoveryAgent(QBluetoothAddress());
- connect(discoveryAgent, SIGNAL(serviceDiscovered(QBluetoothServiceInfo)),
- this, SLOT(addService(QBluetoothServiceInfo)));
- connect(discoveryAgent, SIGNAL(finished()), this, SLOT(done()));
- connect(discoveryAgent, SIGNAL(error(QBluetoothServiceDiscoveryAgent::Error)),
- this, SLOT(serviceScanError(QBluetoothServiceDiscoveryAgent::Error)));
+ connect(discoveryAgent, &QBluetoothServiceDiscoveryAgent::serviceDiscovered,
+ this, &PingPong::addService);
+ connect(discoveryAgent, &QBluetoothServiceDiscoveryAgent::finished,
+ this, &PingPong::done);
+ connect(discoveryAgent, QOverload<QBluetoothServiceDiscoveryAgent::Error>::of(&QBluetoothServiceDiscoveryAgent::error),
+ this, &PingPong::serviceScanError);
+#ifdef Q_OS_ANDROID //see QTBUG-61392
+ if (QtAndroid::androidSdkVersion() >= 23)
+ discoveryAgent->setUuidFilter(QBluetoothUuid(androidUuid));
+ else
+ discoveryAgent->setUuidFilter(QBluetoothUuid(serviceUuid));
+#else
discoveryAgent->setUuidFilter(QBluetoothUuid(serviceUuid));
+#endif
discoveryAgent->start(QBluetoothServiceDiscoveryAgent::FullDiscovery);
+
//! [Searching for the service]
setMessage(QStringLiteral("Starting server discovery. You are the right player"));
// m_role is set to 2 if it is a client
@@ -273,10 +286,13 @@ void PingPong::clientConnected()
if (!socket)
return;
socket->setParent(this);
- connect(socket, SIGNAL(readyRead()), this, SLOT(readSocket()));
- connect(socket, SIGNAL(disconnected()), this, SLOT(clientDisconnected()));
- connect(socket, SIGNAL(error(QBluetoothSocket::SocketError)),
- this, SLOT(socketError(QBluetoothSocket::SocketError)));
+ connect(socket, &QBluetoothSocket::readyRead,
+ this, &PingPong::readSocket);
+ connect(socket, &QBluetoothSocket::disconnected,
+ this, &PingPong::clientDisconnected);
+ connect(socket, QOverload<QBluetoothSocket::SocketError>::of(&QBluetoothSocket::error),
+ this, &PingPong::socketError);
+
//! [Initiating server socket]
setMessage(QStringLiteral("Client connected."));
@@ -323,9 +339,9 @@ void PingPong::addService(const QBluetoothServiceInfo &service)
socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
socket->connectToService(service);
- connect(socket, SIGNAL(readyRead()), this, SLOT(readSocket()));
- connect(socket, SIGNAL(connected()), this, SLOT(serverConnected()));
- connect(socket, SIGNAL(disconnected()), this, SLOT(serverDisconnected()));
+ connect(socket, &QBluetoothSocket::readyRead, this, &PingPong::readSocket);
+ connect(socket, &QBluetoothSocket::connected, this, &PingPong::serverConnected);
+ connect(socket, &QBluetoothSocket::disconnected, this, &PingPong::serverDisconnected);
//! [Connecting the socket]
m_serviceFound = true;
}
diff --git a/examples/bluetooth/pingpong/pingpong.h b/examples/bluetooth/pingpong/pingpong.h
index 650cd597..21c9ef1c 100644
--- a/examples/bluetooth/pingpong/pingpong.h
+++ b/examples/bluetooth/pingpong/pingpong.h
@@ -48,7 +48,8 @@
#include <qbluetoothlocaldevice.h>
#include <qbluetoothservicediscoveryagent.h>
-static const QString serviceUuid(QStringLiteral("e8e10f95-1a70-4b27-9ccf-02010264e9c9"));
+static QString serviceUuid(QStringLiteral("e8e10f95-1a70-4b27-9ccf-02010264e9c9"));
+static QString androidUuid(QStringLiteral("c9e96402-0102-cf9c-274b-701a950fe1e8"));
class PingPong: public QObject
{
diff --git a/examples/bluetooth/pingpong/pingpong.pro b/examples/bluetooth/pingpong/pingpong.pro
index 07675f27..aa79212e 100644
--- a/examples/bluetooth/pingpong/pingpong.pro
+++ b/examples/bluetooth/pingpong/pingpong.pro
@@ -2,6 +2,7 @@ TEMPLATE = app
TARGET = pingpong
QT += quick bluetooth
+android: QT += androidextras
# Input
SOURCES += main.cpp \