Krita Source Code Documentation
Loading...
Searching...
No Matches
KisEmbeddedResourceStorageProxy Struct Reference

#include <KisEmbeddedResourceStorageProxy.h>

Public Member Functions

void addResource (KoResourceSP resource)
 
KisResourcesInterfaceSP detachedResourcesInterface ()
 
 KisEmbeddedResourceStorageProxy (const QString &storageLocation)
 
KisResourcesInterfaceSP resourcesInterface ()
 

Private Attributes

QSharedPointer< KisLocalStrokeResourcesm_fallbackResourcesInterface
 
KisResourceModel m_gradientsModel
 
KisResourceModel m_patternsModel
 
KisResourcesInterfaceSP m_rootResourcesInterface
 
QString m_storageLocation
 
KisResourceModel m_stylesModel
 

Detailed Description

When PSD is loaded into a temporary document, e.g. in a thumbnailer thread, we don't have access to the resources database. Therefore we need to load the embedded resources into a local storage

Definition at line 19 of file KisEmbeddedResourceStorageProxy.h.

Constructor & Destructor Documentation

◆ KisEmbeddedResourceStorageProxy()

KisEmbeddedResourceStorageProxy::KisEmbeddedResourceStorageProxy ( const QString & storageLocation)

Definition at line 12 of file KisEmbeddedResourceStorageProxy.cpp.

13 : m_storageLocation(storageLocation),
17{
18 if (m_storageLocation.isEmpty()) {
21 } else {
23 }
24}
static KisResourcesInterfaceSP instance()
a KisResourcesInterface-like resources storage for preloaded resources
const QString LayerStyles
const QString Patterns
const QString Gradients
QSharedPointer< KisLocalStrokeResources > m_fallbackResourcesInterface

References KisGlobalResourcesInterface::instance(), m_fallbackResourcesInterface, m_rootResourcesInterface, and m_storageLocation.

Member Function Documentation

◆ addResource()

void KisEmbeddedResourceStorageProxy::addResource ( KoResourceSP resource)

Definition at line 26 of file KisEmbeddedResourceStorageProxy.cpp.

27{
29 if (resource->resourceType().first == ResourceType::LayerStyles) {
30 resource = resource->clone();
31 } else {
32 m_fallbackResourcesInterface->addResource(resource);
33 }
34 } else {
35 if (resource->resourceType().first == ResourceType::LayerStyles) {
37 } else if (resource->resourceType().first == ResourceType::Patterns) {
39 } else if (resource->resourceType().first == ResourceType::Gradients) {
41 } else {
42 qWarning() << "WARNING: fallback resource proxy is not implemented for type" << resource->resourceType().first;
43 KIS_SAFE_ASSERT_RECOVER_NOOP(0 && "fallback resource proxy is not implemented");
44 }
45 }
46}
bool addResource(KoResourceSP resource, const QString &storageId=QString("")) override
addResource adds the given resource to the database and storage. If the resource already exists in th...
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130

References KisResourceModel::addResource(), ResourceType::Gradients, KIS_SAFE_ASSERT_RECOVER_NOOP, ResourceType::LayerStyles, m_fallbackResourcesInterface, m_gradientsModel, m_patternsModel, m_storageLocation, m_stylesModel, and ResourceType::Patterns.

◆ detachedResourcesInterface()

KisResourcesInterfaceSP KisEmbeddedResourceStorageProxy::detachedResourcesInterface ( )

Return the resources interface that contains a snapshot of all the resources that were added to the proxy by then. The returned interface will not be linked to the proxy anymore.

Use this interface for initializing layers styles or paintop preset, which you plan to add to the proxy as well. It will let you avoid cycling shared pointer links (and, therefore, memory leaks).

PS: When the document is not temporary and has an officially registered storage, then resourcesInterface() and detachedResourcesInterface() return the same interface, which is KisGlobalResourcesInterface.

Definition at line 53 of file KisEmbeddedResourceStorageProxy.cpp.

54{
58}
QSharedPointer< KisResourcesInterface > KisResourcesInterfaceSP

References m_fallbackResourcesInterface, and m_rootResourcesInterface.

◆ resourcesInterface()

KisResourcesInterfaceSP KisEmbeddedResourceStorageProxy::resourcesInterface ( )

Returns the resources interface that lets you access all the embedded resources added to the proxy, either before this call, or after it.

Definition at line 48 of file KisEmbeddedResourceStorageProxy.cpp.

49{
51}

References m_rootResourcesInterface.

Member Data Documentation

◆ m_fallbackResourcesInterface

QSharedPointer<KisLocalStrokeResources> KisEmbeddedResourceStorageProxy::m_fallbackResourcesInterface
private

Definition at line 48 of file KisEmbeddedResourceStorageProxy.h.

◆ m_gradientsModel

KisResourceModel KisEmbeddedResourceStorageProxy::m_gradientsModel
private

Definition at line 53 of file KisEmbeddedResourceStorageProxy.h.

◆ m_patternsModel

KisResourceModel KisEmbeddedResourceStorageProxy::m_patternsModel
private

Definition at line 52 of file KisEmbeddedResourceStorageProxy.h.

◆ m_rootResourcesInterface

KisResourcesInterfaceSP KisEmbeddedResourceStorageProxy::m_rootResourcesInterface
private

Definition at line 49 of file KisEmbeddedResourceStorageProxy.h.

◆ m_storageLocation

QString KisEmbeddedResourceStorageProxy::m_storageLocation
private

Definition at line 47 of file KisEmbeddedResourceStorageProxy.h.

◆ m_stylesModel

KisResourceModel KisEmbeddedResourceStorageProxy::m_stylesModel
private

Definition at line 51 of file KisEmbeddedResourceStorageProxy.h.


The documentation for this struct was generated from the following files: