ImagingTools Core SDK
CPluginBasedTaskManagerGuiComp.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// ImtCore includes
6#include <imtbase/PluginInterface.h>
7#include <imtbase/TPluginManagerCompBase.h>
8
9// Acula includes
10#include <imthypegui/ITaskEditorPlugin.h>
11#include <imthypegui/CTaskManagerGuiComp.h>
12
13
14IMT_DECLARE_PLUGIN_INTERFACE(TaskEditor, imthypegui::ITaskEditorPlugin);
15
16
17namespace imthypegui
18{
19
20
21class CPluginBasedTaskManagerGuiComp:
22 public imtbase::TPluginManagerCompBase<ITaskEditorPlugin,
23 IMT_CREATE_PLUGIN_FUNCTION(TaskEditor),
24 IMT_DESTROY_PLUGIN_FUNCTION(TaskEditor),
25 ilog::TLoggerCompWrap<CTaskManagerGuiComp>>
26{
27 Q_OBJECT
28public:
29 typedef imtbase::TPluginManagerCompBase<ITaskEditorPlugin,
30 IMT_CREATE_PLUGIN_FUNCTION(TaskEditor),
31 IMT_DESTROY_PLUGIN_FUNCTION(TaskEditor),
32 ilog::TLoggerCompWrap<CTaskManagerGuiComp>> BaseClass;
33
34 I_BEGIN_COMPONENT(CPluginBasedTaskManagerGuiComp);
35 I_END_COMPONENT;
36
37 CPluginBasedTaskManagerGuiComp();
38
39protected:
40 // reimplemented (TPluginManagerCompBase)
41 virtual void OnPluginsCreated() override;
42
43 // reimplemented (iqtgui::CGuiComponentBase)
44 virtual void OnGuiCreated() override;
45 virtual void OnGuiDestroyed() override;
46 virtual void OnGuiRetranslate() override;
47
48private:
49 typedef QMap<QByteArray, ITaskEditorPlugin*> PluginsMap;
50 PluginsMap m_pluginsMap;
51};
52
53
54} // namespace imthypegui
55
56