qavrg 0.0.28
qavrgresultsmodel.cpp
Go to the documentation of this file.
00001 #include "qavrgresultsmodel.h"
00002 #include "qavrgacquisition.h"
00003 #include "qavrgfitter.h"
00004 #include <stdio.h>
00005 
00006 QavrgResultsModel::QavrgResultsModel(QavrgAcquisition *acq, QObject *parent)
00007   : QAbstractTableModel(parent),
00008     m_Acquisition(acq)
00009 {
00010 }
00011 
00012 void QavrgResultsModel::new_FittingResults()
00013 {
00014 //  printf("QavrgResultsModel::new_FittingResults()\n");
00015 
00016   reset();
00017 }
00018 
00019 int QavrgResultsModel::rowCount(const QModelIndex &/*parent*/) const
00020 {
00021   int res = m_Acquisition->resultSize();
00022 
00023 //   printf("QavrgResultsModel::rowCount() = %d\n", res);
00024 
00025   return res;
00026 }
00027 
00028 int QavrgResultsModel::columnCount(const QModelIndex &/*parent*/) const
00029 {
00030   int res = m_Acquisition->get_NChannels();
00031 
00032 //   printf("QavrgResultsModel::columnCount() = %d\n", res);
00033 
00034   return res;
00035 }
00036 
00037 QVariant   QavrgResultsModel::data(const QModelIndex &index, int role) const
00038 {
00039   if (!index.isValid()) {
00040     return QVariant();
00041   }
00042 
00043   if (role == Qt::DisplayRole) {
00044     int row = index.row();
00045     int col = index.column();
00046 
00047     return m_Acquisition -> readResult((int)(col), QavrgFitter::PeakHeight, row);
00048   }
00049 
00050   if (role == Qt::TextAlignmentRole) {
00051     int res = Qt::AlignRight | Qt::AlignVCenter;
00052     return res;
00053   }
00054 
00055   return QVariant();
00056 }
00057 
00058 QVariant   QavrgResultsModel::headerData (int section, Qt::Orientation orientation, int role) const
00059 {
00060   if (role == Qt::DisplayRole) {
00061     const char * labels[] = {"Baseline","Slope","Peak"};
00062 
00063     if (orientation == Qt::Horizontal) {
00064       return tr("Ch%1.%2").arg((int)(section)).arg(labels[QavrgFitter::PeakHeight]);
00065     } else {
00066       return tr("%1 [%2,%3]").arg(section).arg(m_Acquisition->orbitNumber(section)).arg(m_Acquisition->bucketNumber(section));
00067     }
00068   }
00069 
00070   return QVariant();
00071 }