ImagingTools Core SDK
CQuickObjectCompBase.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtQuick/QQuickItem>
7
8// ACF includes
9#include <icomp/CComponentBase.h>
10
11// ImtCore includes
12#include <imtqml/IQuickObject.h>
13
14
15namespace imtqml
16{
17
18
23 public icomp::CComponentBase,
24 virtual public imtqml::IQuickObject
25{
26public:
27 typedef icomp::CComponentBase BaseClass;
28
29 I_BEGIN_BASE_COMPONENT(CQuickObjectCompBase);
30 I_REGISTER_INTERFACE(imtqml::IQuickObject);
31 I_ASSIGN(m_pathToQmlAttrPtr, "QmlFilePath", "This path used for load QML file", true, "");
32 I_END_COMPONENT;
33
35
36 // reimplemented (imtgui::IQuickObject)
37 virtual bool IsItemCreated() const override;
38 virtual bool CreateQuickItem(QQuickItem* parentPtr) override;
39 virtual bool DestroyQuickItem() override;
40 virtual QQuickItem* GetQuickItem() const override;
41 virtual void OnTryClose(bool* ignoredPtr = nullptr) override;
42
43protected:
44 virtual bool InitializeEngine(QQmlEngine& qmlEngine) const;
49 virtual void OnItemCreated();
50
55 virtual void OnItemDestroyed();
56
60 virtual QQuickItem* CreateItem(QQmlEngine* enginePtr) const;
61
65 virtual QQuickItem* CreateItem(QQmlEngine* enginePtr, const QVariantMap& initialProperties) const;
66
67protected:
68 QQuickItem* m_quickItemPtr;
69
70protected:
71 I_ATTR(QString, m_pathToQmlAttrPtr);
72};
73
74
75} // namespace imtqml
76
77
virtual QQuickItem * CreateItem(QQmlEngine *enginePtr) const
virtual void OnItemDestroyed()
virtual QQuickItem * CreateItem(QQmlEngine *enginePtr, const QVariantMap &initialProperties) const