Work around QLocalSocket::error deprecation

Centralizing does not bring much benefit here, it's just six locations,
and having either a central #include <QLocalSocket> in algorithm.h
or a separe file does not sound better.

In any case, it is absurd, that deprecating functions to "make code
nicer" requires spilling #if QT_VERSION_CHECK over the code.

Change-Id: Ia9a8c0eb6ef7cabbaffb46cfe472247e26e7e2c2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2020-02-19 09:07:12 +01:00
parent 0ed1d1c374
commit 5064bddff6
6 changed files with 49 additions and 9 deletions

View File

@@ -76,6 +76,13 @@
namespace QmlDesigner {
constexpr void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError)
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
= &QLocalSocket::error;
#else
= &QLocalSocket::errorOccurred;
#endif
NodeInstanceClientProxy::NodeInstanceClientProxy(QObject *parent)
: QObject(parent),
m_inputIoDevice(nullptr),
@@ -93,7 +100,7 @@ void NodeInstanceClientProxy::initializeSocket()
{
QLocalSocket *localSocket = new QLocalSocket(this);
connect(localSocket, &QIODevice::readyRead, this, &NodeInstanceClientProxy::readDataStream);
connect(localSocket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error),
connect(localSocket, LocalSocketErrorFunction,
QCoreApplication::instance(), &QCoreApplication::quit);
connect(localSocket, &QLocalSocket::disconnected, QCoreApplication::instance(), &QCoreApplication::quit);
localSocket->connectToServer(QCoreApplication::arguments().at(1), QIODevice::ReadWrite | QIODevice::Unbuffered);

View File

@@ -324,8 +324,15 @@ void ConnectionClient::connectStandardOutputAndError(QProcess *process) const
void ConnectionClient::connectLocalSocketError() const
{
constexpr void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError)
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
= &QLocalSocket::error;
#else
= &QLocalSocket::errorOccurred;
#endif
connect(m_localSocket,
QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error),
LocalSocketErrorFunction,
this,
&ConnectionClient::printLocalSocketError);
}

View File

@@ -81,8 +81,15 @@ public:
private:
void connectToLocalServer(const QString &connectionName)
{
constexpr void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError)
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
= &QLocalSocket::error;
#else
= &QLocalSocket::errorOccurred;
#endif
QObject::connect(&m_localSocket,
QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error),
LocalSocketErrorFunction,
[&] (QLocalSocket::LocalSocketError) {
qWarning() << "ConnectionServer error:" << m_localSocket.errorString() << connectionName;
});

View File

@@ -387,8 +387,14 @@ void QmlDebugConnection::newConnection()
connect(socket, &QLocalSocket::disconnected, this, &QmlDebugConnection::socketDisconnected,
Qt::QueuedConnection);
connect(socket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error),
this, [this](QLocalSocket::LocalSocketError error) {
constexpr void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError)
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
= &QLocalSocket::error;
#else
= &QLocalSocket::errorOccurred;
#endif
connect(socket, LocalSocketErrorFunction, this, [this](QLocalSocket::LocalSocketError error) {
emit logError(socketErrorToString(static_cast<QAbstractSocket::SocketError>(error)));
socketDisconnected();
}, Qt::QueuedConnection);

View File

@@ -62,11 +62,17 @@ void QdbWatcher::start(RequestType requestType)
void QdbWatcher::startPrivate()
{
constexpr void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError)
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
= &QLocalSocket::error;
#else
= &QLocalSocket::errorOccurred;
#endif
m_socket = std::unique_ptr<QLocalSocket>(new QLocalSocket());
connect(m_socket.get(), &QLocalSocket::connected,
this, &QdbWatcher::handleWatchConnection);
connect(m_socket.get(), static_cast<void (QLocalSocket::*)
(QLocalSocket::LocalSocketError)>(&QLocalSocket::error),
connect(m_socket.get(), LocalSocketErrorFunction,
this, &QdbWatcher::handleWatchError);
m_socket->connectToServer(qdbSocketName);
}

View File

@@ -207,8 +207,15 @@ void ServerMode::connectToServer()
auto socket = new QLocalSocket(m_cmakeProcess.get());
connect(socket, &QLocalSocket::readyRead, this, &ServerMode::handleRawCMakeServerData);
connect(socket, QOverload<QLocalSocket::LocalSocketError>::of(&QLocalSocket::error),
this, [this, socket]() {
constexpr void (QLocalSocket::*LocalSocketErrorFunction)(QLocalSocket::LocalSocketError)
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
= &QLocalSocket::error;
#else
= &QLocalSocket::errorOccurred;
#endif
connect(socket, LocalSocketErrorFunction, this, [this, socket]() {
reportError(socket->errorString());
m_cmakeSocket = nullptr;
socket->disconnect();