Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMultinodeProperty< PropertyAdapter > Class Template Reference

#include <kis_multinode_property.h>

+ Inheritance diagram for KisMultinodeProperty< PropertyAdapter >:

Public Types

typedef PropertyAdapter::ConnectorType ConnectorType
 
typedef PropertyAdapter::ValueType ValueType
 

Public Member Functions

void connectAutoEnableWidget (QWidget *widget) override
 
void connectIgnoreCheckBox (QCheckBox *ignoreBox) override
 
void connectValueChangedSignal (const QObject *receiver, const char *method, Qt::ConnectionType type=Qt::AutoConnection) override
 
KUndo2CommandcreatePostExecutionUndoCommand () override
 
bool haveTheOnlyNode () const override
 
bool isIgnored () const override
 
 KisMultinodeProperty (KisNodeList nodes, PropertyAdapter adapter=PropertyAdapter())
 
void rereadCurrentValue () override
 
bool savedValuesDiffer () const override
 
void setIgnored (bool value) override
 
void setValue (const ValueType &value)
 
ValueType value () const
 
 ~KisMultinodeProperty () override
 
- Public Member Functions inherited from KisMultinodePropertyInterface
 KisMultinodePropertyInterface ()
 
virtual ~KisMultinodePropertyInterface ()
 

Private Member Functions

ValueType defaultValue () const
 

Private Attributes

QScopedPointer< MultinodePropertyConnectorInterfacem_connector
 
ValueType m_currentValue
 
bool m_isIgnored
 
KisNodeList m_nodes
 
PropertyAdapter m_propAdapter
 
QList< ValueTypem_savedValues
 
bool m_savedValuesDiffer
 

Detailed Description

template<class PropertyAdapter>
class KisMultinodeProperty< PropertyAdapter >

Definition at line 484 of file kis_multinode_property.h.

Member Typedef Documentation

◆ ConnectorType

template<class PropertyAdapter >
typedef PropertyAdapter::ConnectorType KisMultinodeProperty< PropertyAdapter >::ConnectorType

Definition at line 488 of file kis_multinode_property.h.

◆ ValueType

template<class PropertyAdapter >
typedef PropertyAdapter::ValueType KisMultinodeProperty< PropertyAdapter >::ValueType

Definition at line 487 of file kis_multinode_property.h.

Constructor & Destructor Documentation

◆ KisMultinodeProperty()

template<class PropertyAdapter >
KisMultinodeProperty< PropertyAdapter >::KisMultinodeProperty ( KisNodeList nodes,
PropertyAdapter adapter = PropertyAdapter() )
inline

Definition at line 490 of file kis_multinode_property.h.

491 : m_nodes(PropertyAdapter::filterNodes(nodes)),
492 m_savedValuesDiffer(false),
493 m_propAdapter(adapter),
494 m_connector(new ConnectorType(this))
495 {
496 Q_ASSERT(!m_nodes.isEmpty());
497 m_propAdapter.setNumNodes(m_nodes.size());
498
499 ValueType lastValue = m_propAdapter.propForNode(m_nodes.first());
500 Q_FOREACH (KisNodeSP node, m_nodes) {
501 ValueType value = m_propAdapter.propForNode(node);
502 m_savedValues.append(value);
503
504 if (value != lastValue) {
505 m_savedValuesDiffer = true;
506 }
507
508 lastValue = value;
509 }
510
512 m_nodes.size() > 1 && PropertyAdapter::forceIgnoreByDefault ?
513 true : m_savedValuesDiffer;
514
516 }
PropertyAdapter::ConnectorType ConnectorType
QScopedPointer< MultinodePropertyConnectorInterface > m_connector
PropertyAdapter::ValueType ValueType
QList< ValueType > m_savedValues

References KisMultinodeProperty< PropertyAdapter >::defaultValue(), KisMultinodeProperty< PropertyAdapter >::m_currentValue, KisMultinodeProperty< PropertyAdapter >::m_isIgnored, KisMultinodeProperty< PropertyAdapter >::m_nodes, KisMultinodeProperty< PropertyAdapter >::m_propAdapter, KisMultinodeProperty< PropertyAdapter >::m_savedValues, KisMultinodeProperty< PropertyAdapter >::m_savedValuesDiffer, and KisMultinodeProperty< PropertyAdapter >::value().

◆ ~KisMultinodeProperty()

template<class PropertyAdapter >
KisMultinodeProperty< PropertyAdapter >::~KisMultinodeProperty ( )
inlineoverride

Definition at line 517 of file kis_multinode_property.h.

517{}

Member Function Documentation

◆ connectAutoEnableWidget()

template<class PropertyAdapter >
void KisMultinodeProperty< PropertyAdapter >::connectAutoEnableWidget ( QWidget * widget)
inlineoverridevirtual

Implements KisMultinodePropertyInterface.

Definition at line 601 of file kis_multinode_property.h.

601 {
602 m_connector->connectAutoEnableWidget(widget);
603 }

References KisMultinodeProperty< PropertyAdapter >::m_connector.

◆ connectIgnoreCheckBox()

template<class PropertyAdapter >
void KisMultinodeProperty< PropertyAdapter >::connectIgnoreCheckBox ( QCheckBox * ignoreBox)
inlineoverridevirtual

Implements KisMultinodePropertyInterface.

Definition at line 593 of file kis_multinode_property.h.

593 {
594 m_connector->connectIgnoreCheckBox(ignoreBox);
595 }

References KisMultinodeProperty< PropertyAdapter >::m_connector.

◆ connectValueChangedSignal()

template<class PropertyAdapter >
void KisMultinodeProperty< PropertyAdapter >::connectValueChangedSignal ( const QObject * receiver,
const char * method,
Qt::ConnectionType type = Qt::AutoConnection )
inlineoverridevirtual

Implements KisMultinodePropertyInterface.

Definition at line 597 of file kis_multinode_property.h.

597 {
598 m_connector->connectValueChangedSignal(receiver, method, type);
599 }

References KisMultinodeProperty< PropertyAdapter >::m_connector.

◆ createPostExecutionUndoCommand()

◆ defaultValue()

template<class PropertyAdapter >
ValueType KisMultinodeProperty< PropertyAdapter >::defaultValue ( ) const
inlineprivate

Definition at line 618 of file kis_multinode_property.h.

618 {
619 return m_savedValues.first();
620 }

References KisMultinodeProperty< PropertyAdapter >::m_savedValues.

◆ haveTheOnlyNode()

template<class PropertyAdapter >
bool KisMultinodeProperty< PropertyAdapter >::haveTheOnlyNode ( ) const
inlineoverridevirtual

Implements KisMultinodePropertyInterface.

Definition at line 613 of file kis_multinode_property.h.

613 {
614 return m_nodes.size() == 1;
615 }

References KisMultinodeProperty< PropertyAdapter >::m_nodes.

◆ isIgnored()

template<class PropertyAdapter >
bool KisMultinodeProperty< PropertyAdapter >::isIgnored ( ) const
inlineoverridevirtual

Implements KisMultinodePropertyInterface.

Definition at line 581 of file kis_multinode_property.h.

581 {
582 return m_isIgnored;
583 }

References KisMultinodeProperty< PropertyAdapter >::m_isIgnored.

◆ rereadCurrentValue()

template<class PropertyAdapter >
void KisMultinodeProperty< PropertyAdapter >::rereadCurrentValue ( )
inlineoverridevirtual

Implements KisMultinodePropertyInterface.

Definition at line 519 of file kis_multinode_property.h.

519 {
520 if (m_isIgnored) return;
521
522 ValueType lastValue = m_propAdapter.propForNode(m_nodes.first());
523 Q_FOREACH (KisNodeSP node, m_nodes) {
524 ValueType value = m_propAdapter.propForNode(node);
525
526 if (value != lastValue) {
527 qWarning() << "WARNING: multiprops: values differ after reread!";
528 }
529
530 lastValue = value;
531 }
532
533 if (lastValue != m_currentValue) {
534 m_currentValue = lastValue;
535 m_connector->notifyValueChanged();
536 }
537 }

References KisMultinodeProperty< PropertyAdapter >::m_connector, KisMultinodeProperty< PropertyAdapter >::m_currentValue, KisMultinodeProperty< PropertyAdapter >::m_isIgnored, KisMultinodeProperty< PropertyAdapter >::m_nodes, KisMultinodeProperty< PropertyAdapter >::m_propAdapter, and KisMultinodeProperty< PropertyAdapter >::value().

◆ savedValuesDiffer()

template<class PropertyAdapter >
bool KisMultinodeProperty< PropertyAdapter >::savedValuesDiffer ( ) const
inlineoverridevirtual

Interface for the connector

Implements KisMultinodePropertyInterface.

Definition at line 609 of file kis_multinode_property.h.

609 {
610 return m_savedValuesDiffer;
611 }

References KisMultinodeProperty< PropertyAdapter >::m_savedValuesDiffer.

◆ setIgnored()

template<class PropertyAdapter >
void KisMultinodeProperty< PropertyAdapter >::setIgnored ( bool value)
inlineoverridevirtual

◆ setValue()

template<class PropertyAdapter >
void KisMultinodeProperty< PropertyAdapter >::setValue ( const ValueType & value)
inline

◆ value()

template<class PropertyAdapter >
ValueType KisMultinodeProperty< PropertyAdapter >::value ( ) const
inline

Definition at line 554 of file kis_multinode_property.h.

554 {
555 return m_currentValue;
556 }

References KisMultinodeProperty< PropertyAdapter >::m_currentValue.

Member Data Documentation

◆ m_connector

template<class PropertyAdapter >
QScopedPointer<MultinodePropertyConnectorInterface> KisMultinodeProperty< PropertyAdapter >::m_connector
private

Definition at line 631 of file kis_multinode_property.h.

◆ m_currentValue

template<class PropertyAdapter >
ValueType KisMultinodeProperty< PropertyAdapter >::m_currentValue
private

Definition at line 624 of file kis_multinode_property.h.

◆ m_isIgnored

template<class PropertyAdapter >
bool KisMultinodeProperty< PropertyAdapter >::m_isIgnored
private

Definition at line 623 of file kis_multinode_property.h.

◆ m_nodes

template<class PropertyAdapter >
KisNodeList KisMultinodeProperty< PropertyAdapter >::m_nodes
private

Definition at line 626 of file kis_multinode_property.h.

◆ m_propAdapter

template<class PropertyAdapter >
PropertyAdapter KisMultinodeProperty< PropertyAdapter >::m_propAdapter
private

Definition at line 630 of file kis_multinode_property.h.

◆ m_savedValues

template<class PropertyAdapter >
QList<ValueType> KisMultinodeProperty< PropertyAdapter >::m_savedValues
private

Definition at line 627 of file kis_multinode_property.h.

◆ m_savedValuesDiffer

template<class PropertyAdapter >
bool KisMultinodeProperty< PropertyAdapter >::m_savedValuesDiffer
private

Definition at line 629 of file kis_multinode_property.h.


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