ImagingTools Core SDK
CMultiDocumentWorkspaceGuiComp.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 <iauth/ILogin.h>
7#include <ilog/IMessageConsumer.h>
8#include <iqtgui/CHierarchicalCommand.h>
9
10// ImtCore includes
11#include <imtgui/CMultiDocumentWorkspaceGuiCompBase.h>
12#include <imtgui/TStandardDocumentViewDecorator.h>
13#include <GeneratedFiles/imtgui/ui_CStandardDocumentViewDecorator.h>
14
15
16namespace imtgui
17{
18
19
20class CMultiDocumentWorkspaceGuiComp: public imtgui::CMultiDocumentWorkspaceGuiCompBase
21{
22 Q_OBJECT
23
24public:
25 typedef imtgui::CMultiDocumentWorkspaceGuiCompBase BaseClass;
26
27 I_BEGIN_COMPONENT(CMultiDocumentWorkspaceGuiComp);
28 I_ASSIGN(m_loginCompPtr, "Login", "Login component", false, "Login");
29 I_ASSIGN(m_logCompPtr, "Log", "Message consumer component", false, "Log");
30 I_ASSIGN(m_tabStyleSheetPropertyAttrPtr, "TabStyleSheetProperty", "Enable a stylesheet with a property for the tab", true, "");
31 I_END_COMPONENT;
32
33protected:
34 // reimplemented (imtgui::CMultiDocumentWorkspaceGuiCompBase)
35 virtual IDocumentViewDecorator* CreateDocumentViewDecorator(
36 istd::IPolymorphic* viewPtr,
37 QWidget* parentWidgetPtr,
38 const ifile::IFilePersistence* persistencePtr) override;
39
40 // reimplemented (idoc::CMultiDocumentManagerBase)
41 virtual QString GetSaveFilePath(const QByteArray& documentTypeId, const istd::IChangeable* dataObjectPtr, const QString& currentFilePath) const override;
42 virtual QStringList GetOpenFilePaths(const QByteArray* documentTypeIdPtr = NULL) const override;
43
44 // reimplemented (iqt:CGuiComponentBase)
45 virtual void OnGuiCreated() override;
46
47protected Q_SLOTS:
48 void OnSaveDocument();
49
50private:
51 enum DataRole
52 {
53 DR_PATH = Qt::UserRole,
54 DR_TYPE_ID
55 };
56
57 friend class MdiDocumentViewDecorator;
58 friend class TStandardDocumentViewDecorator<CMultiDocumentWorkspaceGuiComp, Ui::CStandardDocumentViewDecorator>;
59
60 I_ATTR(QByteArray, m_tabStyleSheetPropertyAttrPtr);
61 I_REF(iauth::ILogin, m_loginCompPtr);
62 I_REF(ilog::IMessageConsumer, m_logCompPtr);
63};
64
65
66class MdiDocumentViewDecorator:
67 public TStandardDocumentViewDecorator<CMultiDocumentWorkspaceGuiComp, Ui::CStandardDocumentViewDecorator>
68{
69public:
70 typedef TStandardDocumentViewDecorator<CMultiDocumentWorkspaceGuiComp, Ui::CStandardDocumentViewDecorator> BaseClass;
71
72 MdiDocumentViewDecorator(
73 CMultiDocumentWorkspaceGuiComp* parentPtr,
74 istd::IPolymorphic* viewPtr,
75 QWidget* parentWidgetPtr,
76 const ifile::IFilePersistence* persistencePtr,
77 const DecoratorConfiguration& configuration);
78};
79
80
81} // namespace imtgui
82
83