Files
qt-creator/src/plugins/qmlpreview/qmlpreviewplugin.h
Tim Jenssen 0108a85c82 qmlpreview: prepare plugin to have an external client
- export the plugin andd add client creator API to be able to implement
  external debugtranslationclients
- use the private/qqmldebugtranslationprotocol_p.h from Qt5::QmlDebugPrivate
- have a basic client implementation which cares about changing language
- remove out of date elide warning implementation
- remove old ui
- remove the menu entry

The old client implementation is incompatible with the will be introduced
service and there was never an officially released compatible service.
Therefore we can remove the old client implementation without causing
any harm.

Change-Id: I26b5e8a99ba30ae6377443b3fffb05901b1cac28
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2021-04-15 09:32:01 +00:00

120 lines
4.9 KiB
C++

/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#pragma once
#include "qmlpreview_global.h"
#include "qmldebugtranslationclient.h"
#include <projectexplorer/runcontrol.h>
#include <extensionsystem/iplugin.h>
#include <qmljs/qmljsdialect.h>
#include <QUrl>
#include <QThread>
namespace Core { class IEditor; }
namespace QmlDebug { class QmlDebugConnection; }
namespace QmlPreview {
typedef bool (*QmlPreviewFileClassifier) (const QString &);
typedef QByteArray (*QmlPreviewFileLoader)(const QString &, bool *);
typedef void (*QmlPreviewFpsHandler)(quint16[8]);
typedef QList<ProjectExplorer::RunControl *> QmlPreviewRunControlList;
typedef std::function<std::unique_ptr<QmlDebugTranslationClient>(QmlDebug::QmlDebugConnection *)> QmlDebugTranslationClientCreator;
class QMLPREVIEW_EXPORT QmlPreviewPlugin : public ExtensionSystem::IPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlPreview.json")
Q_PROPERTY(QString previewedFile READ previewedFile WRITE setPreviewedFile
NOTIFY previewedFileChanged)
Q_PROPERTY(QmlPreview::QmlPreviewRunControlList runningPreviews READ runningPreviews
NOTIFY runningPreviewsChanged)
Q_PROPERTY(QmlPreview::QmlPreviewFileLoader fileLoader READ fileLoader
WRITE setFileLoader NOTIFY fileLoaderChanged)
Q_PROPERTY(QmlPreview::QmlPreviewFileClassifier fileClassifer READ fileClassifier
WRITE setFileClassifier NOTIFY fileClassifierChanged)
Q_PROPERTY(QmlPreview::QmlPreviewFpsHandler fpsHandler READ fpsHandler
WRITE setFpsHandler NOTIFY fpsHandlerChanged)
Q_PROPERTY(float zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
Q_PROPERTY(QString localeIsoCode READ localeIsoCode WRITE setLocaleIsoCode NOTIFY localeIsoCodeChanged)
public:
~QmlPreviewPlugin() override;
bool initialize(const QStringList &arguments, QString *errorString) override;
ShutdownFlag aboutToShutdown() override;
QVector<QObject *> createTestObjects() const override;
QString previewedFile() const;
void setPreviewedFile(const QString &previewedFile);
QmlPreviewRunControlList runningPreviews() const;
void setFileLoader(QmlPreviewFileLoader fileLoader);
QmlPreviewFileLoader fileLoader() const;
QmlPreviewFileClassifier fileClassifier() const;
void setFileClassifier(QmlPreviewFileClassifier fileClassifer);
float zoomFactor() const;
void setZoomFactor(float zoomFactor);
QmlPreview::QmlPreviewFpsHandler fpsHandler() const;
void setFpsHandler(QmlPreview::QmlPreviewFpsHandler fpsHandler);
QString localeIsoCode() const;
void setLocaleIsoCode(const QString &localeIsoCode);
void setQmlDebugTranslationClientCreator(QmlDebugTranslationClientCreator creator);
signals:
void checkDocument(const QString &name, const QByteArray &contents,
QmlJS::Dialect::Enum dialect);
void updatePreviews(const QString &previewedFile, const QString &changedFile,
const QByteArray &contents);
void previewedFileChanged(const QString &previewedFile);
void runningPreviewsChanged(const QmlPreviewRunControlList &runningPreviews);
void rerunPreviews();
void fileLoaderChanged(QmlPreviewFileLoader fileLoader);
void fileClassifierChanged(QmlPreviewFileClassifier fileClassifer);
void fpsHandlerChanged(QmlPreview::QmlPreviewFpsHandler fpsHandler);
void zoomFactorChanged(float zoomFactor);
void localeIsoCodeChanged(const QString &localeIsoCode);
private:
class QmlPreviewPluginPrivate *d = nullptr;
};
} // namespace QmlPreview
Q_DECLARE_METATYPE(QmlPreview::QmlPreviewFileLoader)
Q_DECLARE_METATYPE(QmlPreview::QmlPreviewFileClassifier)
Q_DECLARE_METATYPE(QmlPreview::QmlPreviewFpsHandler)
Q_DECLARE_METATYPE(QmlPreview::QmlPreviewRunControlList)