diff --git a/Modules/ImageStatisticsUI/Qmitk/QmitkImageStatisticsTableModel.cpp b/Modules/ImageStatisticsUI/Qmitk/QmitkImageStatisticsTableModel.cpp index ed0b71810a..b0891bc2e6 100644 --- a/Modules/ImageStatisticsUI/Qmitk/QmitkImageStatisticsTableModel.cpp +++ b/Modules/ImageStatisticsUI/Qmitk/QmitkImageStatisticsTableModel.cpp @@ -1,159 +1,158 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "QmitkImageStatisticsTableModel.h" #include QmitkImageStatisticsTableModel::QmitkImageStatisticsTableModel(QObject *parent) : QAbstractTableModel(parent) {} int QmitkImageStatisticsTableModel::rowCount(const QModelIndex &parent) const { if (parent.isValid()) { return 0; } - mitk::StatisticsContainer::StatisticsObject obj; - return static_cast(obj.GetStatisticsAsOrderedVector().size()); + return m_statisticNames.size(); } int QmitkImageStatisticsTableModel::columnCount(const QModelIndex &parent) const { if (parent.isValid() || m_statistics.IsNull()) return 0; return static_cast(m_statistics->GetNumberOfTimeSteps()); } QVariant QmitkImageStatisticsTableModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); QVariant result; if (m_viewMode == viewMode::imageXStatistic) { if (m_statistics.IsNotNull() && index.row() < rowCount(QModelIndex()) && index.column() < columnCount(QModelIndex())) { if (Qt::DisplayRole == role) { auto statisticsVector = m_statistics->GetStatisticsAsOrderedVector(index.column()); auto statisticsValueString = statisticsVector.at(index.row()).second; result = QVariant(QString::fromStdString(statisticsValueString)); } else if (Qt::UserRole == role) { result = QVariant(index.row()); } } } return result; } Qt::ItemFlags QmitkImageStatisticsTableModel::flags(const QModelIndex &index) const { Qt::ItemFlags flags = QAbstractItemModel::flags(index); return flags; } QVariant QmitkImageStatisticsTableModel::headerData(int section, Qt::Orientation orientation, int role) const { if ((Qt::DisplayRole == role) && (Qt::Horizontal == orientation)) { if (!m_imageNodes.empty()) { if (m_viewMode == viewMode::imageXStatistic) { std::string maskName; if (!m_maskNodes.empty() && m_maskNodes.size() == m_imageNodes.size()) { maskName = " / " + m_maskNodes.at(section)->GetName(); } return QVariant((m_imageNodes.at(section)->GetName() + maskName + std::to_string(section)).c_str()); } } } else if ((Qt::DisplayRole == role) && (Qt::Vertical == orientation)) { if (m_statistics.IsNotNull()) { if (m_viewMode == viewMode::imageXStatistic) { return QVariant(m_statisticNames.at(section).c_str()); } } } return QVariant(); } void QmitkImageStatisticsTableModel::SetStatistics(mitk::StatisticsContainer::ConstPointer statistics) { emit beginResetModel(); m_statistics = statistics; if (m_statisticNames.empty() && m_statistics.IsNotNull() && m_statistics->TimeStepExists(0)) { auto firstStatisticAsMap = m_statistics->GetStatisticsAsOrderedVector(0); for (const auto& keyValue : firstStatisticAsMap) { m_statisticNames.push_back(keyValue.first); } } emit endResetModel(); } void QmitkImageStatisticsTableModel::SetImageNodes(const std::vector& nodes) { std::vector tempNodes; for (int i = 0; i < nodes.size(); i++) { int timeSteps = nodes.at(i)->GetData()->GetTimeSteps(); for (int j = 0; j < timeSteps; j++) { tempNodes.push_back(nodes.at(i)); } } m_imageNodes = tempNodes; } void QmitkImageStatisticsTableModel::SetMaskNodes(const std::vector& nodes) { m_maskNodes = nodes; } void QmitkImageStatisticsTableModel::SetViewMode(viewMode m) { m_viewMode = m; } void QmitkImageStatisticsTableModel::SetStatisticsToShow(const std::vector& statisticNames) { m_statisticNamesToShow = statisticNames; } void QmitkImageStatisticsTableModel::SetStatisticsToIgnore(const std::vector& statisticNames) { m_statisticNamesToIgnore = statisticNames; } void QmitkImageStatisticsTableModel::Clear() { emit beginResetModel(); m_statistics = nullptr; m_imageNodes.clear(); m_maskNodes.clear(); m_statisticNamesToIgnore.clear(); m_statisticNamesToShow.clear(); m_statisticNames.clear(); emit endResetModel(); }