Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqmlpreviewclient.cpp
Go to the documentation of this file.
1// Copyright (C) 2018 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant
4
5
7#include <private/qpacket_p.h>
8
9#include <QtCore/qurl.h>
10#include <QtCore/qfile.h>
11#include <QtCore/qfileinfo.h>
12#include <QtCore/qdir.h>
13#include <QtQml/qqmlfile.h>
14
16
17QQmlPreviewClient::QQmlPreviewClient(QQmlDebugConnection *connection)
18 : QQmlDebugClient(*(new QQmlPreviewClientPrivate(connection)))
19{
20}
21
22void QQmlPreviewClient::messageReceived(const QByteArray &message)
23{
24 QPacket packet(connection()->currentDataStreamVersion(), message);
25
26 qint8 command;
27 packet >> command;
28
29 switch (command) {
30 case Error: {
31 QString seviceError;
32 packet >> seviceError;
33 emit error(seviceError);
34 break;
35 }
36 case Request: {
37 QString fileName;
38 packet >> fileName;
39 emit request(fileName);
40 break;
41 }
42 case Fps: {
43 FpsInfo info;
44 packet >> info.numSyncs >> info.minSync >> info.maxSync >> info.totalSync
45 >> info.numRenders >> info.minRender >> info.maxRender >> info.totalRender;
46 emit fps(info);
47 break;
48 }
49 case Confirmation: {
50 Settings settings;
51 packet >> settings.enableInPlaceUpdates;
52 emit confirmation(settings);
53 break;
54 }
55 case HotReloadFailure: {
56 QString reason;
57 packet >> reason;
58 emit hotReloadFailure(reason);
59 break;
60 }
61 default:
62 emit error(QString::fromLatin1("Unknown command received: %1").arg(command));
63 break;
64 }
65}
66
67void QQmlPreviewClient::sendDirectory(const QString &path, const QStringList &entries)
68{
69 QPacket packet(connection()->currentDataStreamVersion());
70 packet << static_cast<qint8>(Directory) << path << entries;
71 sendMessage(packet.data());
72}
73
74void QQmlPreviewClient::sendFile(const QString &path, const QByteArray &contents)
75{
76 QPacket packet(connection()->currentDataStreamVersion());
77 packet << static_cast<qint8>(File) << path << contents;
78 sendMessage(packet.data());
79}
80
81void QQmlPreviewClient::sendError(const QString &path)
82{
83 QPacket packet(connection()->currentDataStreamVersion());
84 packet << static_cast<qint8>(Error) << path;
85 sendMessage(packet.data());
86}
87
89{
90 QPacket packet(connection()->currentDataStreamVersion());
91 packet << static_cast<qint8>(Configuration) << config.enableInPlaceUpdates;
92 sendMessage(packet.data());
93}
94
95void QQmlPreviewClient::triggerLoad(const QUrl &url)
96{
97 QPacket packet(connection()->currentDataStreamVersion());
98 packet << static_cast<qint8>(Load) << url;
99 sendMessage(packet.data());
100}
101
103{
104 QPacket packet(connection()->currentDataStreamVersion());
105 packet << static_cast<qint8>(Rerun);
106 sendMessage(packet.data());
107}
108
110{
111 QPacket packet(connection()->currentDataStreamVersion());
112 packet << static_cast<qint8>(Zoom) << factor;
113 sendMessage(packet.data());
114}
115
117{
118 QPacket packet(connection()->currentDataStreamVersion());
119 packet << static_cast<qint8>(AnimationSpeed) << factor;
120 sendMessage(packet.data());
121}
122
123QT_END_NAMESPACE
124
125#include "moc_qqmlpreviewclient_p.cpp"
void messageReceived(const QByteArray &message) override
void triggerZoom(float factor)
void triggerAnimationSpeed(float factor)
void sendFile(const QString &path, const QByteArray &contents)
void sendError(const QString &path)
void sendDirectory(const QString &path, const QStringList &entries)
void sendConfiguration(const Settings &settings)
void triggerLoad(const QUrl &url)
Combined button and popup list for selecting options.