Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
CurveNameList.h
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #ifndef CURVE_NAME_LIST_H
8 #define CURVE_NAME_LIST_H
9 
10 #include "CurveNameListEntry.h"
11 #include <QAbstractTableModel>
12 #include <QStringList>
13 
16 class CurveNameList : public QAbstractTableModel
17 {
18 public:
20  CurveNameList();
21 
23  virtual int columnCount (const QModelIndex &parent = QModelIndex()) const;
24 
26  bool containsCurveNameCurrent (const QString &curveName) const;
27 
29  virtual QVariant data (const QModelIndex & index,
30  int role = Qt::DisplayRole) const;
31 
33  virtual Qt::ItemFlags flags (const QModelIndex &index) const;
34 
36  virtual bool insertRows (int row, int count, const QModelIndex &parent = QModelIndex ());
37 
39  virtual bool removeRows (int row, int count, const QModelIndex &parent);
40 
42  virtual int rowCount (const QModelIndex & parent = QModelIndex()) const;
43 
45  virtual bool setData(const QModelIndex &index,
46  const QVariant &value,
47  int role = Qt::EditRole);
48 
50  virtual Qt::DropActions supportedDropActions () const;
51 
52 private:
53 
55  bool curveNameIsAcceptable (const QString &curveNameNew,
56  int row) const;
57 
59  QModelIndex indexForValue (const QModelIndex &indexToSkip,
60  const QVariant &value) const;
61 
63  bool rowIsUnpopulated (int row) const;
64 
66  void tryToRemoveOriginalCopy(const QModelIndex &index,
67  const QVariant &value,
68  int role);
69 
71  QStringList m_modelCurvesEntries;
72 };
73 
74 #endif // CURVE_NAME_LIST_H
bool containsCurveNameCurrent(const QString &curveName) const
Return true if specified curve name is already in the list.
virtual bool insertRows(int row, int count, const QModelIndex &parent=QModelIndex())
Insert one row.
virtual Qt::DropActions supportedDropActions() const
Allow dragging for reordering.
virtual Qt::ItemFlags flags(const QModelIndex &index) const
Override normal flags with additional editing flags.
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Store one curve name data.
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Retrieve data from model.
virtual bool removeRows(int row, int count, const QModelIndex &parent)
Remove one row.
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
One row per curve name.
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Columns are current curve name in first column, and original curve name in second column...
Model for DlgSettingsCurveAddRemove and CmdSettingsCurveAddRemove.
Definition: CurveNameList.h:16
CurveNameList()
Default constructor.