/usr/include/qgis/qgsconditionalstyle.h is in libqgis-dev 2.18.17+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 | #ifndef QGSCONDITIONALSTYLE_H
#define QGSCONDITIONALSTYLE_H
#include <QFont>
#include <QColor>
#include <QPixmap>
#include <QDomNode>
#include <QDomDocument>
#include "qgsfeature.h"
#include "qgssymbolv2.h"
class QgsConditionalStyle;
typedef QList<QgsConditionalStyle> QgsConditionalStyles;
/** \ingroup core
* @brief The QgsConditionalLayerStyles class holds conditional style information
* for a layer. This includes field styles and full row styles.
*/
class CORE_EXPORT QgsConditionalLayerStyles
{
public:
QgsConditionalLayerStyles();
QList<QgsConditionalStyle> rowStyles();
/**
* @brief Set the conditional styles that apply to full rows of data in the attribute table.
* Each row will check be checked against each rule.
* @param styles The styles to assign to all the rows
* @note added in QGIS 2.12
*/
void setRowStyles( const QList<QgsConditionalStyle>& styles );
/**
* @brief Set the conditional styles for the field UI properties.
* @param fieldName name of field
* @param styles
*/
void setFieldStyles( const QString& fieldName, const QList<QgsConditionalStyle>& styles );
/**
* @brief Returns the conditional styles set for the field UI properties
* @return A list of conditional styles that have been set.
*/
QList<QgsConditionalStyle> fieldStyles( const QString& fieldName );
/** Reads field ui properties specific state from Dom node.
*/
bool readXml( const QDomNode& node );
/** Write field ui properties specific state from Dom node.
*/
bool writeXml( QDomNode & node, QDomDocument & doc ) const;
private:
QHash<QString, QgsConditionalStyles> mFieldStyles;
QList<QgsConditionalStyle> mRowStyles;
};
/** \class QgsConditionalStyle
* \ingroup core
* Conditional styling for a rule.
*/
class CORE_EXPORT QgsConditionalStyle
{
public:
QgsConditionalStyle();
QgsConditionalStyle( const QgsConditionalStyle& other );
QgsConditionalStyle( const QString& rule );
~QgsConditionalStyle();
QgsConditionalStyle& operator=( const QgsConditionalStyle& other );
/**
* @brief Check if the rule matches using the given value and feature
* @param value The current value being checked. The "value" variable from the context is replaced with this value.
* @param context Expression context for evaluating rule expression
* @return True of the rule matches against the given feature
*/
bool matches( const QVariant& value, QgsExpressionContext& context ) const;
/**
* @brief Render a preview icon of the rule.
* @return QPixmap preview of the style
*/
QPixmap renderPreview() const;
/**
* @brief Set the name of the style. Names are optional but handy for display
* @param value The name given to the style
*/
void setName( const QString& value ) { mName = value; mValid = true; }
/**
* @brief Set the rule for the style. Rules should be of QgsExpression syntax.
* Special value of \@value is replaced at run time with the check value
* @param value The QgsExpression style rule to use for this style
*/
void setRule( const QString& value ) { mRule = value; mValid = true; }
/**
* @brief Set the background color for the style
* @param value QColor for background color
*/
void setBackgroundColor( const QColor& value ) { mBackColor = value; mValid = true; }
/**
* @brief Set the text color for the style
* @param value QColor for text color
*/
void setTextColor( const QColor& value ) { mTextColor = value; mValid = true; }
/**
* @brief Set the font for the the style
* @param value QFont to be used for text
*/
void setFont( const QFont& value ) { mFont = value; mValid = true; }
/**
* @brief Set the icon for the style. Icons are generated from symbols
* @param value QgsSymbolV2 to be used when generating the icon
*/
void setSymbol( QgsSymbolV2* value );
/**
* @brief The name of the style.
* @return The name of the style. Names are optional so might be empty.
*/
QString displayText() const;
/**
* @brief The name of the style.
* @return The name of the style. Names are optional so might be empty.
*/
QString name() const { return mName; }
/**
* @brief The icon set for style generated from the set symbol
* @return A QPixmap that was set for the icon using the symbol
*/
QPixmap icon() const { return mIcon; }
/**
* @brief The symbol used to generate the icon for the style
* @return The QgsSymbolV2 used for the icon
*/
QgsSymbolV2* symbol() const { return mSymbol.data(); }
/**
* @brief The text color set for style
* @return QColor for text color
*/
QColor textColor() const { return mTextColor; }
/**
* @brief Check if the text color is valid for render.
* Valid colors are non invalid QColors and a color with a > 0 alpha
* @return True of the color set for text is valid.
*/
bool validTextColor() const;
/**
* @brief The background color for style
* @return QColor for background color
*/
QColor backgroundColor() const { return mBackColor; }
/**
* @brief Check if the background color is valid for render.
* Valid colors are non invalid QColors and a color with a > 0 alpha
* @return True of the color set for background is valid.
*/
bool validBackgroundColor() const;
/**
* @brief The font for the style
* @return QFont for the style
*/
QFont font() const { return mFont; }
/**
* @brief The condition rule set for the style. Rule may contain variable \@value
* to represent the current value
* @return QString of the current set rule
*/
QString rule() const { return mRule; }
/**
* @brief isValid Check if this rule is valid. A valid rule has one or more properties
* set.
* @return True if the rule is valid.
*/
bool isValid() const { return mValid; }
/**
* @brief Find and return the matching styles for the value and feature.
* If no match is found a invalid QgsConditionalStyle is return.
*
* @return A condtional style that matches the value and feature.
* Check with QgsConditionalStyle::isValid()
*/
static QList<QgsConditionalStyle> matchingConditionalStyles( const QList<QgsConditionalStyle>& styles, const QVariant& value, QgsExpressionContext& context );
/**
* @brief Find and return the matching style for the value and feature.
* If no match is found a invalid QgsConditionalStyle is return.
*
* @return A condtional style that matches the value and feature.
* Check with QgsConditionalStyle::isValid()
*/
static QgsConditionalStyle matchingConditionalStyle( const QList<QgsConditionalStyle>& styles, const QVariant& value, QgsExpressionContext& context );
/**
* @brief Compress a list of styles into a single style. This can be used to stack the elements of the
* styles. The font of the last style is used in the output.
* @param styles The list of styles to compress down
* @return A single style generated from joining each style property.
*/
static QgsConditionalStyle compressStyles( const QList<QgsConditionalStyle>& styles );
/** Reads vector conditional style specific state from layer Dom node.
*/
bool readXml( const QDomNode& node );
/** Write vector conditional style specific state from layer Dom node.
*/
bool writeXml( QDomNode & node, QDomDocument & doc ) const;
private:
bool mValid;
QString mName;
QString mRule;
QScopedPointer<QgsSymbolV2> mSymbol;
QFont mFont;
QColor mBackColor;
QColor mTextColor;
QPixmap mIcon;
};
#endif // QGSCONDITIONALSTYLE_H
|