From 1f9a6ca62c282658ae1f76a59e521cd99a280ba5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 29 Aug 2013 09:31:09 +0300 Subject: Fix crash when resetting axes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Selection label generation didn't account for case where category axes are empty. Change-Id: I3c41f14764f810b52c20c5fc8adce5f9d8dea4d5 Reviewed-by: Tomi Korpipää --- src/datavis3d/engine/bars3drenderer.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/datavis3d/engine/bars3drenderer.cpp') diff --git a/src/datavis3d/engine/bars3drenderer.cpp b/src/datavis3d/engine/bars3drenderer.cpp index ce7dd0e4..cb26a88c 100644 --- a/src/datavis3d/engine/bars3drenderer.cpp +++ b/src/datavis3d/engine/bars3drenderer.cpp @@ -1351,11 +1351,19 @@ void Bars3dRenderer::drawScene(CameraHelper *camera, // Custom format expects printf format specifier. There is no tag for it. labelText = generateValueLabel(itemLabelFormat(), selectedBar->value()); - labelText.replace(rowIndexTag, QString::number(selectedBar->position().x())); - labelText.replace(rowLabelTag, m_axisCacheX.labels().at(selectedBar->position().x())); + int selBarPosX = selectedBar->position().x(); + int selBarPosY = selectedBar->position().y(); + labelText.replace(rowIndexTag, QString::number(selBarPosX)); + if (m_axisCacheX.labels().size() > selBarPosX) + labelText.replace(rowLabelTag, m_axisCacheX.labels().at(selBarPosX)); + else + labelText.replace(rowLabelTag, QString()); labelText.replace(rowTitleTag, m_axisCacheX.title()); - labelText.replace(colIndexTag, QString::number(selectedBar->position().y())); - labelText.replace(colLabelTag, m_axisCacheZ.labels().at(selectedBar->position().y())); + labelText.replace(colIndexTag, QString::number(selBarPosY)); + if (m_axisCacheZ.labels().size() > selBarPosY) + labelText.replace(colLabelTag, m_axisCacheZ.labels().at(selBarPosY)); + else + labelText.replace(colLabelTag, QString()); labelText.replace(colTitleTag, m_axisCacheZ.title()); labelText.replace(valueTitleTag, m_axisCacheY.title()); -- cgit v1.2.3