00001
00002
00003
00004
00005
00006
00007 #ifndef CURVE_NAME_LIST_H
00008 #define CURVE_NAME_LIST_H
00009
00010 #include <QHash>
00011 #include <QStandardItemModel>
00012 #include <QString>
00013 #include <QVector>
00014
00015
00016 typedef QHash<QString, QString> CurrentCurveToOriginalCurve;
00017 typedef QHash<QString, unsigned int> OriginalCurveToPointCount;
00018
00019
00020 enum CurveNameListColumns {
00021 CURVE_NAME_LIST_COLUMN_CURRENT,
00022 NUMBER_CURVE_NAME_LIST_COLUMNS
00023 };
00024
00027 class CurveNameList : public QStandardItemModel
00028 {
00029 public:
00031 CurveNameList();
00032
00034 virtual int columnCount (const QModelIndex &parent) const;
00035
00037 bool containsCurveNameCurrent (const QString &curveName) const;
00038
00040 QString currentCurvesAsString () const;
00041
00043 QString currentCurveToOriginalCurve (const QString ¤tCurve) const;
00044
00046 unsigned int currentCurveToPointCount (const QString ¤tCurve) const;
00047
00049 virtual Qt::ItemFlags flags (const QModelIndex &index) const;
00050
00052 void insertRow (int row,
00053 const QString &curveCurrent,
00054 const QString &curveOriginal,
00055 unsigned int pointCount);
00056
00058 virtual QStandardItem *item(int row, int column = 0) const;
00059
00061 unsigned int numPointsForSelectedCurves (const QList<unsigned int> &rowsSelected) const;
00062
00064 virtual bool removeRows (int row, int count, const QModelIndex &parent);
00065
00067 void reset ();
00068
00070 virtual int rowCount (const QModelIndex & parent = QModelIndex()) const;
00071
00073 virtual bool setData (const QModelIndex &index,
00074 const QVariant &value,
00075 int role);
00076
00078 virtual void setItem(int row, int column, QStandardItem *item);
00079
00081 virtual Qt::DropActions supportedDropActions () const;
00082
00083 private:
00084
00086 bool curveNameIsAcceptable (const QString &curveNameNew,
00087 int row) const;
00088
00089
00090 CurrentCurveToOriginalCurve m_currentCurveToOriginalCurve;
00091 OriginalCurveToPointCount m_originalCurveToPointCount;
00092 };
00093
00094 #endif // CURVE_NAME_LIST_H