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

#include <kis_multinode_property.h>

+ Inheritance diagram for LayerPropertyAdapter:

Public Types

typedef MultinodePropertyBoolConnector< LayerPropertyAdapterConnectorType
 
typedef bool ValueType
 

Public Member Functions

 LayerPropertyAdapter (const QString &propName)
 
QString name () const
 
ValueType propForNode (KisNodeSP node)
 
void setPropForNode (KisNodeSP node, const ValueType &value, int index)
 
- Public Member Functions inherited from BaseAdapter
void setNumNodes (int numNodes)
 

Static Public Member Functions

static KisBaseNode::PropertyList adaptersList (KisNodeList nodes)
 
- Static Public Member Functions inherited from BaseAdapter
static KisNodeList filterNodes (KisNodeList nodes)
 

Static Public Attributes

static const bool forceIgnoreByDefault = false
 

Private Attributes

QString m_propName
 

Additional Inherited Members

- Public Attributes inherited from BaseAdapter
int m_numNodes = 0
 

Detailed Description

Definition at line 124 of file kis_multinode_property.h.

Member Typedef Documentation

◆ ConnectorType

◆ ValueType

Definition at line 125 of file kis_multinode_property.h.

Constructor & Destructor Documentation

◆ LayerPropertyAdapter()

LayerPropertyAdapter::LayerPropertyAdapter ( const QString & propName)
inline

Definition at line 129 of file kis_multinode_property.h.

129: m_propName(propName) {}

Member Function Documentation

◆ adaptersList()

static KisBaseNode::PropertyList LayerPropertyAdapter::adaptersList ( KisNodeList nodes)
inlinestatic

Definition at line 166 of file kis_multinode_property.h.

166 {
167 QHash<QString, std::pair<KisBaseNode::Property, int>> adapters;
168
169 Q_FOREACH (KisNodeSP node, nodes) {
170 int sortingIndex = 0;
172 Q_FOREACH (const KisBaseNode::Property &prop, props) {
173 if (prop.state.type() != QVariant::Bool) continue;
174
175 if (!adapters.contains(prop.id)) {
176 adapters.insert(prop.id, std::make_pair(prop, sortingIndex));
177 } else {
178 adapters[prop.id].second = qMin(adapters[prop.id].second, sortingIndex);
179 }
180 sortingIndex++;
181 }
182 }
183
184 QMultiMap<int, KisBaseNode::Property> sortedAdapters;
185 auto it = adapters.constBegin();
186 auto end = adapters.constEnd();
187 for (; it != end; ++it) {
189 int sortingIndex = 0;
190 std::tie(prop, sortingIndex) = it.value();
191
192 sortedAdapters.insert(sortingIndex, prop);
193 }
194
195 return sortedAdapters.values();
196 }
virtual PropertyList sectionModelProperties() const

References KisBaseNode::Property::id, KisBaseNode::sectionModelProperties(), and KisBaseNode::Property::state.

◆ name()

QString LayerPropertyAdapter::name ( ) const
inline

Definition at line 162 of file kis_multinode_property.h.

162 {
163 return m_propName;
164 }

References m_propName.

◆ propForNode()

ValueType LayerPropertyAdapter::propForNode ( KisNodeSP node)
inline

Definition at line 131 of file kis_multinode_property.h.

131 {
133 Q_FOREACH (const KisBaseNode::Property &prop, props) {
134 if (prop.name == m_propName) {
135 return prop.state.toBool();
136 }
137 }
138
139 return false;
140 }

References m_propName, KisBaseNode::Property::name, KisBaseNode::sectionModelProperties(), and KisBaseNode::Property::state.

◆ setPropForNode()

void LayerPropertyAdapter::setPropForNode ( KisNodeSP node,
const ValueType & value,
int index )
inline

Definition at line 142 of file kis_multinode_property.h.

142 {
143 Q_UNUSED(index);
144 bool stateChanged = false;
145
147 KisBaseNode::PropertyList::iterator it = props.begin();
148 KisBaseNode::PropertyList::iterator end = props.end();
149 for (; it != end; ++it) {
150 if (it->name == m_propName) {
151 it->state = value;
152 stateChanged = true;
153 break;
154 }
155 }
156
157 if (stateChanged) {
158 node->setSectionModelProperties(props);
159 }
160 }
float value(const T *src, size_t ch)
virtual void setSectionModelProperties(const PropertyList &properties)

References m_propName, KisBaseNode::sectionModelProperties(), KisBaseNode::setSectionModelProperties(), and value().

Member Data Documentation

◆ forceIgnoreByDefault

const bool LayerPropertyAdapter::forceIgnoreByDefault = false
static

Definition at line 127 of file kis_multinode_property.h.

◆ m_propName

QString LayerPropertyAdapter::m_propName
private

Definition at line 199 of file kis_multinode_property.h.


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