QseNormalizerModel Class Reference

#include <qsenormalizermodel.h>

Inheritance diagram for QseNormalizerModel:

Inheritance graph
[legend]
Collaboration diagram for QseNormalizerModel:

Collaboration graph
[legend]

List of all members.

Public Slots

void operationCompleted ()
void dataChanged ()
void dataCleared ()
void scanAdded (int n)

Public Member Functions

 QseNormalizerModel (QseNormalizer *normalizer, QTableView *tableview, QObject *parent=0)
int rowCount (const QModelIndex &parent=QModelIndex()) const
int columnCount (const QModelIndex &parent=QModelIndex()) const
QVariant data (const QModelIndex &index, int role) const
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
void setScanExceptions (QItemSelectionModel *s, QseNormalizer::QseScanRole r)
void setColumnExceptions (QItemSelectionModel *s, QseNormalizer::QseColumnRole r)

Private Types

typedef QAbstractTableModel inherited

Private Attributes

QseNormalizerm_Normalizer
QTableView * m_TableView


Detailed Description

Definition at line 9 of file qsenormalizermodel.h.


Member Typedef Documentation

Definition at line 11 of file qsenormalizermodel.h.


Constructor & Destructor Documentation

QseNormalizerModel::QseNormalizerModel ( QseNormalizer normalizer,
QTableView *  tableview,
QObject parent = 0 
)

Definition at line 9 of file qsenormalizermodel.cpp.

References QseNormalizerUI::m_Normalizer.

00010   : inherited(parent),
00011     m_Normalizer(normalizer),
00012     m_TableView(table)
00013 {
00014   connect(m_Normalizer -> inputData(), SIGNAL(operationCompleted()),
00015     this,                        SLOT(operationCompleted()));
00016 
00017 //   connect(m_Normalizer -> inputData(), SIGNAL(dataChanged()),
00018 //    this,                        SLOT(dataChanged()));
00019 
00020 //   connect(m_Normalizer -> inputData(), SIGNAL(dataCleared()),
00021 //    this,                        SLOT(dataCleared()));
00022 
00023 //   connect(m_Normalizer -> inputData(), SIGNAL(dataChanged()),
00024 //    this,                        SIGNAL(modelReset()));
00025 }


Member Function Documentation

int QseNormalizerModel::rowCount ( const QModelIndex &  parent = QModelIndex()  )  const

Definition at line 28 of file qsenormalizermodel.cpp.

References m_Normalizer.

00029 {
00030   if (parent.column() > 0) {
00031     return 0;
00032   }
00033 
00034   int res = m_Normalizer -> inputData() -> scanCount();
00035 
00036   return res;
00037 }

int QseNormalizerModel::columnCount ( const QModelIndex &  parent = QModelIndex()  )  const

Definition at line 40 of file qsenormalizermodel.cpp.

References m_Normalizer.

Referenced by data().

00041 {
00042   int res = 3 + m_Normalizer -> inputData() -> maxColumnCount();
00043 
00044 //   printf("QseNormalizerModel::columnCount = %d\n", res);
00045 
00046   return res;
00047 }

QVariant QseNormalizerModel::data ( const QModelIndex &  index,
int  role 
) const

Definition at line 50 of file qsenormalizermodel.cpp.

References QseScan::column(), columnCount(), and m_Normalizer.

00051 {
00052 //   printf("QseNormalizerModel::data(%d,%d,%d)\n", index.row(), index.column(), role);
00053 
00054   if (!index.isValid()) {
00055     return QVariant();
00056   }
00057 
00058   if (role == Qt::DisplayRole) {
00059 
00060     int row = index.row();
00061     int col = index.column();
00062 
00063     QseScan *scan = m_Normalizer -> inputData() -> scan(row);
00064 
00065     switch (col) {
00066     case 0:
00067       return scan -> name();
00068       break;
00069     case 1:
00070       return scan -> maxRowCount();
00071       break;
00072     case 2:
00073       return scan -> columnCount();
00074       break;
00075     default:
00076       QseColumn *c = scan->column(col-3);
00077       
00078       if (c) {
00079   return c -> name();
00080       } else {
00081   return QVariant();
00082       }
00083     }
00084     
00085   } else if (role == Qt::BackgroundRole) {
00086     int row = index.row();
00087     int col = index.column();
00088 
00089     QseScan *scan = m_Normalizer -> inputData() -> scan(row);
00090 
00091     switch (col) {
00092     case 0:
00093     case 1:
00094     case 2:
00095       if (m_Normalizer -> matchesScanException(row)) {
00096   return QColor(230,255,230);
00097       } else {
00098   return Qt::white;
00099       }
00100       break;
00101     default:
00102       QseColumn *c = scan->column(col-3);
00103       
00104       if (c) {
00105   if (m_Normalizer -> matchesColumnException(row, col-3)) {
00106     return QColor(230,255,230);
00107   } else {
00108     return Qt::white;
00109   }
00110       } else {
00111   return QVariant();
00112       }
00113     }
00114   } else if (role == Qt::ForegroundRole) {
00115 //     printf("Foreground role\n");
00116 
00117     int row = index.row();
00118     int col = index.column();
00119 
00120     QseScan *scan = m_Normalizer -> inputData() -> scan(row);
00121 
00122     switch (col) {
00123     case 0:
00124     case 1:
00125     case 2:
00126       if (m_Normalizer -> matchesScan(row)) {
00127   return Qt::black;
00128       } else {
00129   return Qt::gray;
00130       }
00131       break;
00132     default:
00133       QseColumn *c = scan->column(col-3);
00134       
00135       if (c) {
00136   if (m_Normalizer -> matchesEnergyColumn(c,col-3)) {
00137     return QColor(255,0,0);
00138   } else if (m_Normalizer -> matchesDetectorColumn(c,col-3)) {
00139     return QColor(0,0,255);
00140   } else if (m_Normalizer -> matchesNormalizationColumn(c,col-3)) {
00141     return QColor(0,255,0);
00142   } else if (m_Normalizer -> matchesSecondsColumn(c,col-3)) {
00143     return QColor(255,0,255);
00144   } else {
00145     return QVariant();
00146   }
00147       } else {
00148   return QVariant();
00149       }
00150     }
00151   } else {
00152     return QVariant();
00153   }
00154 }

Here is the call graph for this function:

QVariant QseNormalizerModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const

Definition at line 158 of file qsenormalizermodel.cpp.

00159 {
00160   if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
00161     switch (section) {
00162     case 0:
00163       return "Scan Name";
00164       break;
00165     case 1:
00166       return "Rows";
00167       break;
00168     case 2:
00169       return "Columns";
00170       break;
00171     default:
00172       return tr("Col %1").arg(section-3);
00173     }
00174   }
00175 
00176   if (orientation == Qt::Vertical && role == Qt::DisplayRole) {
00177     return section;
00178   }
00179 
00180   return QVariant();
00181 }

void QseNormalizerModel::setScanExceptions ( QItemSelectionModel *  s,
QseNormalizer::QseScanRole  r 
)

Definition at line 216 of file qsenormalizermodel.cpp.

References m_Normalizer.

00217 {
00218   QItemSelection sel = s->selection();
00219   QItemSelectionRange range;
00220 
00221   foreach(range, sel) {
00222     for (int i=range.top(); i<=range.bottom(); i++) {
00223       m_Normalizer -> setScanException(i, r);
00224     }
00225   }
00226 }

void QseNormalizerModel::setColumnExceptions ( QItemSelectionModel *  s,
QseNormalizer::QseColumnRole  r 
)

Definition at line 230 of file qsenormalizermodel.cpp.

References m_Normalizer.

00231 {
00232   QItemSelection sel = s->selection();
00233   QItemSelectionRange range;
00234 
00235   foreach(range, sel) {
00236     for (int i=range.top(); i<=range.bottom(); i++) {
00237       for (int c=range.left(); c<=range.right(); c++) {
00238   if (c >= 3) {
00239     m_Normalizer -> setColumnException(i, c-3, r);
00240   }
00241       }
00242     }
00243   }
00244 }

void QseNormalizerModel::operationCompleted (  )  [slot]

Definition at line 184 of file qsenormalizermodel.cpp.

References m_TableView.

00185 {
00186 //   printf("QseNormalizerModel::operationCompleted()\n");
00187 
00188   reset();
00189 
00190   m_TableView -> resizeRowsToContents();
00191   m_TableView -> resizeColumnsToContents();
00192 }

void QseNormalizerModel::dataChanged (  )  [slot]

Definition at line 195 of file qsenormalizermodel.cpp.

00196 {
00197 //   m_TableView -> resizeRowsToContents();
00198 //   m_TableView -> resizeColumnsToContents();
00199 
00200 //   reset();
00201 }

void QseNormalizerModel::dataCleared (  )  [slot]

Definition at line 204 of file qsenormalizermodel.cpp.

00205 {
00206 //   reset();
00207 }

void QseNormalizerModel::scanAdded ( int  n  )  [slot]

Definition at line 210 of file qsenormalizermodel.cpp.

00211 {
00212 }


Member Data Documentation

QTableView* QseNormalizerModel::m_TableView [private]

Definition at line 37 of file qsenormalizermodel.h.

Referenced by operationCompleted().


The documentation for this class was generated from the following files:

Generated on Fri Aug 8 13:55:52 2008 for QSE by  doxygen 1.5.6