diff options
author | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2017-01-19 13:41:23 +0100 |
---|---|---|
committer | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2017-01-19 13:41:23 +0100 |
commit | b0d17c21969be3f3424b8dfb00f28500bbd0be4e (patch) | |
tree | 81d107a0bafba7bebf15969d3c39204e17dd24cb /examples | |
parent | d67f06e583649147d5969fd59d00b584f0f52632 (diff) |
Make example a bit more verbose
Diffstat (limited to 'examples')
-rw-r--r-- | examples/mqtt/simpleclient/mainwindow.cpp | 46 | ||||
-rw-r--r-- | examples/mqtt/simpleclient/mainwindow.h | 3 | ||||
-rw-r--r-- | examples/mqtt/simpleclient/mainwindow.ui | 102 |
3 files changed, 132 insertions, 19 deletions
diff --git a/examples/mqtt/simpleclient/mainwindow.cpp b/examples/mqtt/simpleclient/mainwindow.cpp index 4f296e7..63f8d13 100644 --- a/examples/mqtt/simpleclient/mainwindow.cpp +++ b/examples/mqtt/simpleclient/mainwindow.cpp @@ -1,13 +1,9 @@ #include "mainwindow.h" #include "ui_mainwindow.h" +#include <QtCore/QDateTime> #include <QtMqtt/QMqttClient> -// http://test.mosquitto.org/ -//const QString TEST_HOST("test.mosquitto.org"); -const QString TEST_HOST("hostprocess.de"); -const quint16 TEST_PORT = 1883; - MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) @@ -15,8 +11,16 @@ MainWindow::MainWindow(QWidget *parent) : ui->setupUi(this); m_client = new QMqttClient(this); - m_client->setHostname(TEST_HOST); - m_client->setPort(TEST_PORT); + m_client->setHostname(ui->lineEditHost->text()); + m_client->setPort(ui->spinBoxPort->value()); + + connect(m_client, &QMqttClient::stateChanged, this, &MainWindow::updateLogStateChange); + connect(m_client, &QMqttClient::disconnected, this, &MainWindow::brokerDisconnected); + connect(ui->lineEditHost, &QLineEdit::textChanged, m_client, &QMqttClient::setHostname); + //connect(ui->spinBoxPort, &QSpinBox::valueChanged, m_client, &QMqttClient::setPort); + + connect(ui->spinBoxPort, SIGNAL(valueChanged(int)), m_client, SLOT(setPort(quint16))); + updateLogStateChange(); } MainWindow::~MainWindow() @@ -26,10 +30,36 @@ MainWindow::~MainWindow() void MainWindow::on_buttonConnect_clicked() { - m_client->connectToHost(); + if (m_client->state() == QMqttClient::Disconnected) { + ui->lineEditHost->setEnabled(false); + ui->spinBoxPort->setEnabled(false); + ui->buttonConnect->setText(tr("Disconnect")); + m_client->connectToHost(); + } else { + ui->lineEditHost->setEnabled(true); + ui->spinBoxPort->setEnabled(true); + ui->buttonConnect->setText(tr("Connect")); + m_client->disconnectFromHost(); + } } void MainWindow::on_buttonQuit_clicked() { QApplication::quit(); } + +void MainWindow::updateLogStateChange() +{ + const QString content = QDateTime::currentDateTime().toString() + + QLatin1String(": State Change") + + QString::number(m_client->state()) + + QLatin1Char('\n'); + ui->editLog->insertPlainText(content); +} + +void MainWindow::brokerDisconnected() +{ + ui->lineEditHost->setEnabled(true); + ui->spinBoxPort->setEnabled(true); + ui->buttonConnect->setText(tr("Connect")); +} diff --git a/examples/mqtt/simpleclient/mainwindow.h b/examples/mqtt/simpleclient/mainwindow.h index df4715d..f99b656 100644 --- a/examples/mqtt/simpleclient/mainwindow.h +++ b/examples/mqtt/simpleclient/mainwindow.h @@ -20,6 +20,9 @@ public: private slots: void on_buttonConnect_clicked(); void on_buttonQuit_clicked(); + void updateLogStateChange(); + + void brokerDisconnected(); private: Ui::MainWindow *ui; diff --git a/examples/mqtt/simpleclient/mainwindow.ui b/examples/mqtt/simpleclient/mainwindow.ui index a99ed1a..834af74 100644 --- a/examples/mqtt/simpleclient/mainwindow.ui +++ b/examples/mqtt/simpleclient/mainwindow.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> - <height>300</height> + <width>492</width> + <height>445</height> </rect> </property> <property name="windowTitle"> @@ -16,19 +16,87 @@ <widget class="QWidget" name="centralWidget"> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="QPushButton" name="buttonConnect"> - <property name="text"> - <string>Connect</string> - </property> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <layout class="QFormLayout" name="formLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Host:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="lineEditHost"> + <property name="text"> + <string>hostprocess.de</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Port:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QSpinBox" name="spinBoxPort"> + <property name="maximum"> + <number>99999</number> + </property> + <property name="value"> + <number>1883</number> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QPushButton" name="buttonConnect"> + <property name="text"> + <string>Connect</string> + </property> + </widget> + </item> + </layout> </item> <item> - <widget class="QPushButton" name="buttonQuit"> - <property name="text"> - <string>Quit</string> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Log Messages</string> </property> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QPlainTextEdit" name="editLog"/> + </item> + </layout> </widget> </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="buttonQuit"> + <property name="text"> + <string>Quit</string> + </property> + </widget> + </item> + </layout> + </item> </layout> </widget> <widget class="QMenuBar" name="menuBar"> @@ -36,10 +104,17 @@ <rect> <x>0</x> <y>0</y> - <width>400</width> + <width>492</width> <height>21</height> </rect> </property> + <widget class="QMenu" name="menuFile"> + <property name="title"> + <string>File</string> + </property> + <addaction name="actionQuit"/> + </widget> + <addaction name="menuFile"/> </widget> <widget class="QToolBar" name="mainToolBar"> <attribute name="toolBarArea"> @@ -50,6 +125,11 @@ </attribute> </widget> <widget class="QStatusBar" name="statusBar"/> + <action name="actionQuit"> + <property name="text"> + <string>Quit</string> + </property> + </action> </widget> <layoutdefault spacing="6" margin="11"/> <resources/> |