ImagingTools Core SDK
CAdministrationObserverQmlComp.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// ACF includes
6#include <iprm/IIdParam.h>
7#include <iauth/ILogin.h>
8#include <ibase/ICommandsProvider.h>
9#include <ilog/TLoggerCompWrap.h>
10#include <imod/IModel.h>
11#include <imod/TSingleModelObserverBase.h>
12#include <iqtgui/TMakeIconProviderCompWrap.h>
13#include <iqtgui/CHierarchicalCommand.h>
14
15// ImtCore includes
16#include <imtbase/CTreeItemModel.h>
17#include <imtbase/TModelUpdateBinder.h>
18#include <imtqml/IQuickObject.h>
19#include <imtcom/IServerConnectionInterface.h>
20
21
22namespace imtauthgui
23{
24
25
26class CAdministrationObserverQmlComp:
27 public QObject,
28 public iqtgui::TMakeIconProviderCompWrap<ilog::CLoggerComponentBase>,
29 public ibase::ICommandsProvider
30{
31 Q_OBJECT
32public:
33 typedef ilog::CLoggerComponentBase BaseClass;
34
35 I_BEGIN_COMPONENT(CAdministrationObserverQmlComp);
36 I_REGISTER_INTERFACE(ibase::ICommandsProvider);
37 I_ASSIGN(m_loginCompPtr, "Login", "Login", false, "Login");
38 I_ASSIGN(m_serverConnectionParamCompPtr, "WebSocketUrlParam", "Web socket URL param", false, "WebSocketUrlParam");
39 I_ASSIGN(m_quickObjectCompPtr, "QuickObject", "Main QML Component", true, "QuickObject");
40 I_ASSIGN(m_quickItemCreatedCompPtr, "QuickItemCreated", "Quick item created", false, "QuickItemCreated");
41 I_ASSIGN_TO(m_quickItemCreatedModelCompPtr, m_quickItemCreatedCompPtr, false);
42 I_ASSIGN(m_productIdAttrPtr, "ProductId", "Product-ID", false, "");
43 I_END_COMPONENT;
44
45 CAdministrationObserverQmlComp();
46
47protected:
48 // reimpemented (ibase::ICommandsProvider)
49 virtual const ibase::IHierarchicalCommand* GetCommands() const override;
50
51 // reimplemented (icomp::CComponentBase)
52 virtual void OnComponentCreated() override;
53 virtual void OnComponentDestroyed() override;
54
55private Q_SLOTS:
56 void OnCommandsModelChanged(QVariant variant);
57 void OnTriggered();
58
59private:
60 void OnLoginUpdate(const istd::IChangeable::ChangeSet& changeSet, const iauth::ILogin* objectPtr);
61 void OnQuickItemCreatedUpdate(const istd::IChangeable::ChangeSet& changeSet, const iprm::IEnableableParam* objectPtr);
62 void OnServerConnectionParamUpdate(const istd::IChangeable::ChangeSet& changeSet, const imtcom::IServerConnectionInterface* objectPtr);
63
64private:
65 I_REF(iauth::ILogin, m_loginCompPtr);
66 I_REF(imtqml::IQuickObject, m_quickObjectCompPtr);
67 I_REF(iprm::IEnableableParam, m_quickItemCreatedCompPtr);
68 I_REF(imod::IModel, m_quickItemCreatedModelCompPtr);
69 I_REF(imtcom::IServerConnectionInterface, m_serverConnectionParamCompPtr);
70 I_ATTR(QByteArray, m_productIdAttrPtr);
71
75 iqtgui::CHierarchicalCommand m_commandsList;
76};
77
78
79} // namespace imtauthgui
80
81
Interface for describing server connection configuration with multi-protocol support.
Authentication UI Components Module.