17#ifndef OPENSWMM_RENDER_SUBLAYERS_FEATURE_FEATURESUBLAYERSTYLE_H
18#define OPENSWMM_RENDER_SUBLAYERS_FEATURE_FEATURESUBLAYERSTYLE_H
53 Q_CLASSINFO("group:
attribute", "Classification")
54 Q_CLASSINFO("group:
color", "Symbology")
60 [[nodiscard]] QString
attribute()
const {
return m_attribute; }
61 [[nodiscard]] QColor
color()
const {
return m_color; }
75 [[nodiscard]] QJsonObject
toJson()
const override
78 j[QStringLiteral(
"attribute")] = m_attribute;
79 j[QStringLiteral(
"color")] = m_color.name(QColor::HexArgb);
80 j[QStringLiteral(
"useColorRamp")] = m_useColorRamp;
82 j[QStringLiteral(
"labelConfig")] = m_labelConfig.
toJson();
87 if (j.contains(QStringLiteral(
"attribute")))
88 m_attribute = j.value(QStringLiteral(
"attribute")).toString();
89 if (j.contains(QStringLiteral(
"color"))) {
90 const QColor c(j.value(QStringLiteral(
"color")).toString());
91 if (c.isValid()) m_color = c;
93 if (j.contains(QStringLiteral(
"useColorRamp")))
94 m_useColorRamp = j.value(QStringLiteral(
"useColorRamp")).toBool(
true);
95 if (j.contains(QStringLiteral(
"labelConfig")))
96 m_labelConfig.
fromJson(j.value(QStringLiteral(
"labelConfig")).toObject());
101 QString m_attribute = QStringLiteral(
"depth");
102 QColor m_color = QColor(60, 60, 60);
103 bool m_useColorRamp =
true;
118 Q_CLASSINFO("group:
shape", "Symbology")
133 [[nodiscard]] QJsonObject
toJson()
const override
136 j[QStringLiteral(
"markerSizePx")] = m_markerSizePx;
137 j[QStringLiteral(
"shape")] = int(m_shape);
143 if (j.contains(QStringLiteral(
"markerSizePx")))
144 m_markerSizePx = j.value(QStringLiteral(
"markerSizePx")).toDouble(6.0);
145 if (j.contains(QStringLiteral(
"shape")))
146 m_shape =
static_cast<MarkerShape>(j.value(QStringLiteral(
"shape")).toInt(
int(
Circle)));
151 double m_markerSizePx = 6.0;
179 Q_CLASSINFO("group:
arrowColor", "Flow arrows")
185 [[nodiscard]]
double lineWidthPx()
const {
return m_lineWidthPx; }
186 [[nodiscard]] Qt::PenStyle
dashPattern()
const {
return m_dashPattern; }
190 [[nodiscard]] QColor
arrowColor()
const {
return m_arrowColor; }
204 [[nodiscard]] QJsonObject
toJson()
const override
207 j[QStringLiteral(
"lineWidthPx")] = m_lineWidthPx;
208 j[QStringLiteral(
"dashPattern")] = int(m_dashPattern);
209 j[QStringLiteral(
"showFlowArrows")] = m_showFlowArrows;
210 j[QStringLiteral(
"arrowLengthPx")] = m_arrowLengthPx;
211 j[QStringLiteral(
"arrowWidthPx")] = m_arrowWidthPx;
212 j[QStringLiteral(
"arrowColor")] = m_arrowColor.name(QColor::HexArgb);
213 j[QStringLiteral(
"renderAsLine")] = m_renderAsLine;
219 if (j.contains(QStringLiteral(
"lineWidthPx"))) m_lineWidthPx = j.value(QStringLiteral(
"lineWidthPx")).toDouble(1.5);
220 if (j.contains(QStringLiteral(
"dashPattern"))) m_dashPattern =
static_cast<Qt::PenStyle
>(j.value(QStringLiteral(
"dashPattern")).toInt(
int(Qt::SolidLine)));
221 if (j.contains(QStringLiteral(
"showFlowArrows"))) m_showFlowArrows = j.value(QStringLiteral(
"showFlowArrows")).toBool(
true);
222 if (j.contains(QStringLiteral(
"arrowLengthPx"))) m_arrowLengthPx = j.value(QStringLiteral(
"arrowLengthPx")).toDouble(16.0);
223 if (j.contains(QStringLiteral(
"arrowWidthPx"))) m_arrowWidthPx = j.value(QStringLiteral(
"arrowWidthPx")).toDouble(8.0);
224 if (j.contains(QStringLiteral(
"arrowColor"))) {
225 const QColor c(j.value(QStringLiteral(
"arrowColor")).toString());
226 if (c.isValid()) m_arrowColor = c;
228 if (j.contains(QStringLiteral(
"renderAsLine"))) m_renderAsLine = j.value(QStringLiteral(
"renderAsLine")).toBool(
true);
233 double m_lineWidthPx = 1.5;
234 Qt::PenStyle m_dashPattern = Qt::SolidLine;
237 bool m_showFlowArrows =
true;
238 double m_arrowLengthPx = 16.0;
243 double m_arrowWidthPx = 8.0;
244 QColor m_arrowColor = QColor(20, 20, 20, 220);
245 bool m_renderAsLine =
true;
274 [[nodiscard]]
double fillOpacity()
const {
return m_fillOpacity; }
275 [[nodiscard]]
int fillStyle()
const {
return m_fillStyle; }
282 [[nodiscard]] QJsonObject
toJson()
const override
285 j[QStringLiteral(
"outlineColor")] = m_outlineColor.name(QColor::HexArgb);
286 j[QStringLiteral(
"outlineWidthPx")] = m_outlineWidthPx;
287 j[QStringLiteral(
"fillOpacity")] = m_fillOpacity;
288 j[QStringLiteral(
"fillStyle")] = m_fillStyle;
294 if (j.contains(QStringLiteral(
"outlineColor"))) {
295 const QColor c(j.value(QStringLiteral(
"outlineColor")).toString());
296 if (c.isValid()) m_outlineColor = c;
298 if (j.contains(QStringLiteral(
"outlineWidthPx")))
299 m_outlineWidthPx = j.value(QStringLiteral(
"outlineWidthPx")).toDouble(0.5);
300 if (j.contains(QStringLiteral(
"fillOpacity")))
301 m_fillOpacity = j.value(QStringLiteral(
"fillOpacity")).toDouble(0.55);
302 if (j.contains(QStringLiteral(
"fillStyle")))
303 m_fillStyle = j.value(QStringLiteral(
"fillStyle")).toInt(
int(Qt::SolidPattern));
308 QColor m_outlineColor = QColor(40, 40, 40, 220);
309 double m_outlineWidthPx = 0.5;
310 double m_fillOpacity = 0.55;
311 int m_fillStyle = int(Qt::SolidPattern);
Common property bag for every per-Category result sublayer.
Definition featuresublayerstyle.h:47
void setAttribute(const QString &v)
Definition featuresublayerstyle.h:64
QColor color() const
Definition featuresublayerstyle.h:61
bool useColorRamp() const
Definition featuresublayerstyle.h:62
QString attribute
Definition featuresublayerstyle.h:49
QColor color
Definition featuresublayerstyle.h:50
QString attribute() const
Definition featuresublayerstyle.h:60
const LabelConfig & labelConfig() const
Definition featuresublayerstyle.h:72
void fromJson(const QJsonObject &j) override
Restore the style from JSON.
Definition featuresublayerstyle.h:85
void setColor(const QColor &v)
Definition featuresublayerstyle.h:65
QJsonObject toJson() const override
Serialize the style to JSON.
Definition featuresublayerstyle.h:75
void setLabelConfig(const LabelConfig &c)
Definition featuresublayerstyle.h:73
bool useColorRamp
Definition featuresublayerstyle.h:51
void setUseColorRamp(bool v)
Definition featuresublayerstyle.h:66
Definition featuresublayerstyle.h:163
void setShowFlowArrows(bool v)
Definition featuresublayerstyle.h:198
bool showFlowArrows
Definition featuresublayerstyle.h:167
double arrowLengthPx() const
Definition featuresublayerstyle.h:188
bool renderAsLine
Definition featuresublayerstyle.h:171
Qt::PenStyle dashPattern
Definition featuresublayerstyle.h:166
double arrowWidthPx
Definition featuresublayerstyle.h:169
double arrowLengthPx
Definition featuresublayerstyle.h:168
bool renderAsLine() const
Definition featuresublayerstyle.h:194
void setRenderAsLine(bool v)
Definition featuresublayerstyle.h:202
double lineWidthPx
Definition featuresublayerstyle.h:165
void setArrowColor(const QColor &v)
Definition featuresublayerstyle.h:201
void setDashPattern(Qt::PenStyle v)
Definition featuresublayerstyle.h:197
double lineWidthPx() const
Definition featuresublayerstyle.h:185
void setLineWidthPx(double v)
Definition featuresublayerstyle.h:196
QColor arrowColor() const
Definition featuresublayerstyle.h:190
double arrowWidthPx() const
Definition featuresublayerstyle.h:189
void fromJson(const QJsonObject &j) override
Restore the style from JSON.
Definition featuresublayerstyle.h:216
Qt::PenStyle dashPattern() const
Definition featuresublayerstyle.h:186
QColor arrowColor
Definition featuresublayerstyle.h:170
bool showFlowArrows() const
Definition featuresublayerstyle.h:187
void setArrowWidthPx(double v)
Definition featuresublayerstyle.h:200
QJsonObject toJson() const override
Serialize the style to JSON.
Definition featuresublayerstyle.h:204
void setArrowLengthPx(double v)
Definition featuresublayerstyle.h:199
Definition featuresublayerstyle.h:112
QJsonObject toJson() const override
Serialize the style to JSON.
Definition featuresublayerstyle.h:133
MarkerShape shape() const
Definition featuresublayerstyle.h:128
MarkerShape
Definition featuresublayerstyle.h:121
@ Circle
Definition featuresublayerstyle.h:121
@ Triangle
Definition featuresublayerstyle.h:121
@ Star
Definition featuresublayerstyle.h:121
@ Square
Definition featuresublayerstyle.h:121
@ Diamond
Definition featuresublayerstyle.h:121
double markerSizePx
Definition featuresublayerstyle.h:114
void setMarkerSizePx(double v)
Definition featuresublayerstyle.h:130
void fromJson(const QJsonObject &j) override
Restore the style from JSON.
Definition featuresublayerstyle.h:140
void setShape(MarkerShape v)
Definition featuresublayerstyle.h:131
double markerSizePx() const
Definition featuresublayerstyle.h:127
MarkerShape shape
Definition featuresublayerstyle.h:115
Definition featuresublayerstyle.h:253
double fillOpacity() const
Definition featuresublayerstyle.h:274
void setOutlineColor(const QColor &v)
Definition featuresublayerstyle.h:277
double outlineWidthPx() const
Definition featuresublayerstyle.h:273
QColor outlineColor
Definition featuresublayerstyle.h:255
void setOutlineWidthPx(double v)
Definition featuresublayerstyle.h:278
int fillStyle
Definition featuresublayerstyle.h:261
QColor outlineColor() const
Definition featuresublayerstyle.h:272
double fillOpacity
Definition featuresublayerstyle.h:257
void setFillOpacity(double v)
Definition featuresublayerstyle.h:279
QJsonObject toJson() const override
Serialize the style to JSON.
Definition featuresublayerstyle.h:282
void setFillStyle(int v)
Definition featuresublayerstyle.h:280
void fromJson(const QJsonObject &j) override
Restore the style from JSON.
Definition featuresublayerstyle.h:291
double outlineWidthPx
Definition featuresublayerstyle.h:256
int fillStyle() const
Definition featuresublayerstyle.h:275
Base class for per-sublayer style property bags.
Definition sublayerstyle.h:56
void styleChanged()
Emitted when any property changes.
void setDirty()
Definition sublayerstyle.h:97
Shared label-configuration value-type used by every layer that paints text labels.
Definition gisrasterlayer.h:40
MarkerShape
13 canonical marker shapes the Rule Model's Marker Symbol Layer supports (per RENDERING_RULE_MODEL_PL...
Definition markershape.h:53
QVector< int > v
pool vertex indices
Definition pslgminsize.cpp:159
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Per-layer label rendering parameters.
Definition labelconfig.h:47
bool enabled
Definition labelconfig.h:49
QJsonObject toJson() const
Definition labelconfig.cpp:13
void fromJson(const QJsonObject &j)
Definition labelconfig.cpp:46
QString expression
Definition labelconfig.h:63
QObject base class for per-sublayer style property bags.