#include <qsenormalizermodel.h>


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 | |
| QseNormalizer * | m_Normalizer |
| QTableView * | m_TableView |
Definition at line 9 of file qsenormalizermodel.h.
typedef QAbstractTableModel QseNormalizerModel::inherited [private] |
Definition at line 11 of file qsenormalizermodel.h.
| 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 }
| 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 }

| 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] |
| void QseNormalizerModel::scanAdded | ( | int | n | ) | [slot] |
QseNormalizer* QseNormalizerModel::m_Normalizer [private] |
Definition at line 36 of file qsenormalizermodel.h.
Referenced by columnCount(), data(), rowCount(), setColumnExceptions(), and setScanExceptions().
QTableView* QseNormalizerModel::m_TableView [private] |
1.5.6