00001
00002
00003
00004
00005
00006
00007 #ifndef CURVE_NAME_LIST_H
00008 #define CURVE_NAME_LIST_H
00009
00010 #include "CurveNameListEntry.h"
00011 #include <QAbstractTableModel>
00012 #include <QStringList>
00013
00016 class CurveNameList : public QAbstractTableModel
00017 {
00018 public:
00020 CurveNameList();
00021
00023 virtual int columnCount (const QModelIndex &parent = QModelIndex()) const;
00024
00026 bool containsCurveNameCurrent (const QString &curveName) const;
00027
00029 virtual QVariant data (const QModelIndex & index,
00030 int role = Qt::DisplayRole) const;
00031
00033 virtual Qt::ItemFlags flags (const QModelIndex &index) const;
00034
00036 virtual bool insertRows (int row, int count, const QModelIndex &parent = QModelIndex ());
00037
00039 virtual bool removeRows (int row, int count, const QModelIndex &parent);
00040
00042 virtual int rowCount (const QModelIndex & parent = QModelIndex()) const;
00043
00045 virtual bool setData(const QModelIndex &index,
00046 const QVariant &value,
00047 int role = Qt::EditRole);
00048
00050 virtual Qt::DropActions supportedDropActions () const;
00051
00052 private:
00053
00055 bool curveNameIsAcceptable (const QString &curveNameNew,
00056 int row) const;
00057
00059 QModelIndex indexForValue (const QModelIndex &indexToSkip,
00060 const QVariant &value) const;
00061
00063 bool rowIsUnpopulated (int row) const;
00064
00066 void tryToRemoveOriginalCopy(const QModelIndex &index,
00067 const QVariant &value,
00068 int role);
00069
00071 QStringList m_modelCurvesEntries;
00072 };
00073
00074 #endif // CURVE_NAME_LIST_H