ImagingTools Core SDK
CClientUserContextComp.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 <QtCore/QObject>
7#include <QtQml/QQmlEngine>
8
9// ACF includes
10#include <iqt/ITranslationManager.h>
11#include <icomp/CComponentBase.h>
12#include <iprm/ISelectionParam.h>
13#include <iprm/IEnableableParam.h>
14
15// ImtCore includes
16#include <imtbase/TModelUpdateBinder.h>
17#include <imtqml/IQuickObject.h>
18
19
20namespace imtqml
21{
22
23
24class CClientUserContextComp: public QObject, public icomp::CComponentBase
25{
26 Q_OBJECT
27 Q_PROPERTY(QString language READ GetLanguage WRITE SetLanguage NOTIFY LanguageChanged)
28
29public:
30 typedef icomp::CComponentBase BaseClass;
31
32 I_BEGIN_COMPONENT(CClientUserContextComp);
33 I_ASSIGN(m_languageParamPtr, "LanguageParam", "Language selection param", false, "LanguageParam");
34 I_ASSIGN(m_quickObjectCompPtr, "QuickObject", "Main QML Component", true, "QuickObject");
35 I_ASSIGN(m_quickObjectCreatedCompPtr, "QuickObjectCreated", "Quick object created", true, "QuickObjectCreated");
36 I_ASSIGN(m_translationManagerCompPtr, "TranslationManager", "Translation manager", false, "TranslationManager");
37 I_END_COMPONENT;
38
39 CClientUserContextComp();
40
41Q_SIGNALS:
42 void LanguageChanged();
43
44public:
45 void OnLanguageChanged(const istd::IChangeable::ChangeSet& changeSet, const iprm::ISelectionParam* objectPtr);
46 void OnQuickObjectCreatedChanged(const istd::IChangeable::ChangeSet& changeSet, const iprm::IEnableableParam* objectPtr);
47
48 // reimplemented (icomp::CComponentBase)
49 virtual void OnComponentCreated() override;
50 virtual void OnComponentDestroyed() override;
51
52public:
53 void SetLanguage(QString translation);
54 QString GetLanguage() const;
55
56private:
57 I_REF(iqt::ITranslationManager, m_translationManagerCompPtr);
58 I_REF(iprm::ISelectionParam, m_languageParamPtr);
59 I_REF(imtqml::IQuickObject, m_quickObjectCompPtr);
60 I_REF(iprm::IEnableableParam, m_quickObjectCreatedCompPtr);
61
62 QQmlEngine* m_qmlEngine;
63 QString m_language;
66};
67
68
69} // namespace imtqml
70
71