ACF $AcfVersion:0$
CBitmapLoaderComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QDir>
7#include <QtCore/QStringList>
8
9// ACF includes
14#include <iimg/iimg.h>
15
16
17namespace iimg
18{
19
20
28 public QObject,
30 virtual public ifile::IFilePersistence,
32{
33 Q_OBJECT
34
35public:
37
39 {
40 MI_BAD_FORMAT = 0xe1a7d0
41 };
42
43 I_BEGIN_COMPONENT(CBitmapLoaderComp);
44 I_REGISTER_INTERFACE(ifile::IFileTypeInfo);
45 I_REGISTER_INTERFACE(ifile::IFilePersistence);
46 I_REGISTER_INTERFACE(ifile::IDeviceBasedPersistence);
47 I_ASSIGN_MULTI_0(m_extensionFilterAttrPtr, "ExtensionFilter", "Optional filter of extensions, lowercase as returned by Qt", false)
48 I_END_COMPONENT;
49
50 // reimplemented (ifile::IFilePersistence)
52 const istd::IChangeable* dataObjectPtr,
53 const QString* filePathPtr = NULL,
54 int flags = -1,
55 bool beQuiet = true) const override;
56 virtual ifile::IFilePersistence::OperationState LoadFromFile(
57 istd::IChangeable& data,
58 const QString& filePath = QString(),
59 ibase::IProgressManager* progressManagerPtr = NULL) const override;
60 virtual ifile::IFilePersistence::OperationState SaveToFile(
61 const istd::IChangeable& data,
62 const QString& filePath = QString(),
63 ibase::IProgressManager* progressManagerPtr = NULL) const override;
64
65 // reimplemented (ifile::IDeviceBasedPersistence)
67 const istd::IChangeable& dataObject,
68 const QIODevice& device,
69 int deviceOperation) const override;
70 virtual ifile::IDeviceBasedPersistence::OperationState ReadFromDevice(
71 istd::IChangeable& data,
72 QIODevice& device,
73 ibase::IProgressManager* progressManagerPtr = nullptr) const override;
74 virtual ifile::IDeviceBasedPersistence::OperationState WriteToDevice(
75 const istd::IChangeable& data,
76 QIODevice& device,
77 ibase::IProgressManager* progressManagerPtr = nullptr) const override;
78
79 // reimplemented (ifile::IFileTypeInfo)
80 virtual bool GetFileExtensions(
81 QStringList& result,
82 const istd::IChangeable* dataObjectPtr = NULL,
83 int flags = -1,
84 bool doAppend = false) const override;
85
86 virtual QString GetTypeDescription(const QString* extensionPtr = NULL) const override;
87
88protected:
90 const istd::IChangeable* dataObjectPtr,
91 const QString* filePathPtr,
92 bool forLoading,
93 bool forSaving,
94 bool useLog) const;
95
96private:
97 I_MULTIATTR(QByteArray, m_extensionFilterAttrPtr);
98};
99
100
101} // namespace iimg
102
103
104
105
Interface providing reading and writing data objects via I/O-devices.
OperationState
Result of device-related operation.
Interface providing loading and saving of data objects.
Provide loading and saving of objects.
Bitmap loader component implementing interfaces ifile::IFilePersistence.
virtual ifile::IFilePersistence::OperationState LoadFromFile(istd::IChangeable &data, const QString &filePath=QString(), ibase::IProgressManager *progressManagerPtr=NULL) const override
This function loads data data from file filePath.
virtual ifile::IDeviceBasedPersistence::OperationState ReadFromDevice(istd::IChangeable &data, QIODevice &device, ibase::IProgressManager *progressManagerPtr=nullptr) const override
This function loads data data from the given I/O-device device.
virtual ifile::IFilePersistence::OperationState SaveToFile(const istd::IChangeable &data, const QString &filePath=QString(), ibase::IProgressManager *progressManagerPtr=NULL) const override
This function saves data data to file filePath.
virtual ifile::IDeviceBasedPersistence::OperationState WriteToDevice(const istd::IChangeable &data, QIODevice &device, ibase::IProgressManager *progressManagerPtr=nullptr) const override
This function writes data data to the given I/O-device device.
virtual bool GetFileExtensions(QStringList &result, const istd::IChangeable *dataObjectPtr=NULL, int flags=-1, bool doAppend=false) const override
Get file extensions supported by this loader.
virtual bool IsDeviceOperationSupported(const istd::IChangeable &dataObject, const QIODevice &device, int deviceOperation) const override
Returns true if object dataObject can be processed via defined I/O-device.
bool IsOperationSupportedIntern(const istd::IChangeable *dataObjectPtr, const QString *filePathPtr, bool forLoading, bool forSaving, bool useLog) const
virtual bool IsOperationSupported(const istd::IChangeable *dataObjectPtr, const QString *filePathPtr=NULL, int flags=-1, bool beQuiet=true) const override
Returns true if object dataObject can be loaded/saved.
virtual QString GetTypeDescription(const QString *extensionPtr=NULL) const override
Get description of object type associated with single extension.
ilog::CLoggerComponentBase BaseClass
Template wrapper adding comprehensive logging functionality to components.
#define NULL
Definition istd.h:74
This namespace contains basic implementations of standard primitives on the component level.
Contains interfaces and implementations of file system related components.
Contains the system indenendent definitions of image and related themes.
Definition CBitmap.h:17
Standard library.
Definition IComponent.h:17