Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRequiredResourcesOperators::detail Namespace Reference

Functions

void KRITARESOURCES_EXPORT addResourceOrWarnIfNotLoaded (KoResourceLoadResult loadedResource, QList< KoResourceSP > *resources, KisResourcesInterfaceSP resourcesInterface)
 
void KRITARESOURCES_EXPORT assertInGuiThread ()
 
KisResourcesInterfaceSP KRITARESOURCES_EXPORT createLocalResourcesStorage (const QList< KoResourceSP > &resources)
 
bool KRITARESOURCES_EXPORT isLocalResourcesStorage (KisResourcesInterfaceSP resourcesInterface)
 

Function Documentation

◆ addResourceOrWarnIfNotLoaded()

void KisRequiredResourcesOperators::detail::addResourceOrWarnIfNotLoaded ( KoResourceLoadResult loadedResource,
QList< KoResourceSP > * resources,
KisResourcesInterfaceSP resourcesInterface )

Some resources, like filter configurations may be assigned to the layers without being loaded to the resource system. In such a case, the embedded resources will be loaded here, when we make a snapshot.

Definition at line 32 of file KisRequiredResourcesOperators.cpp.

33{
34 switch (loadedResource.type()) {
36 KIS_SAFE_ASSERT_RECOVER(loadedResource.resource())
37 {
38 // XXX: remove once KoResourceLoadResult takes std::monostate
39 qWarning() << "Attempt to retrieve a resource that is null";
40 return;
41 }
42 *resources << loadedResource.resource();
43 break;
51 const KoEmbeddedResource embeddedResource = loadedResource.embeddedResource();
52 const KoResourceSignature sig = embeddedResource.signature();
53
55
56 if (!loader) {
57 qWarning() << "createLocalResourcesSnapshot: Could not create a loader for resource" << sig;
58 return;
59 }
60
61 QByteArray ba = embeddedResource.data();
62 QBuffer buf(&ba);
63 buf.open(QBuffer::ReadOnly);
64
65 KoResourceSP resource = loader->load(sig.filename, buf, resourcesInterface);
66
67 if (resource) {
68 resource->setMD5Sum(sig.md5sum);
69 resource->setVersion(0);
70 resource->setDirty(false);
71
72 *resources << resource;
73 } else {
74 qWarning() << "createLocalResourcesSnapshot: Could not import embedded resource" << sig;
75 }
76 break;
77 }
79 qWarning() << "createLocalResourcesSnapshot: failed to load a linked resource:" << loadedResource.signature();
80 break;
81 }
82}
static QString mimeTypeForFile(const QString &file, bool checkExistingFiles=true)
Find the mimetype for the given filename. The filename must include a suffix.
The KisResourceLoader class is an abstract interface class that must be implemented by actual resourc...
bool load(KoResourceSP resource, QIODevice &dev, KisResourcesInterfaceSP resourcesInterface)
static KisResourceLoaderRegistry * instance()
KisResourceLoaderBase * loader(const QString &resourceType, const QString &mimetype) const
const KoResourceSignature & signature() const
QByteArray data() const
KoResourceSP resource() const noexcept
KoEmbeddedResource embeddedResource() const noexcept
KoResourceSignature signature() const
A simple wrapper object for the main information about the resource.
#define KIS_SAFE_ASSERT_RECOVER(cond)
Definition kis_assert.h:126

References KoEmbeddedResource::data(), KoResourceLoadResult::EmbeddedResource, KoResourceLoadResult::embeddedResource(), KoResourceLoadResult::ExistingResource, KoResourceLoadResult::FailedLink, KoResourceSignature::filename, KisResourceLoaderRegistry::instance(), KIS_SAFE_ASSERT_RECOVER, KisResourceLoaderBase::load(), KisResourceLoaderRegistry::loader(), KoResourceSignature::md5sum, KisMimeDatabase::mimeTypeForFile(), KoResourceLoadResult::resource(), KoEmbeddedResource::signature(), KoResourceLoadResult::signature(), KoResourceLoadResult::type(), and KoResourceSignature::type.

◆ assertInGuiThread()

void KisRequiredResourcesOperators::detail::assertInGuiThread ( )

Definition at line 22 of file KisRequiredResourcesOperators.cpp.

23{
24 KIS_SAFE_ASSERT_RECOVER_RETURN(QThread::currentThread() == qApp->thread());
25}
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References KIS_SAFE_ASSERT_RECOVER_RETURN.

◆ createLocalResourcesStorage()

KisResourcesInterfaceSP KisRequiredResourcesOperators::detail::createLocalResourcesStorage ( const QList< KoResourceSP > & resources)

Definition at line 27 of file KisRequiredResourcesOperators.cpp.

28{
30}

◆ isLocalResourcesStorage()

bool KisRequiredResourcesOperators::detail::isLocalResourcesStorage ( KisResourcesInterfaceSP resourcesInterface)

Definition at line 17 of file KisRequiredResourcesOperators.cpp.

18{
19 return !resourcesInterface.dynamicCast<KisLocalStrokeResources>().isNull();
20}
a KisResourcesInterface-like resources storage for preloaded resources