QXRD  0.11.16
qcepdatasetmodel.h
Go to the documentation of this file.
1 #ifndef QCEPDATASETMODEL_H
2 #define QCEPDATASETMODEL_H
3 
4 #include <QAbstractItemModel>
5 #include "qcepdataset-ptr.h"
6 #include "qcepdataset.h"
7 #include "qcepdataobject-ptr.h"
8 #include "qcepdataobject.h"
9 #include "qcepdatagroup-ptr.h"
10 #include "qcepdatagroup.h"
11 #include "qcepdataarray-ptr.h"
12 #include "qcepdataarray.h"
13 #include "qcepdatacolumn-ptr.h"
14 #include "qcepdatacolumn.h"
15 #include "qcepdatacolumnscan-ptr.h"
16 #include "qcepdatacolumnscan.h"
17 #include "qcepimagedata-ptr.h"
18 #include "qcepimagedata.h"
19 #include "qcepintegrateddata-ptr.h"
20 #include "qcepintegrateddata.h"
21 
22 class QcepDatasetModel : public QAbstractItemModel
23 {
24  Q_OBJECT
25 
26 public:
28 
29 public slots:
30  QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
31  QModelIndex index(const QcepDataObjectPtr &obj) const;
32  QModelIndex parent(const QModelIndex &index) const;
33  int rowCount(const QModelIndex &parent = QModelIndex()) const;
34  int columnCount(const QModelIndex &parent = QModelIndex()) const;
35  QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
36  QVariant headerData(int section, Qt::Orientation orientation, int role) const;
37 
38  Qt::ItemFlags flags(const QModelIndex &index) const;
39 
40  QcepDataObjectPtr indexedObject(const QModelIndex& index) const;
41 
42  QStringList mimeTypes() const;
43  QMimeData *mimeData(const QModelIndexList &indexes) const;
44 
45  bool insertRows(int row, int count, const QModelIndex &parent);
46  bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild);
47  bool removeRows(int row, int count, const QModelIndex &parent);
48 
49 public slots:
50  QcepDataObjectPtr item(const QModelIndex &index);
51  QcepDataObjectPtr item(QString path);
52  QcepDataObjectPtr item(int n);
53 
54  QcepDataGroupPtr group(const QModelIndex &index);
55  QcepDataGroupPtr group(QString path);
56  QcepDataGroupPtr group(int n);
57  QcepDataGroupPtr newGroup(QString path);
58 
59  QcepDataArrayPtr array(const QModelIndex &index);
60  QcepDataArrayPtr array(QString path);
61  QcepDataArrayPtr array(int n);
62  QcepDataArrayPtr newArray(QString path, QVector<int> dims = QVector<int>());
63 
64  QcepDataColumnPtr column(const QModelIndex &index);
65  QcepDataColumnPtr column(QString path);
67  QcepDataColumnPtr newColumn(QString path, int nRows=0);
68 
69  QcepDataColumnScanPtr columnScan(const QModelIndex &index);
70  QcepDataColumnScanPtr columnScan(QString path);
73  int nRows=0, QStringList cols=QStringList());
74 
75  QcepDoubleImageDataPtr image(const QModelIndex &index);
76  QcepDoubleImageDataPtr image(QString path);
78  QcepDoubleImageDataPtr newImage(QString path, int width=0, int height=0);
79 
80  QcepIntegratedDataPtr integratedData(const QModelIndex &index);
83  QcepIntegratedDataPtr newIntegratedData(QString path, int sz);
84 
85  void append(const QModelIndex &index, QcepDataObjectPtr obj);
86  void append(QString path, QcepDataObjectPtr obj);
87  void remove(QcepDataObjectPtr obj);
88  void remove(const QModelIndex &index);
89  void remove(QString path);
90 
91  void insertGroup(int atRow, QString name);
92 
93 private slots:
94  void onDataObjectChanged();
95 
96 private:
97  QString indexDescription(const QModelIndex& index) const;
98  QString groupName(QString path);
99  QString objectName(QString path);
100 
101 private:
103 };
104 
105 #endif // QCEPDATASETMODEL_H
QcepDataColumnScanPtr newColumnScan(QString path, int nRows=0, QStringList cols=QStringList())
QSharedPointer< QcepDataArray > QcepDataArrayPtr
QcepDoubleImageDataPtr newImage(QString path, int width=0, int height=0)
QString groupName(QString path)
void append(const QModelIndex &index, QcepDataObjectPtr obj)
QcepDataArrayPtr array(const QModelIndex &index)
QSharedPointer< QcepDataGroup > QcepDataGroupPtr
QVariant headerData(int section, Qt::Orientation orientation, int role) const
QSharedPointer< QcepDataColumnScan > QcepDataColumnScanPtr
QcepDataObjectPtr indexedObject(const QModelIndex &index) const
QcepDataGroupPtr group(const QModelIndex &index)
QSharedPointer< QcepDataColumn > QcepDataColumnPtr
QcepIntegratedDataPtr newIntegratedData(QString path, int sz)
void insertGroup(int atRow, QString name)
QSharedPointer< QcepIntegratedData > QcepIntegratedDataPtr
QcepDataColumnPtr column(const QModelIndex &index)
int rowCount(const QModelIndex &parent=QModelIndex()) const
int columnCount(const QModelIndex &parent=QModelIndex()) const
QModelIndex parent(const QModelIndex &index) const
QcepDatasetModel(QcepDatasetWPtr ds)
QcepDataColumnPtr newColumn(QString path, int nRows=0)
QStringList mimeTypes() const
QcepDatasetWPtr m_Dataset
QMimeData * mimeData(const QModelIndexList &indexes) const
QcepDataArrayPtr newArray(QString path, QVector< int > dims=QVector< int >())
QcepIntegratedDataPtr integratedData(const QModelIndex &index)
QcepDoubleImageDataPtr image(const QModelIndex &index)
QString indexDescription(const QModelIndex &index) const
QString objectName(QString path)
QcepDataColumnScanPtr columnScan(const QModelIndex &index)
QcepDataGroupPtr newGroup(QString path)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const
QcepDataObjectPtr item(const QModelIndex &index)
bool moveRows(const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild)
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QWeakPointer< QcepDataset > QcepDatasetWPtr
bool insertRows(int row, int count, const QModelIndex &parent)
bool removeRows(int row, int count, const QModelIndex &parent)
Qt::ItemFlags flags(const QModelIndex &index) const
QSharedPointer< QcepDoubleImageData > QcepDoubleImageDataPtr