ImagingTools Core SDK
CQmldirFilePersistenceComp.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 imtsdlgenqml
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(CQmldirFilePersistenceComp)
31 I_REGISTER_INTERFACE(ifile::IFileTypeInfo)
32 I_REGISTER_INTERFACE(ifile::IFilePersistence)
33 I_REGISTER_INTERFACE(ifile::IFilePersistenceInfo)
34
35 I_ASSIGN(m_paramsManagerFactComp, "ParamsFactory", "Simple params set factory. Used to create object's entries", true, "ParamsFactory")
36 I_END_COMPONENT
37
38 // reimplemented (ifile::IFilePersistence)
39 virtual bool IsOperationSupported(
40 const istd::IChangeable* dataObjectPtr,
41 const QString* filePathPtr = NULL,
42 int flags = -1,
43 bool beQuiet = true) const override;
44 virtual OperationState LoadFromFile(
45 istd::IChangeable& data,
46 const QString& filePath = QString(),
47 ibase::IProgressManager* progressManagerPtr = NULL) const override;
48 virtual OperationState SaveToFile(
49 const istd::IChangeable& data,
50 const QString& filePath = QString(),
51 ibase::IProgressManager* progressManagerPtr = NULL) const override;
52
53 // reimplemented (ifile::IFileTypeInfo)
54 virtual bool GetFileExtensions(QStringList& result, const istd::IChangeable* dataObjectPtr = NULL, int flags = -1, bool doAppend = false) const override;
55 virtual QString GetTypeDescription(const QString* extensionPtr = NULL) const override;
56
57 // reimplemented (ifile::IFilePersistenceInfo)
58 virtual QString GetLastFilePath(OperationType operationType = OT_UNKNOWN, PathType pathType = PT_COMPLETE) const override;
59
60protected:
61 QString GetPathForType(const QFileInfo& fileInfo, PathType pathType) const;
62
63private:
64 I_FACT(iprm::IParamsManager, m_paramsManagerFactComp);
65
66 mutable QFileInfo m_lastOpenInfo;
67 mutable QFileInfo m_lastSaveInfo;
68};
69
70
71} // namespace imtsdlgenqml