diff options
author | Oliver Wolff <oliver.wolff@qt.io> | 2018-08-14 10:38:48 +0200 |
---|---|---|
committer | Oliver Wolff <oliver.wolff@qt.io> | 2018-08-16 09:21:25 +0000 |
commit | f1aea39b230e1126c9c3bba9a8b8cfe76eae518f (patch) | |
tree | 8e071af2cfe89d9337fab117d7ae3c47e3e17aa5 /examples | |
parent | bfb696f799cb9495dc8fdf227f366a76bdcf97e4 (diff) | |
download | qtconnectivity-f1aea39b230e1126c9c3bba9a8b8cfe76eae518f.tar.gz |
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')
-rw-r--r-- | examples/bluetooth/btchat/chat.cpp | 59 | ||||
-rw-r--r-- | examples/bluetooth/btchat/chat.h | 13 | ||||
-rw-r--r-- | examples/bluetooth/btchat/chatclient.cpp | 27 | ||||
-rw-r--r-- | examples/bluetooth/btchat/chatclient.h | 11 | ||||
-rw-r--r-- | examples/bluetooth/btchat/chatserver.cpp | 16 | ||||
-rw-r--r-- | examples/bluetooth/btchat/chatserver.h | 11 | ||||
-rw-r--r-- | examples/bluetooth/btchat/main.cpp | 4 | ||||
-rw-r--r-- | examples/bluetooth/btchat/remoteselector.cpp | 7 | ||||
-rw-r--r-- | examples/bluetooth/btchat/remoteselector.h | 12 |
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); |