diff options
Diffstat (limited to 'examples/corelib/ipc/localfortuneclient/client.cpp')
-rw-r--r-- | examples/corelib/ipc/localfortuneclient/client.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/examples/corelib/ipc/localfortuneclient/client.cpp b/examples/corelib/ipc/localfortuneclient/client.cpp index 31f8cf475b..b71409560b 100644 --- a/examples/corelib/ipc/localfortuneclient/client.cpp +++ b/examples/corelib/ipc/localfortuneclient/client.cpp @@ -1,14 +1,19 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause -#include <QtWidgets> -#include <QtNetwork> - #include "client.h" +#include <QDialogButtonBox> +#include <QGridLayout> +#include <QGuiApplication> +#include <QMessageBox> +#include <QTimer> + +using namespace Qt::StringLiterals; + Client::Client(QWidget *parent) : QDialog(parent), - hostLineEdit(new QLineEdit("fortune")), + hostLineEdit(new QLineEdit(u"fortune"_s)), getFortuneButton(new QPushButton(tr("Get Fortune"))), statusLabel(new QLabel(tr("This examples requires that you run the " "Local Fortune Server example as well."))), @@ -28,7 +33,7 @@ Client::Client(QWidget *parent) buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole); in.setDevice(socket); - in.setVersion(QDataStream::Qt_5_10); + in.setVersion(QDataStream::Qt_6_0); connect(hostLineEdit, &QLineEdit::textChanged, this, &Client::enableGetFortuneButton); @@ -58,20 +63,14 @@ void Client::requestNewFortune() void Client::readFortune() { - if (blockSize == 0) { - // Relies on the fact that QDataStream serializes a quint32 into - // sizeof(quint32) bytes - if (socket->bytesAvailable() < (int)sizeof(quint32)) - return; - in >> blockSize; - } - - if (socket->bytesAvailable() < blockSize || in.atEnd()) - return; + in.startTransaction(); QString nextFortune; in >> nextFortune; + if (!in.commitTransaction()) + return; + if (nextFortune == currentFortune) { QTimer::singleShot(0, this, &Client::requestNewFortune); return; |