00001 #include "qsegraphcolumnsmodel.h"
00002 #include "qsedataset.h"
00003 #include "qsegraphcontroller.h"
00004 #include <QTableView>
00005
00006 QseGraphColumnsModel::QseGraphColumnsModel
00007 (QseGraphController* controller, QTableView *table, QObject *parent)
00008 : QAbstractTableModel(parent),
00009 m_Controller(controller),
00010 m_DataSet(NULL),
00011 m_TableView(table)
00012 {
00013 if (m_Controller) {
00014 m_DataSet = m_Controller->dataSet();
00015 }
00016 }
00017
00018
00019
00020
00021
00022
00023 void
00024 QseGraphColumnsModel::emitDataChanged
00025 (const QModelIndex & topLeft, const QModelIndex & bottomRight)
00026 {
00027 emit dataChanged(topLeft, bottomRight);
00028
00029 m_TableView -> resizeRowsToContents();
00030 m_TableView -> resizeColumnsToContents();
00031 }
00032
00033 void
00034 QseGraphColumnsModel::columnsChanged()
00035 {
00036 reset();
00037 }
00038
00039 int
00040 QseGraphColumnsModel::rowCount(const QModelIndex &parent) const
00041 {
00042 if (parent.column() > 0) {
00043 return 0;
00044 }
00045
00046 int res = m_Controller->selectedColumnCount();
00047
00048 return res;
00049 }
00050
00051 int
00052 QseGraphColumnsModel::columnCount(const QModelIndex &parent) const
00053 {
00054 return 5;
00055 }
00056
00057 QVariant
00058 QseGraphColumnsModel::data(const QModelIndex &index, int role) const
00059 {
00060 if (!index.isValid()) {
00061 return QVariant();
00062 }
00063
00064
00065
00066
00067
00068 int row = index.row();
00069 int col = index.column();
00070
00071 switch (role) {
00072 case Qt::DisplayRole:
00073 switch (col) {
00074 case 0:
00075 return m_Controller->selectedColumn(row);
00076 break;
00077 case 1:
00078 return m_Controller->selectedPlotX(row) ? "X" : " ";
00079 break;
00080 case 2:
00081 return m_Controller->selectedPlotY(row) ? "Y" : " ";
00082 break;
00083 case 3:
00084 return m_Controller->selectedPlotY2(row) ? "Y2" : " ";
00085 break;
00086 case 4:
00087 return m_Controller->selectedPlotNorm(row) ? "NRM" : " ";
00088 break;
00089 default:
00090 return QVariant();
00091 }
00092
00093 case Qt::DecorationRole:
00094 switch (col) {
00095 case 2:
00096 return m_Controller->selectedPlotY(row) ? QIcon(":/images/ok.png") : QIcon(":/images/up.png");
00097 break;
00098 default:
00099 return QVariant();
00100 }
00101 break;
00102
00103 default:
00104 return QVariant();
00105 }
00106 }
00107
00108 QVariant
00109 QseGraphColumnsModel::headerData
00110 (int section, Qt::Orientation orientation, int role) const
00111 {
00112 if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
00113 switch (section) {
00114 case 0:
00115 return "Col";
00116 break;
00117 case 1:
00118 return "X";
00119 break;
00120 case 2:
00121 return "Y1";
00122 break;
00123 case 3:
00124 return "Y2";
00125 break;
00126 case 4:
00127 return "NRM";
00128 break;
00129 default:
00130 return QVariant();
00131 }
00132 }
00133
00134 if (orientation == Qt::Vertical && role == Qt::DisplayRole) {
00135 return section;
00136 }
00137
00138 return QVariant();
00139 }