1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2019 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of Qt Creator. 7 ** 8 ** Commercial License Usage 9 ** Licensees holding valid commercial Qt licenses may use this file in 10 ** accordance with the commercial license agreement provided with the 11 ** Software or, alternatively, in accordance with the terms contained in 12 ** a written agreement between you and The Qt Company. For licensing terms 13 ** and conditions see https://www.qt.io/terms-conditions. For further 14 ** information use the contact form at https://www.qt.io/contact-us. 15 ** 16 ** GNU General Public License Usage 17 ** Alternatively, this file may be used under the terms of the GNU 18 ** General Public License version 3 as published by the Free Software 19 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 20 ** included in the packaging of this file. Please review the following 21 ** information to ensure the GNU General Public License requirements will 22 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 23 ** 24 ****************************************************************************/ 25 26 #pragma once 27 28 #include "qmlpreviewconnectionmanager.h" 29 #include "qmlpreviewfileontargetfinder.h" 30 #include "qmlpreviewplugin.h" 31 #include <projectexplorer/runconfiguration.h> 32 33 namespace QmlPreview { 34 35 struct QmlPreviewRunnerSetting { 36 ProjectExplorer::RunControl *runControl = nullptr; 37 QmlPreviewFileLoader fileLoader; 38 QmlPreviewFileClassifier fileClassifier; 39 QmlPreviewFpsHandler fpsHandler; 40 float zoom = 1.0; 41 QString language; 42 QmlDebugTranslationClientCreator createDebugTranslationClientMethod; 43 }; 44 45 class QmlPreviewRunner : public ProjectExplorer::RunWorker 46 { 47 Q_OBJECT 48 49 public: 50 QmlPreviewRunner(const QmlPreviewRunnerSetting &settings); 51 52 void setServerUrl(const QUrl &serverUrl); 53 QUrl serverUrl() const; 54 55 signals: 56 void loadFile(const QString &previewedFile, const QString &changedFile, 57 const QByteArray &contents); 58 void language(const QString &locale); 59 void zoom(float zoomFactor); 60 void rerun(); 61 void ready(); 62 private: 63 void start() override; 64 void stop() override; 65 66 Internal::QmlPreviewConnectionManager m_connectionManager; 67 }; 68 69 class LocalQmlPreviewSupport : public ProjectExplorer::SimpleTargetRunner 70 { 71 Q_OBJECT 72 73 public: 74 LocalQmlPreviewSupport(ProjectExplorer::RunControl *runControl); 75 }; 76 77 } // namespace QmlPreview 78