diff options
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller.cpp | 5 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller_p.h | 1 | ||||
-rw-r--r-- | src/datavisualization/engine/bars3drenderer.cpp | 13 |
3 files changed, 16 insertions, 3 deletions
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index 74ea1076..b5910c8e 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -328,6 +328,11 @@ void Bars3DController::handleDataColumnLabelsChanged() } } +void Bars3DController::handleRowColorsChanged() +{ + emitNeedRender(); +} + void Bars3DController::handleAxisAutoAdjustRangeChangedInOrientation( QAbstract3DAxis::AxisOrientation orientation, bool autoAdjust) { diff --git a/src/datavisualization/engine/bars3dcontroller_p.h b/src/datavisualization/engine/bars3dcontroller_p.h index 818eea4f..fb028e92 100644 --- a/src/datavisualization/engine/bars3dcontroller_p.h +++ b/src/datavisualization/engine/bars3dcontroller_p.h @@ -165,6 +165,7 @@ public Q_SLOTS: void handleItemChanged(int rowIndex, int columnIndex); void handleDataRowLabelsChanged(); void handleDataColumnLabelsChanged(); + void handleRowColorsChanged(); Q_SIGNALS: void primarySeriesChanged(QBar3DSeries *series); diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index 0c51d187..a0c58b45 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -1628,10 +1628,17 @@ bool Bars3DRenderer::drawBars(BarRenderItem **selectedBar, } case Bars3DController::SelectionNone: { // Current bar is not selected, nor on a row or column - if (colorStyleIsUniform) - barColor = baseColor; - else + if (colorStyleIsUniform) { + QList<QColor> rowColors = cache->series()->rowColors(); + if (rowColors.size() == 0) { + barColor = baseColor; + } else { + int rowColorIndex = row % rowColors.size(); + barColor = Utils::vectorFromColor(rowColors[rowColorIndex]); + } + } else { gradientTexture = cache->baseGradientTexture(); + } break; } } |