summaryrefslogtreecommitdiff
path: root/src/plugins/scxmleditor/plugin_interface/genericscxmlplugin.h
blob: aeba92874c78aa63f71cf881c6691fd41a29095b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#pragma once

#include "isceditor.h"
#include "mytypes.h"

#include <QObject>

namespace ScxmlEditor {

namespace PluginInterface {

class ScxmlUiFactory;
class SCAttributeItemDelegate;
class SCAttributeItemModel;
class ScxmlDocument;
class SCGraphicsItemProvider;
class SCShapeProvider;
class SCUtilsProvider;

class GenericScxmlPlugin : public QObject, public ISCEditor
{
    Q_OBJECT
    Q_INTERFACES(ScxmlEditor::PluginInterface::ISCEditor)

public:
    GenericScxmlPlugin(QObject *parent = nullptr);
    ~GenericScxmlPlugin() override;

    void init(ScxmlUiFactory *factory) override;
    void detach() override;
    void documentChanged(DocumentChangeType type, ScxmlDocument *doc) override;
    void refresh() override;

private:
    ScxmlUiFactory *m_factory = nullptr;
    SCAttributeItemDelegate *m_attributeItemDelegate = nullptr;
    SCAttributeItemModel *m_attributeItemModel = nullptr;
    SCGraphicsItemProvider *m_graphicsItemProvider = nullptr;
    SCShapeProvider *m_shapeProvider = nullptr;
    SCUtilsProvider *m_utilsProvider = nullptr;
};

} // namespace PluginInterface
} // namespace ScxmlEditor