diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp index bc87abefa7..069cebf541 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/RimGridCrossPlotCurveSet.cpp @@ -466,6 +466,7 @@ void RimGridCrossPlotCurveSet::createCurves(const RigEclipseCrossPlotResult& res int colorIndex = indexInPlot(); curve->setColor(colors.cycledColor3f(colorIndex)); } + curve->setSymbolEdgeColor(curve->color()); curve->setGroupingInformation(indexInPlot(), 0); curve->setSamples(result.xValues, result.yValues); curve->updateCurveAppearance(); @@ -522,6 +523,7 @@ void RimGridCrossPlotCurveSet::createCurves(const RigEclipseCrossPlotResult& res { curve->setColor(cvf::Color3f(legendConfig()->scalarMapper()->mapToColor(tickValues[it->first]))); } + curve->setSymbolEdgeColor(curve->color()); curve->setSamples(it->second.xValues, it->second.yValues); curve->showLegend(m_crossPlotCurves.empty()); curve->setLegendEntryText(createAutoName()); diff --git a/ApplicationCode/ProjectDataModel/RimPlotCurve.cpp b/ApplicationCode/ProjectDataModel/RimPlotCurve.cpp index fd6a7d3e0f..321bb7022e 100644 --- a/ApplicationCode/ProjectDataModel/RimPlotCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimPlotCurve.cpp @@ -109,6 +109,7 @@ RimPlotCurve::RimPlotCurve() CAF_PDM_InitFieldNoDefault(&m_curveInterpolation, "CurveInterpolation", "Interpolation", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_lineStyle, "LineStyle", "Line Style", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_pointSymbol, "PointSymbol", "Symbol", "", "", ""); + CAF_PDM_InitField(&m_symbolEdgeColor, "SymbolEdgeColor", cvf::Color3f(cvf::Color3::BLACK), "Symbol Edge Color", "", "", ""); CAF_PDM_InitField(&m_symbolSkipPixelDistance, "SymbolSkipPxDist", 0.0f, "Symbol Skip Distance", "", "Minimum pixel distance between symbols", ""); @@ -162,7 +163,8 @@ void RimPlotCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField, con || &m_lineStyle == changedField || &m_symbolSkipPixelDistance == changedField || &m_curveInterpolation == changedField - || &m_symbolSize == changedField) + || &m_symbolSize == changedField + || &m_symbolEdgeColor == changedField) { updateCurveAppearance(); @@ -467,6 +469,7 @@ void RimPlotCurve::appearanceUiOrdering(caf::PdmUiOrdering& uiOrdering) { uiOrdering.add(&m_curveColor); uiOrdering.add(&m_pointSymbol); + uiOrdering.add(&m_symbolEdgeColor); uiOrdering.add(&m_symbolSize); uiOrdering.add(&m_symbolSkipPixelDistance); uiOrdering.add(&m_lineStyle); @@ -537,8 +540,7 @@ void RimPlotCurve::updateCurveAppearance() { CVF_ASSERT(m_qwtPlotCurve); - QColor curveColor(m_curveColor.value().rByte(), m_curveColor.value().gByte(), m_curveColor.value().bByte()); - + QColor curveColor(m_curveColor.value().rByte(), m_curveColor.value().gByte(), m_curveColor.value().bByte()); QwtSymbol* symbol = nullptr; if (m_pointSymbol() != RiuQwtSymbol::SYMBOL_NONE) @@ -547,6 +549,10 @@ void RimPlotCurve::updateCurveAppearance() symbol = new RiuQwtSymbol(m_pointSymbol(), m_symbolLabel, m_symbolLabelPosition); symbol->setSize(m_symbolSize, m_symbolSize); symbol->setColor(curveColor); + + QColor symbolEdgeColor(m_symbolEdgeColor.value().rByte(), m_symbolEdgeColor.value().gByte(), m_symbolEdgeColor.value().bByte()); + + symbol->setPen(symbolEdgeColor); } m_qwtPlotCurve->setAppearance(m_lineStyle(), m_curveInterpolation(), m_curveThickness(), curveColor); @@ -675,6 +681,22 @@ RiuQwtSymbol::PointSymbolEnum RimPlotCurve::symbol() return m_pointSymbol(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +cvf::Color3f RimPlotCurve::symbolEdgeColor() const +{ + return m_symbolEdgeColor; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RimPlotCurve::setSymbolEdgeColor(const cvf::Color3f& edgeColor) +{ + m_symbolEdgeColor = edgeColor; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -713,6 +735,7 @@ void RimPlotCurve::setLineThickness(int thickness) void RimPlotCurve::resetAppearance() { setColor(cvf::Color3f(cvf::Color3::BLACK)); + setSymbolEdgeColor(cvf::Color3f(cvf::Color3::BLACK)); setLineThickness(2); setLineStyle(RiuQwtPlotCurve::STYLE_SOLID); setSymbol(RiuQwtSymbol::SYMBOL_NONE); diff --git a/ApplicationCode/ProjectDataModel/RimPlotCurve.h b/ApplicationCode/ProjectDataModel/RimPlotCurve.h index f7e2ae6212..0a2ee328e8 100644 --- a/ApplicationCode/ProjectDataModel/RimPlotCurve.h +++ b/ApplicationCode/ProjectDataModel/RimPlotCurve.h @@ -62,6 +62,8 @@ public: void setLineStyle(RiuQwtPlotCurve::LineStyleEnum lineStyle); void setSymbol(RiuQwtSymbol::PointSymbolEnum symbolStyle); RiuQwtSymbol::PointSymbolEnum symbol(); + cvf::Color3f symbolEdgeColor() const; + void setSymbolEdgeColor(const cvf::Color3f& edgeColor); void setSymbolSkipDistance(float distance); void setSymbolLabel(const QString& label); void setSymbolSize(int sizeInPixels); @@ -140,6 +142,7 @@ protected: caf::PdmField m_lineStyle; caf::PdmField m_curveInterpolation; RiuQwtSymbol::LabelPosition m_symbolLabelPosition; + caf::PdmField m_symbolEdgeColor; };