ImagingTools Core SDK
CQtResourceFilePersistenceComp.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// Qt includes
6#include <QtCore/QFileInfo>
7
8// ACF includes
9#include <ilog/TLoggerCompWrap.h>
10#include <ifile/IFilePersistence.h>
11#include <ifile/IFilePersistenceInfo.h>
12#include <iprm/IParamsManager.h>
13
14
15namespace imtsdl
16{
17
20 public ilog::CLoggerComponentBase,
21 virtual public ifile::IFilePersistence,
22 virtual public ifile::IFilePersistenceInfo
23{
24public:
25
26
27public:
28 typedef ilog::CLoggerComponentBase BaseClass;
29
30 I_BEGIN_COMPONENT(CQtResourceFilePersistenceComp)
31 I_REGISTER_INTERFACE(ifile::IFileTypeInfo)
32 I_REGISTER_INTERFACE(ifile::IFilePersistence)
33 I_REGISTER_INTERFACE(ifile::IFilePersistenceInfo)
34 I_END_COMPONENT
35
36 // reimplemented (ifile::IFilePersistence)
37 virtual bool IsOperationSupported(
38 const istd::IChangeable* dataObjectPtr,
39 const QString* filePathPtr = NULL,
40 int flags = -1,
41 bool beQuiet = true) const override;
42 virtual OperationState LoadFromFile(
43 istd::IChangeable& data,
44 const QString& filePath = QString(),
45 ibase::IProgressManager* progressManagerPtr = NULL) const override;
46 virtual OperationState SaveToFile(
47 const istd::IChangeable& data,
48 const QString& filePath = QString(),
49 ibase::IProgressManager* progressManagerPtr = NULL) const override;
50
51 // reimplemented (ifile::IFileTypeInfo)
52 virtual bool GetFileExtensions(QStringList& result, const istd::IChangeable* dataObjectPtr = NULL, int flags = -1, bool doAppend = false) const override;
53 virtual QString GetTypeDescription(const QString* extensionPtr = NULL) const override;
54
55 // reimplemented (ifile::IFilePersistenceInfo)
56 virtual QString GetLastFilePath(OperationType operationType = OT_UNKNOWN, PathType pathType = PT_COMPLETE) const override;
57
58protected:
59 QString GetPathForType(const QFileInfo& fileInfo, PathType pathType) const;
60
61private:
62
63 mutable QFileInfo m_lastOpenInfo;
64 mutable QFileInfo m_lastSaveInfo;
65};
66
67
68} // namespace imtsdl