summaryrefslogtreecommitdiffstats
path: root/examples/bluetooth
diff options
context:
space:
mode:
authorOliver Wolff <oliver.wolff@qt.io>2018-08-14 10:38:48 +0200
committerOliver Wolff <oliver.wolff@qt.io>2018-08-16 09:21:25 +0000
commitf1aea39b230e1126c9c3bba9a8b8cfe76eae518f (patch)
tree8e071af2cfe89d9337fab117d7ae3c47e3e17aa5 /examples/bluetooth
parentbfb696f799cb9495dc8fdf227f366a76bdcf97e4 (diff)
Clean up btchat example
- Replace old connect syntax - Clean up includes - Replace 0 with nullptr - Add socket error handling Change-Id: Id4c7634db29a23184d3ce2d92ffa39c71505de12 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'examples/bluetooth')
-rw-r--r--examples/bluetooth/btchat/chat.cpp59
-rw-r--r--examples/bluetooth/btchat/chat.h13
-rw-r--r--examples/bluetooth/btchat/chatclient.cpp27
-rw-r--r--examples/bluetooth/btchat/chatclient.h11
-rw-r--r--examples/bluetooth/btchat/chatserver.cpp16
-rw-r--r--examples/bluetooth/btchat/chatserver.h11
-rw-r--r--examples/bluetooth/btchat/main.cpp4
-rw-r--r--examples/bluetooth/btchat/remoteselector.cpp7
-rw-r--r--examples/bluetooth/btchat/remoteselector.h12
9 files changed, 90 insertions, 70 deletions
diff --git a/examples/bluetooth/btchat/chat.cpp b/examples/bluetooth/btchat/chat.cpp
index 9325765e..4cc5f08d 100644
--- a/examples/bluetooth/btchat/chat.cpp
+++ b/examples/bluetooth/btchat/chat.cpp
@@ -53,34 +53,30 @@
#include "chatserver.h"
#include "chatclient.h"
-#include <qbluetoothuuid.h>
-#include <qbluetoothserver.h>
-#include <qbluetoothservicediscoveryagent.h>
-#include <qbluetoothdeviceinfo.h>
-#include <qbluetoothlocaldevice.h>
+#include <QtCore/qdebug.h>
+
+#include <QtBluetooth/qbluetoothdeviceinfo.h>
+#include <QtBluetooth/qbluetoothlocaldevice.h>
+#include <QtBluetooth/qbluetoothuuid.h>
#ifdef Q_OS_ANDROID
#include <QtAndroidExtras/QtAndroid>
#endif
-#include <QTimer>
-
-#include <QDebug>
-
static const QLatin1String serviceUuid("e8e10f95-1a70-4b27-9ccf-02010264e9c8");
#ifdef Q_OS_ANDROID
static const QLatin1String reverseUuid("c8e96402-0102-cf9c-274b-701a950fe1e8");
#endif
Chat::Chat(QWidget *parent)
- : QDialog(parent), currentAdapterIndex(0), ui(new Ui_Chat)
+ : QDialog(parent), ui(new Ui_Chat)
{
//! [Construct UI]
ui->setupUi(this);
- connect(ui->quitButton, SIGNAL(clicked()), this, SLOT(accept()));
- connect(ui->connectButton, SIGNAL(clicked()), this, SLOT(connectClicked()));
- connect(ui->sendButton, SIGNAL(clicked()), this, SLOT(sendClicked()));
+ connect(ui->quitButton, &QPushButton::clicked, this, &Chat::accept);
+ connect(ui->connectButton, &QPushButton::clicked, this, &Chat::connectClicked);
+ connect(ui->sendButton, &QPushButton::clicked, this, &Chat::sendClicked);
//! [Construct UI]
localAdapters = QBluetoothLocalDevice::allDevices();
@@ -93,19 +89,21 @@ Chat::Chat(QWidget *parent)
arg(localAdapters.at(0).address().toString()));
ui->secondAdapter->setText(localAdapters.at(1).address().toString());
ui->firstAdapter->setChecked(true);
- connect(ui->firstAdapter, SIGNAL(clicked()), this, SLOT(newAdapterSelected()));
- connect(ui->secondAdapter, SIGNAL(clicked()), this, SLOT(newAdapterSelected()));
+ connect(ui->firstAdapter, &QRadioButton::clicked, this, &Chat::newAdapterSelected);
+ connect(ui->secondAdapter, &QRadioButton::clicked, this, &Chat::newAdapterSelected);
QBluetoothLocalDevice adapter(localAdapters.at(0).address());
adapter.setHostMode(QBluetoothLocalDevice::HostDiscoverable);
}
//! [Create Chat Server]
server = new ChatServer(this);
- connect(server, SIGNAL(clientConnected(QString)), this, SLOT(clientConnected(QString)));
- connect(server, SIGNAL(clientDisconnected(QString)), this, SLOT(clientDisconnected(QString)));
- connect(server, SIGNAL(messageReceived(QString,QString)),
- this, SLOT(showMessage(QString,QString)));
- connect(this, SIGNAL(sendMessage(QString)), server, SLOT(sendMessage(QString)));
+ connect(server, QOverload<const QString &>::of(&ChatServer::clientConnected),
+ this, &Chat::clientConnected);
+ connect(server, QOverload<const QString &>::of(&ChatServer::clientDisconnected),
+ this, QOverload<const QString &>::of(&Chat::clientDisconnected));
+ connect(server, &ChatServer::messageReceived,
+ this, &Chat::showMessage);
+ connect(this, &Chat::sendMessage, server, &ChatServer::sendMessage);
server->startServer();
//! [Create Chat Server]
@@ -137,6 +135,7 @@ void Chat::connected(const QString &name)
{
ui->chat->insertPlainText(QString::fromLatin1("Joined chat with %1.\n").arg(name));
}
+//! [connected]
void Chat::newAdapterSelected()
{
@@ -163,7 +162,11 @@ int Chat::adapterFromUserSelection() const
}
return result;
}
-//! [connected]
+
+void Chat::reactOnSocketError(const QString &error)
+{
+ ui->chat->insertPlainText(error);
+}
//! [clientDisconnected]
void Chat::clientDisconnected()
@@ -206,11 +209,15 @@ void Chat::connectClicked()
ChatClient *client = new ChatClient(this);
qDebug() << "Connecting...";
- connect(client, SIGNAL(messageReceived(QString,QString)),
- this, SLOT(showMessage(QString,QString)));
- connect(client, SIGNAL(disconnected()), this, SLOT(clientDisconnected()));
- connect(client, SIGNAL(connected(QString)), this, SLOT(connected(QString)));
- connect(this, SIGNAL(sendMessage(QString)), client, SLOT(sendMessage(QString)));
+ connect(client, &ChatClient::messageReceived,
+ this, &Chat::showMessage);
+ connect(client, &ChatClient::disconnected,
+ this, QOverload<>::of(&Chat::clientDisconnected));
+ connect(client, QOverload<const QString &>::of(&ChatClient::connected),
+ this, &Chat::connected);
+ connect(client, &ChatClient::socketErrorOccurred,
+ this, &Chat::reactOnSocketError);
+ connect(this, &Chat::sendMessage, client, &ChatClient::sendMessage);
qDebug() << "Start client";
client->startClient(service);
diff --git a/examples/bluetooth/btchat/chat.h b/examples/bluetooth/btchat/chat.h
index 57f13257..e4c81b24 100644
--- a/examples/bluetooth/btchat/chat.h
+++ b/examples/bluetooth/btchat/chat.h
@@ -50,13 +50,9 @@
#include "ui_chat.h"
-#include <QDialog>
+#include <QtWidgets/qdialog.h>
-#include <qbluetoothserviceinfo.h>
-#include <qbluetoothsocket.h>
-#include <qbluetoothhostinfo.h>
-
-#include <QDebug>
+#include <QtBluetooth/qbluetoothhostinfo.h>
QT_USE_NAMESPACE
@@ -69,7 +65,7 @@ class Chat : public QDialog
Q_OBJECT
public:
- Chat(QWidget *parent = 0);
+ explicit Chat(QWidget *parent = nullptr);
~Chat();
signals:
@@ -85,12 +81,13 @@ private slots:
void clientDisconnected(const QString &name);
void clientDisconnected();
void connected(const QString &name);
+ void reactOnSocketError(const QString &error);
void newAdapterSelected();
private:
int adapterFromUserSelection() const;
- int currentAdapterIndex;
+ int currentAdapterIndex = 0;
Ui_Chat *ui;
ChatServer *server;
diff --git a/examples/bluetooth/btchat/chatclient.cpp b/examples/bluetooth/btchat/chatclient.cpp
index 6682667f..cf3e2331 100644
--- a/examples/bluetooth/btchat/chatclient.cpp
+++ b/examples/bluetooth/btchat/chatclient.cpp
@@ -50,10 +50,10 @@
#include "chatclient.h"
-#include <qbluetoothsocket.h>
+#include <QtCore/qmetaobject.h>
ChatClient::ChatClient(QObject *parent)
-: QObject(parent), socket(0)
+ : QObject(parent)
{
}
@@ -74,9 +74,12 @@ void ChatClient::startClient(const QBluetoothServiceInfo &remoteService)
socket->connectToService(remoteService);
qDebug() << "ConnectToService done";
- connect(socket, SIGNAL(readyRead()), this, SLOT(readSocket()));
- connect(socket, SIGNAL(connected()), this, SLOT(connected()));
- connect(socket, SIGNAL(disconnected()), this, SIGNAL(disconnected()));
+ connect(socket, &QBluetoothSocket::readyRead, this, &ChatClient::readSocket);
+ connect(socket, &QBluetoothSocket::connected, this, QOverload<>::of(&ChatClient::connected));
+ connect(socket, &QBluetoothSocket::disconnected, this, &ChatClient::disconnected);
+ connect(socket, QOverload<QBluetoothSocket::SocketError>::of(&QBluetoothSocket::error),
+ this, &ChatClient::onSocketErrorOccurred);
+
}
//! [startClient]
@@ -84,7 +87,7 @@ void ChatClient::startClient(const QBluetoothServiceInfo &remoteService)
void ChatClient::stopClient()
{
delete socket;
- socket = 0;
+ socket = nullptr;
}
//! [stopClient]
@@ -110,6 +113,18 @@ void ChatClient::sendMessage(const QString &message)
}
//! [sendMessage]
+void ChatClient::onSocketErrorOccurred(QBluetoothSocket::SocketError error)
+{
+ if (error == QBluetoothSocket::NoSocketError)
+ return;
+
+ QMetaEnum metaEnum = QMetaEnum::fromType<QBluetoothSocket::SocketError>();
+ QString errorString = socket->peerName() + QLatin1Char(' ')
+ + metaEnum.valueToKey(error) + QLatin1String(" occurred");
+
+ emit socketErrorOccurred(errorString);
+}
+
//! [connected]
void ChatClient::connected()
{
diff --git a/examples/bluetooth/btchat/chatclient.h b/examples/bluetooth/btchat/chatclient.h
index a2f2eafc..25002f90 100644
--- a/examples/bluetooth/btchat/chatclient.h
+++ b/examples/bluetooth/btchat/chatclient.h
@@ -51,9 +51,10 @@
#ifndef CHATCLIENT_H
#define CHATCLIENT_H
-#include <qbluetoothserviceinfo.h>
+#include <QtCore/qobject.h>
-#include <QtCore/QObject>
+#include <QtBluetooth/qbluetoothserviceinfo.h>
+#include <QtBluetooth/qbluetoothsocket.h>
QT_FORWARD_DECLARE_CLASS(QBluetoothSocket)
@@ -65,7 +66,7 @@ class ChatClient : public QObject
Q_OBJECT
public:
- explicit ChatClient(QObject *parent = 0);
+ explicit ChatClient(QObject *parent = nullptr);
~ChatClient();
void startClient(const QBluetoothServiceInfo &remoteService);
@@ -78,13 +79,15 @@ signals:
void messageReceived(const QString &sender, const QString &message);
void connected(const QString &name);
void disconnected();
+ void socketErrorOccurred(const QString &errorString);
private slots:
void readSocket();
void connected();
+ void onSocketErrorOccurred(QBluetoothSocket::SocketError);
private:
- QBluetoothSocket *socket;
+ QBluetoothSocket *socket = nullptr;
};
//! [declaration]
diff --git a/examples/bluetooth/btchat/chatserver.cpp b/examples/bluetooth/btchat/chatserver.cpp
index 5d59cd77..59210e55 100644
--- a/examples/bluetooth/btchat/chatserver.cpp
+++ b/examples/bluetooth/btchat/chatserver.cpp
@@ -50,16 +50,15 @@
#include "chatserver.h"
-#include <qbluetoothserver.h>
-#include <qbluetoothsocket.h>
-#include <qbluetoothlocaldevice.h>
+#include <QtBluetooth/qbluetoothserver.h>
+#include <QtBluetooth/qbluetoothsocket.h>
//! [Service UUID]
static const QLatin1String serviceUuid("e8e10f95-1a70-4b27-9ccf-02010264e9c8");
//! [Service UUID]
ChatServer::ChatServer(QObject *parent)
-: QObject(parent), rfcommServer(0)
+ : QObject(parent)
{
}
@@ -75,7 +74,8 @@ void ChatServer::startServer(const QBluetoothAddress& localAdapter)
//! [Create the server]
rfcommServer = new QBluetoothServer(QBluetoothServiceInfo::RfcommProtocol, this);
- connect(rfcommServer, SIGNAL(newConnection()), this, SLOT(clientConnected()));
+ connect(rfcommServer, &QBluetoothServer::newConnection,
+ this, QOverload<>::of(&ChatServer::clientConnected));
bool result = rfcommServer->listen(localAdapter);
if (!result) {
qWarning() << "Cannot bind chat server to" << localAdapter.toString();
@@ -145,7 +145,7 @@ void ChatServer::stopServer()
// Close server
delete rfcommServer;
- rfcommServer = 0;
+ rfcommServer = nullptr;
}
//! [stopServer]
@@ -166,8 +166,8 @@ void ChatServer::clientConnected()
if (!socket)
return;
- connect(socket, SIGNAL(readyRead()), this, SLOT(readSocket()));
- connect(socket, SIGNAL(disconnected()), this, SLOT(clientDisconnected()));
+ connect(socket, &QBluetoothSocket::readyRead, this, &ChatServer::readSocket);
+ connect(socket, &QBluetoothSocket::disconnected, this, QOverload<>::of(&ChatServer::clientDisconnected));
clientSockets.append(socket);
emit clientConnected(socket->peerName());
}
diff --git a/examples/bluetooth/btchat/chatserver.h b/examples/bluetooth/btchat/chatserver.h
index f7117b74..c4191db8 100644
--- a/examples/bluetooth/btchat/chatserver.h
+++ b/examples/bluetooth/btchat/chatserver.h
@@ -51,11 +51,10 @@
#ifndef CHATSERVER_H
#define CHATSERVER_H
-#include <qbluetoothserviceinfo.h>
-#include <qbluetoothaddress.h>
+#include <QtCore/qobject.h>
-#include <QtCore/QObject>
-#include <QtCore/QList>
+#include <QtBluetooth/qbluetoothaddress.h>
+#include <QtBluetooth/qbluetoothserviceinfo.h>
QT_FORWARD_DECLARE_CLASS(QBluetoothServer)
QT_FORWARD_DECLARE_CLASS(QBluetoothSocket)
@@ -68,7 +67,7 @@ class ChatServer : public QObject
Q_OBJECT
public:
- explicit ChatServer(QObject *parent = 0);
+ explicit ChatServer(QObject *parent = nullptr);
~ChatServer();
void startServer(const QBluetoothAddress &localAdapter = QBluetoothAddress());
@@ -88,7 +87,7 @@ private slots:
void readSocket();
private:
- QBluetoothServer *rfcommServer;
+ QBluetoothServer *rfcommServer = nullptr;
QBluetoothServiceInfo serviceInfo;
QList<QBluetoothSocket *> clientSockets;
};
diff --git a/examples/bluetooth/btchat/main.cpp b/examples/bluetooth/btchat/main.cpp
index 84b33ae4..5c7bbf75 100644
--- a/examples/bluetooth/btchat/main.cpp
+++ b/examples/bluetooth/btchat/main.cpp
@@ -50,7 +50,7 @@
#include "chat.h"
-#include <QApplication>
+#include <QtWidgets/qapplication.h>
//#include <QtCore/QLoggingCategory>
int main(int argc, char *argv[])
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
Chat d;
- QObject::connect(&d, SIGNAL(accepted()), &app, SLOT(quit()));
+ QObject::connect(&d, &Chat::accepted, &app, &QApplication::quit);
#ifdef Q_OS_ANDROID
d.showMaximized();
diff --git a/examples/bluetooth/btchat/remoteselector.cpp b/examples/bluetooth/btchat/remoteselector.cpp
index c1302f6b..2bd1efcc 100644
--- a/examples/bluetooth/btchat/remoteselector.cpp
+++ b/examples/bluetooth/btchat/remoteselector.cpp
@@ -51,14 +51,13 @@
#include "remoteselector.h"
#include "ui_remoteselector.h"
-#include <qbluetoothdeviceinfo.h>
-#include <qbluetoothaddress.h>
-#include <qbluetoothlocaldevice.h>
+#include <QtBluetooth/qbluetoothlocaldevice.h>
+#include <QtBluetooth/qbluetoothservicediscoveryagent.h>
QT_USE_NAMESPACE
RemoteSelector::RemoteSelector(const QBluetoothAddress &localAdapter, QWidget *parent)
-: QDialog(parent), ui(new Ui::RemoteSelector)
+ : QDialog(parent), ui(new Ui::RemoteSelector)
{
ui->setupUi(this);
diff --git a/examples/bluetooth/btchat/remoteselector.h b/examples/bluetooth/btchat/remoteselector.h
index 9174cabd..54649ba9 100644
--- a/examples/bluetooth/btchat/remoteselector.h
+++ b/examples/bluetooth/btchat/remoteselector.h
@@ -51,13 +51,13 @@
#ifndef REMOTESELECTOR_H
#define REMOTESELECTOR_H
-#include <QDialog>
+#include <QtWidgets/qdialog.h>
-#include <qbluetoothuuid.h>
-#include <qbluetoothserviceinfo.h>
-#include <qbluetoothservicediscoveryagent.h>
+#include <QtBluetooth/qbluetoothaddress.h>
+#include <QtBluetooth/qbluetoothserviceinfo.h>
+#include <QtBluetooth/qbluetoothuuid.h>
-QT_FORWARD_DECLARE_CLASS(QModelIndex)
+QT_FORWARD_DECLARE_CLASS(QBluetoothServiceDiscoveryAgent)
QT_FORWARD_DECLARE_CLASS(QListWidgetItem)
QT_USE_NAMESPACE
@@ -73,7 +73,7 @@ class RemoteSelector : public QDialog
Q_OBJECT
public:
- explicit RemoteSelector(const QBluetoothAddress &localAdapter, QWidget *parent = 0);
+ explicit RemoteSelector(const QBluetoothAddress &localAdapter, QWidget *parent = nullptr);
~RemoteSelector();
void startDiscovery(const QBluetoothUuid &uuid);