diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index f504dede055..dcaadba0c11 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -748,15 +748,22 @@ extend_qtc_plugin(QmlDesigner extend_qtc_plugin(QmlDesigner CONDITION TARGET Qt::WebSockets + DEFINES QT_WEBSOCKET_ENABLED + DEPENDS + Qt::WebSockets +) + +extend_qtc_plugin(QmlDesigner SOURCES_PREFIX components/devicesharing DEPENDS - QtCreator::QrCodeGenerator Qt::WebSockets + QtCreator::QrCodeGenerator SOURCES device.cpp device.h deviceinfo.cpp deviceinfo.h devicemanager.cpp devicemanager.h devicemanagermodel.cpp devicemanagermodel.h devicemanagerwidget.cpp devicemanagerwidget.h + websocketmock.h ) extend_qtc_plugin(QmlDesigner diff --git a/src/plugins/qmldesigner/components/devicesharing/device.cpp b/src/plugins/qmldesigner/components/devicesharing/device.cpp index b7a77a9d911..4cb7b61f536 100644 --- a/src/plugins/qmldesigner/components/devicesharing/device.cpp +++ b/src/plugins/qmldesigner/components/devicesharing/device.cpp @@ -5,7 +5,8 @@ #include #include -#include + +#include "websocketmock.h" namespace QmlDesigner::DeviceShare { diff --git a/src/plugins/qmldesigner/components/devicesharing/device.h b/src/plugins/qmldesigner/components/devicesharing/device.h index feae5b2bc71..be12febcb6e 100644 --- a/src/plugins/qmldesigner/components/devicesharing/device.h +++ b/src/plugins/qmldesigner/components/devicesharing/device.h @@ -3,14 +3,13 @@ #pragma once -#include #include -#include #include #include "deviceinfo.h" +class QWebSocket; namespace QmlDesigner::DeviceShare { class Device : public QObject diff --git a/src/plugins/qmldesigner/components/devicesharing/devicemanager.cpp b/src/plugins/qmldesigner/components/devicesharing/devicemanager.cpp index a57691aaa7a..6fbb110c025 100644 --- a/src/plugins/qmldesigner/components/devicesharing/devicemanager.cpp +++ b/src/plugins/qmldesigner/components/devicesharing/devicemanager.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "devicemanager.h" - +#include "device.h" #include "devicemanagerwidget.h" #include @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff --git a/src/plugins/qmldesigner/components/devicesharing/devicemanager.h b/src/plugins/qmldesigner/components/devicesharing/devicemanager.h index 9385d73b165..0e42c2ba2bb 100644 --- a/src/plugins/qmldesigner/components/devicesharing/devicemanager.h +++ b/src/plugins/qmldesigner/components/devicesharing/devicemanager.h @@ -3,16 +3,17 @@ #pragma once -#include -#include -#include - #include -#include "device.h" +#include "deviceinfo.h" +#include + +QT_BEGIN_NAMESPACE +class QUdpSocket; +QT_END_NAMESPACE namespace QmlDesigner::DeviceShare { - +class Device; class DeviceManagerWidget; class DeviceManager : public QObject diff --git a/src/plugins/qmldesigner/components/devicesharing/devicemanagermodel.cpp b/src/plugins/qmldesigner/components/devicesharing/devicemanagermodel.cpp index 11dad8e3064..54c678a17b4 100644 --- a/src/plugins/qmldesigner/components/devicesharing/devicemanagermodel.cpp +++ b/src/plugins/qmldesigner/components/devicesharing/devicemanagermodel.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "devicemanagermodel.h" +#include "device.h" #include "devicemanager.h" namespace QmlDesigner::DeviceShare { diff --git a/src/plugins/qmldesigner/components/devicesharing/websocketmock.h b/src/plugins/qmldesigner/components/devicesharing/websocketmock.h new file mode 100644 index 00000000000..974a8d6ac30 --- /dev/null +++ b/src/plugins/qmldesigner/components/devicesharing/websocketmock.h @@ -0,0 +1,45 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#ifdef QT_WEBSOCKET_ENABLED +#include +#else +#include + +// QWebSocket mock. +// It is used to avoid linking against QtWebSockets. +namespace QWebSocketProtocol { +enum CloseCode { CloseCodeNormal = 1000 }; +enum Version { Unknown = 0, Version13 = 13 }; +} // namespace QWebSocketProtocol + +class QWebSocket : public QObject +{ + Q_OBJECT +public: + QWebSocket() = default; + ~QWebSocket() = default; + + void setOutgoingFrameSize(int) {} + void setParent(QObject *) {} + void open(const QUrl &) {} + void close() {} + void close(QWebSocketProtocol::CloseCode, const QString &) {} + void abort() {} + void flush() {} + void ping() {} + bool isValid() {return true;} + QAbstractSocket::SocketState state() {return QAbstractSocket::ConnectedState;} + void sendTextMessage(const QString &){} + void sendBinaryMessage(const QByteArray &){} + +signals: + void pong(quint64, const QByteArray &); + void textMessageReceived(const QString &); + void disconnected(); + void connected(); +}; + +#endif // QT_WEBSOCKETS_LIB diff --git a/src/plugins/qmldesigner/components/runmanager/runmanager.cpp b/src/plugins/qmldesigner/components/runmanager/runmanager.cpp index ead3621f326..631db7f6eb7 100644 --- a/src/plugins/qmldesigner/components/runmanager/runmanager.cpp +++ b/src/plugins/qmldesigner/components/runmanager/runmanager.cpp @@ -8,6 +8,8 @@ #include +#include + namespace QmlDesigner { Q_LOGGING_CATEGORY(runManagerLog, "qtc.designer.runManager", QtWarningMsg)