1#ifndef KISCHANGEVALUECOMMAND_H
2#define KISCHANGEVALUECOMMAND_H
24template <auto mem_ptr,
typename ValueType>
27template <
typename Base,
typename Member, Member Base::* mem_ptr,
typename ValueType>
33 , m_oldValue(m_base->*mem_ptr)
34 , m_newValue(newValue)
40 m_base->*mem_ptr = m_newValue;
44 m_base->*mem_ptr = m_oldValue;
59template <auto mem_ptr,
typename Base,
typename ValueType>
72template <auto mem_ptr,
typename ValueType>
75template <
typename Base,
typename Member, Member Base::* mem_ptr,
typename ValueType>
81 , m_oldValue(*(m_base->*mem_ptr))
82 , m_newValue(newValue)
88 *(m_base->*mem_ptr) = m_newValue;
92 *(m_base->*mem_ptr) = m_oldValue;
105template <auto mem_ptr,
typename Base,
typename ValueType>
KisChangeIndirectValueCommand< mem_ptr, ValueType > * makeChangeIndirectValueCommand(Base *base, const ValueType &newValue, KUndo2Command *parent=nullptr)
KisChangeValueCommand< mem_ptr, ValueType > * makeChangeValueCommand(Base *base, const ValueType &newValue, KUndo2Command *parent=nullptr)
KisChangeIndirectValueCommand(Base *base, const ValueType &newValue, KUndo2Command *parent=nullptr)
KisChangeValueCommand(Base *base, const ValueType &newValue, KUndo2Command *parent=nullptr)