Warning, /education/labplot/src/backend/lib/commandtemplates.dox is written in an unsupported language. File is not indexed.
0001 /** 0002 * \class TypeSelect 0003 * \brief Template which results in a const reference for non-basic template parameter types. 0004 * 0005 * E.g., "TypeSelect<MyClass>" will expand to "const MyClass &" at compile time while 0006 * "TypeSelect<int>" will expand to "int". 0007 */ 0008 0009 /** 0010 * \class StandardSetterCmd 0011 * \brief Template for simple setter undo commands. 0012 * 0013 * Use it like this: 0014 * \code 0015 class MyClassSetMyValueCmd: public StandardClassSetterCmd<MyClass::Private, TheValueTypeOrClass> { 0016 public: 0017 MyClassSetMyValueCmd(MyClass::Private *target, TypeSelect<TheValueOrClasse>::ParamType newValue, const QString &description) 0018 : StandardSetterCmd<MyClass::Private, TypeSelect<TheValueOrClasse>::ParamType>(target, &MyClass::Private::myValue, newValue, description) {} 0019 virtual void initialize() { emit m_target->q->myValueAboutToChange(); } 0020 virtual void finalize() { emit m_target->q->myValueChanged(); } 0021 }; 0022 * \endcode 0023 * When instanciating the class, use 0024 * \code tr("%1: what the command does") \endcode for the description argument. The "%1" will automatically be replaced by 0025 * the aspect name (the private class must implement "QString name() const"). 0026 * Example: \code 0027 class MyClass::Private { 0028 public: 0029 Private(MyClass *owner) : q(owner) { 0030 } 0031 0032 QString name() const { 0033 return q->name(); 0034 } 0035 0036 int myValue; 0037 MyClass *const q; 0038 }; 0039 0040 void MyClass::setMyValue(int value) { 0041 exec(new MyClassSetMyValueCmd(d, value, tr("%1: set my value"))); 0042 } 0043 * \endcode 0044 */ 0045 0046 /** 0047 * \class StandardSwapMethodSetterCmd 0048 * \brief Template for setter undo commands which require a function call. 0049 * 0050 * This template is very similar to StandardSetterCmd but it takes a method address 0051 * instead of a field address. The method must be a setter function which returns the 0052 * old value. Example: \code 0053 qreal MyClass::Private::setZValue(qreal z) { 0054 qreal oldZ = calculateMyZValue(); 0055 myZValue = z; 0056 setZValueForAllChildren(z); 0057 return oldZ; 0058 } 0059 * \endcode 0060 */ 0061