ImagingTools Core SDK
CReportDocumentTiffPersistenceComp.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 <icomp/CComponentBase.h>
7#include <ilog/TLoggerCompWrap.h>
8#include <ifile/IFilePersistence.h>
9
10// ImtCore includes
11#include <imtreportgui/CReportSceneBuilder.h>
12
13
14namespace imtreportgui
15{
16
17
18class CReportDocumentTiffPersistenceComp:
19 public ilog::CLoggerComponentBase,
20 virtual public ifile::IFilePersistence
21{
22public:
23 typedef ilog::CLoggerComponentBase BaseClass;
24
25 I_BEGIN_COMPONENT(CReportDocumentTiffPersistenceComp);
26 I_REGISTER_INTERFACE(ifile::IFilePersistence);
27 I_REGISTER_INTERFACE(ifile::IFileTypeInfo);
28 I_ASSIGN(m_saveFirstPageOnlyAttrPtr, "SaveFirstPageOnly", "Save first report page only", true, false);
29 I_ASSIGN(m_resolutionDpiAttrPtr, "ResolutionDpi", "Resolution in DPI", true, 150);
30 I_END_COMPONENT;
31
32 // reimplemented (ifile::IFilePersistence)
33 bool IsOperationSupported(
34 const istd::IChangeable* dataObjectPtr,
35 const QString* filePathPtr = NULL,
36 int flags = -1,
37 bool beQuiet = true) const override;
38 OperationState LoadFromFile(istd::IChangeable& data,
39 const QString& filePath = QString(),
40 ibase::IProgressManager* progressManagerPtr = NULL) const override;
41 OperationState SaveToFile(const istd::IChangeable& data,
42 const QString& filePath = QString(),
43 ibase::IProgressManager* progressManagerPtr = NULL) const override;
44
45 // reimplemented (ifile::IFileTypeInfo)
46 virtual bool GetFileExtensions(QStringList& result, const istd::IChangeable* dataObjectPtr = NULL, int flags = -1, bool doAppend = false) const override;
47 virtual QString GetTypeDescription(const QString* extensionPtr = NULL) const override;
48
49private:
50 OperationState SaveToFile(const CReportSceneBuilder::ReportScenes scenes, const QString& filePath) const;
51
52private:
53 I_ATTR(bool, m_saveFirstPageOnlyAttrPtr);
54 I_ATTR(int, m_resolutionDpiAttrPtr);
55};
56
57
58} // namespace imtreportgui
59
60