7#ifndef KISRESOURCESTORAGE_H
8#define KISRESOURCESTORAGE_H
10#include <QSharedPointer>
11#include <QScopedPointer>
19#include <klocalizedstring.h>
21#include <kritaresources_export.h>
37 return new T(location);
87 virtual QString
url()
const = 0;
88 virtual QString
type()
const = 0;
108 AdobeBrushLibrary = 4,
109 AdobeStyleLibrary = 5,
115 switch (storageType) {
116 case StorageType::Unknown:
117 return i18n(
"Unknown");
118 case StorageType::Folder:
119 return i18n(
"Folder");
120 case StorageType::Bundle:
121 return i18n(
"Bundle");
122 case StorageType::AdobeBrushLibrary:
123 return i18n(
"Adobe Brush Library");
124 case StorageType::AdobeStyleLibrary:
125 return i18n(
"Adobe Style Library");
126 case StorageType::FontStorage:
127 return i18n(
"Font Storage");
128 case StorageType::Memory:
129 return i18n(
"Memory");
131 return i18n(
"Invalid");
137 switch (storageType) {
138 case StorageType::Unknown:
140 case StorageType::Folder:
142 case StorageType::Bundle:
144 case StorageType::AdobeBrushLibrary:
145 return (
"Adobe Brush Library");
146 case StorageType::AdobeStyleLibrary:
147 return (
"Adobe Style Library");
148 case StorageType::FontStorage:
149 return (
"Font Storage");
150 case StorageType::Memory:
168 QString name()
const;
171 QString location()
const;
177 StorageType type()
const;
180 QImage thumbnail()
const;
184 QDateTime timestamp()
const;
188 QDateTime timeStampForResource(
const QString &resourceType,
const QString &filename)
const;
191 ResourceItem resourceItem(
const QString &url);
197 QString resourceMd5(
const QString &url);
204 QString resourceFilePath(
const QString &url);
231 bool importResource(
const QString &url, QIODevice *device);
239 bool exportResource(
const QString &url, QIODevice *device);
243 bool supportsVersioning()
const;
267 void setMetaData(
const QString &key,
const QVariant &
value);
269 QVariant metaData(
const QString &key)
const;
276 friend class TestResourceLocator;
280 void setStorageId(
int storageId);
284 QScopedPointer<Private>
d;
291 if (storage.isNull()) {
292 dbg.nospace() <<
"[RESOURCESTORAGE] NULL";
295 dbg.nospace() <<
"[RESOURCESTORAGE] Name: " << storage->name()
296 <<
" Location: " << storage->location()
297 <<
" Valid: " << storage->valid()
299 <<
" Timestamp: " << storage->timestamp()
300 <<
" Pointer: " << storage.data();
345 static bool addVersionedResource(
const QString &saveLocation,
KoResourceSP resource,
int minVersion);
348 std::function<
bool(QString)> checkExists);
362 void next()
override;
363 QString
url()
const override;
364 QString
type()
const override;
float value(const T *src, size_t ch)
QDebug operator<<(QDebug dbg, const KisResourceStorageSP storage)
QSharedPointer< KisResourceStorage > KisResourceStorageSP
PythonPluginManager * instance
The KisResourceCacheDb class encapsulates the database that caches information about the resources av...
virtual ~ResourceIterator()
virtual void next()=0
The iterator is only valid if next() has been called at least once.
virtual QString url() const =0
virtual KoResourceSP resourceImpl() const =0
This only loads the resource when called.
virtual bool hasNext() const =0
virtual int guessedVersion() const
KoResourceSP m_cachedResource
virtual QDateTime lastModified() const =0
QString m_cachedResourceUrl
virtual QString type() const =0
virtual void next()=0
The iterator is only valid if next() has been called at least once.
virtual KisTagSP tag() const =0
A tag object on which we can set properties and which we can save.
virtual bool hasNext() const =0
static const QString s_meta_author
static const QString s_meta_title
static const QString s_meta_user_defined
static const QString s_meta_creation_date
static const QString s_meta_value
static const QString s_meta_email
static QString storageTypeToString(StorageType storageType)
static const QString s_meta_license
static const QString s_xmlns_meta
static QString storageTypeToUntranslatedString(StorageType storageType)
bool addTag(const QString &resourceType, KisTagSP tag)
static const QString s_meta_description
static const QString s_meta_dc_date
static const QString s_meta_website
static const QString s_meta_generator
static const QString s_meta_version
static const QString s_meta_name
QScopedPointer< Private > d
static const QString s_xmlns_dc
static const QString s_meta_initial_creator
static const QString s_meta_creator
virtual KisStoragePlugin * create(const QString &)
virtual ~KisStoragePluginFactoryBase()
KisStoragePlugin * create(const QString &location) override
QMap< KisResourceStorage::StorageType, KisStoragePluginFactoryBase * > m_storageFactoryMap
int guessedVersion() const override
const QVector< VersionedResourceEntry > m_entries
QString url() const override
QVector< VersionedResourceEntry >::const_iterator m_it
QDateTime lastModified() const override
KisVersionedStorageIterator(const QVector< VersionedResourceEntry > &entries, KisStoragePlugin *_q)
bool hasNext() const override
QVector< VersionedResourceEntry >::const_iterator m_begin
void next() override
The iterator is only valid if next() has been called at least once.
QVector< VersionedResourceEntry >::const_iterator m_chunkStart
QVector< VersionedResourceEntry >::const_iterator m_end
QString type() const override
QSharedPointer< KisResourceStorage::ResourceIterator > versions() const override
KoResourceSP resourceImpl() const override
This only loads the resource when called.
A resource item is simply an entry in the storage,.
bool operator()(const VersionedResourceEntry &lhs, const VersionedResourceEntry &rhs) const
bool operator()(const VersionedResourceEntry &lhs, const VersionedResourceEntry &rhs) const