Krita Source Code Documentation
Loading...
Searching...
No Matches
KisStoragePlugin.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2018 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#ifndef KISSTORAGEPLUGIN_H
8#define KISSTORAGEPLUGIN_H
9
10#include <QScopedPointer>
11#include <QString>
12
13#include <KisResourceStorage.h>
14#include "kritaresources_export.h"
15
16class QDir;
17
25class KRITARESOURCES_EXPORT KisStoragePlugin
26{
27public:
28 KisStoragePlugin(const QString &location);
29 virtual ~KisStoragePlugin();
30
31 virtual KisResourceStorage::ResourceItem resourceItem(const QString &url) = 0;
32
35 virtual KoResourceSP resource(const QString &url);
36 virtual QString resourceMd5(const QString &url);
37 virtual QString resourceFilePath(const QString &url);
38 virtual bool loadVersionedResource(KoResourceSP resource) = 0;
39 virtual bool supportsVersioning() const;
40 virtual QSharedPointer<KisResourceStorage::ResourceIterator> resources(const QString &resourceType) = 0;
41 virtual QSharedPointer<KisResourceStorage::TagIterator> tags(const QString &resourceType) = 0;
42
43 virtual bool saveAsNewVersion(const QString &resourceType, KoResourceSP resource) {Q_UNUSED(resourceType); Q_UNUSED(resource); return false;}
44 virtual bool importResource(const QString &url, QIODevice *device) {Q_UNUSED(url); Q_UNUSED(device); return false;}
45 virtual bool exportResource(const QString &url, QIODevice *device) {Q_UNUSED(url); Q_UNUSED(device); return false;}
46 virtual bool addResource(const QString &resourceType, KoResourceSP resource) {Q_UNUSED(resourceType); Q_UNUSED(resource); return false;}
47 virtual QImage thumbnail() const { return QImage(); }
48
49 virtual void setMetaData(const QString &key, const QVariant &value) {Q_UNUSED(key); Q_UNUSED(value);}
50 virtual QStringList metaDataKeys() const { return QStringList(); }
51 virtual QVariant metaData(const QString &key) const { Q_UNUSED(key); return QString(); }
52
53 QDateTime timestamp();
54
55 virtual bool isValid() const;
56
57protected:
58 friend class TestBundleStorage;
59 QString location() const;
60
68 void sanitizeResourceFileNameCase(KoResourceSP resource, const QDir &parentDir);
69
70private:
71 class Private;
72 QScopedPointer<Private> d;
73};
74
75#endif // KISSTORAGEPLUGIN_H
float value(const T *src, size_t ch)
QList< QString > QStringList
virtual bool exportResource(const QString &url, QIODevice *device)
virtual bool saveAsNewVersion(const QString &resourceType, KoResourceSP resource)
virtual void setMetaData(const QString &key, const QVariant &value)
virtual KisResourceStorage::ResourceItem resourceItem(const QString &url)=0
virtual bool addResource(const QString &resourceType, KoResourceSP resource)
virtual QImage thumbnail() const
virtual QSharedPointer< KisResourceStorage::ResourceIterator > resources(const QString &resourceType)=0
virtual bool loadVersionedResource(KoResourceSP resource)=0
QScopedPointer< Private > d
virtual QVariant metaData(const QString &key) const
virtual QSharedPointer< KisResourceStorage::TagIterator > tags(const QString &resourceType)=0
virtual QStringList metaDataKeys() const
virtual bool importResource(const QString &url, QIODevice *device)
A resource item is simply an entry in the storage,.