ImagingTools Core SDK
CReportDocumentViewComp.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 <ibase/ICommandsProvider.h>
7#include <imtreportgui/CReportDocumentPdfPersistenceComp.h>
8#include <imtreportgui/CReportDocumentTiffPersistenceComp.h>
9#include <iqtgui/TDesignerGuiObserverCompBase.h>
10#include <iqtgui/CHierarchicalCommand.h>
11
12// ImtCore includes
13#include <imtreport/IReportDocument.h>
14#include <GeneratedFiles/imtreportgui/ui_CReportDocumentViewComp.h>
15
16
17class QGraphicsRectItem;
18class QGraphicsItemGroup;
19
20
21namespace imtreportgui
22{
23
24
25class CReportDocumentViewComp:
26 public iqtgui::TDesignerGuiObserverCompBase<Ui::CReportDocumentViewComp, imtreport::IReportDocument>,
27 virtual public ibase::ICommandsProvider,
28 virtual public ilog::IMessageConsumer
29{
30 Q_OBJECT
31
32public:
33 typedef iqtgui::TDesignerGuiObserverCompBase<Ui::CReportDocumentViewComp, imtreport::IReportDocument> BaseClass;
34
35 I_BEGIN_COMPONENT(CReportDocumentViewComp);
36 I_REGISTER_INTERFACE(ibase::ICommandsProvider);
37 I_REGISTER_INTERFACE(ilog::IMessageConsumer);
38 I_ASSIGN(m_pdfExportCompPtr, "ReportDocumentPdfPersistence", "Export report document to PDF", false, "ReportDocumentPdfPersistence");
39 I_ASSIGN(m_tiffExportCompPtr, "ReportDocumentTiffPersistence", "Export report document to TIFF", false, "ReportDocumentTiffPersistence");
40 I_END_COMPONENT;
41
42 CReportDocumentViewComp();
43
44 // reimplemented (ibase::ICommandsProvider)
45 virtual const ibase::IHierarchicalCommand* GetCommands() const override;
46
47 // reimplemented (ilog::IMessageConsumer)
48 virtual bool IsMessageSupported(
49 int messageCategory = -1,
50 int messageId = -1,
51 const istd::IInformationProvider* messagePtr = NULL) const override;
52 virtual void AddMessage(const MessagePtr& messagePtr) override;
53
54protected:
55 // reimplemented (iqtgui::TGuiObserverWrap)
56 virtual void UpdateGui(const istd::IChangeable::ChangeSet& changeSet) override;
57
58 // reimplemented (iqtgui::CGuiComponentBase)
59 virtual void OnGuiCreated() override;
60 virtual void OnGuiDestroyed() override;
61 virtual void OnGuiRetranslate() override;
62
63private Q_SLOTS:
64 void OnShowGrid();
65 void OnExportToPdf();
66 void OnExportToTiff();
67
68private:
69 void CreateSceneDecoration(QGraphicsScene& scene);
70 void ShowSceneDecoration(const bool showBorder, const bool showGrid);
71
72private:
73 // commands
74 iqtgui::CHierarchicalCommand m_rootCommands;
75 iqtgui::CHierarchicalCommand m_fileCommands;
76 iqtgui::CHierarchicalCommand m_viewCommands;
77 iqtgui::CHierarchicalCommand m_exportToPdfCommand;
78 iqtgui::CHierarchicalCommand m_exportToTiffCommand;
79 iqtgui::CHierarchicalCommand m_showGridCommand;
80
81 typedef QPair<QGraphicsRectItem*, QGraphicsItemGroup*> SceneDecoration; // scene border and scene grid
82 typedef QVector<SceneDecoration> SceneDecorations;
83 SceneDecorations m_sceneDecorations;
84 bool m_isGridShown;
85
86private:
87 I_REF(ifile::IFilePersistence, m_pdfExportCompPtr);
88 I_REF(ifile::IFilePersistence, m_tiffExportCompPtr);
89};
90
91
92} // namespace imtreportgui
93
94
95