Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsoptionalexpression.h - QgsOptionalExpression 3 : : 4 : : --------------------- 5 : : begin : 8.9.2016 6 : : copyright : (C) 2016 by Matthias Kuhn 7 : : email : matthias@opengis.ch 8 : : *************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : #ifndef QGSOPTIONALEXPRESSION_H 17 : : #define QGSOPTIONALEXPRESSION_H 18 : : 19 : : #include "qgsoptional.h" 20 : : #include "qgsexpression.h" 21 : : 22 : : #include "qgis_core.h" 23 : : 24 : : 25 : : /** 26 : : * \ingroup core 27 : : * 28 : : * \brief An expression with an additional enabled flag. 29 : : * 30 : : * This can be used for configuration options where an expression can be enabled 31 : : * or disabled but when disabled it shouldn't lose it's information for the case 32 : : * it gets re-enabled later on and a user shouldn't be force to redo the configuration. 33 : : * 34 : : * \since QGIS 2.18 35 : : */ 36 : : 37 : : 38 : : 39 : 62 : class CORE_EXPORT QgsOptionalExpression : public QgsOptional<QgsExpression> 40 : : { 41 : : public: 42 : : 43 : : /** 44 : : * Construct a default optional expression. 45 : : * It will be disabled and with an empty expression. 46 : : */ 47 : 78 : QgsOptionalExpression() = default; 48 : : 49 : : /** 50 : : * Construct an optional expression with the provided expression. 51 : : * It will be enabled. 52 : : */ 53 : : QgsOptionalExpression( const QgsExpression &expression ); 54 : : 55 : : /** 56 : : * Construct an optional expression with the provided expression and enabled state. 57 : : */ 58 : : QgsOptionalExpression( const QgsExpression &expression, bool enabled ); 59 : : 60 : : 61 : : /** 62 : : * Save the optional expression to the provided QDomElement. 63 : : * 64 : : * The caller is responsible to pass an empty QDomElement and to append it to 65 : : * a parent element. 66 : : * 67 : : * \since QGIS 2.18 68 : : */ 69 : : void writeXml( QDomElement &element ); 70 : : 71 : : /** 72 : : * Read the optional expression from the provided QDomElement. 73 : : * 74 : : * \since QGIS 2.18 75 : : */ 76 : : void readXml( const QDomElement &element ); 77 : : }; 78 : : 79 : : 80 : : #if defined(_MSC_VER) 81 : : #ifndef SIP_RUN 82 : : template class CORE_EXPORT QgsOptional<QgsExpression>; 83 : : #endif 84 : : #endif 85 : : 86 : : 87 : : #endif // QGSOPTIONALEXPRESSION_H