QXRD  0.11.16
qcepdatacolumnscan.cpp
Go to the documentation of this file.
1 #include "qcepdatacolumnscan.h"
2 #include "qcepdatacolumn.h"
3 #include "qcepdatacolumn-ptr.h"
4 #include <QScriptEngine>
5 
7  QcepDataGroup(sav, name, parent),
8  m_NumPoints(sav, this, "numPoints", 0, "Number of points in scan"),
9  m_Title(sav, this, "title", "", "Scan Title")
10 {
11  set_Type("Data Column Scan");
12 }
13 
15 {
16  QcepDataColumnScanPtr res(new QcepDataColumnScan(sav, name, parent));
17 
18  foreach (QString col, cols) {
19  res -> append(QcepDataColumn::newDataColumn(sav, col, npts, parent));
20  }
21 
22  res -> set_NumPoints(npts);
23 
24  return res;
25 }
26 
28 {
29  return tr("%1 rows x %2 cols").arg(rowCount()).arg(columnCount());
30 }
31 
32 QScriptValue QcepDataColumnScan::toColumnScanScriptValue(QScriptEngine *engine, const QcepDataColumnScanPtr &data)
33 {
34  return engine->newQObject(data.data());
35 }
36 
38 {
39  QObject *qobj = obj.toQObject();
40 
41  if (qobj) {
42  QcepDataColumnScan *qdobj = qobject_cast<QcepDataColumnScan*>(qobj);
43 
44  if (qdobj) {
45  QcepDataObjectPtr p = qdobj->sharedFromThis();
46 
47  if (p) {
48  QcepDataColumnScanPtr cs = qSharedPointerDynamicCast<QcepDataColumnScan>(p);
49 
50  if (cs) {
51  data = cs;
52  }
53  }
54  }
55  }
56 }
57 
59 {
60  QcepDataObjectPtr obj = item(n);
61 
62  return qSharedPointerDynamicCast<QcepDataColumn>(obj);
63 }
64 
66 {
67  return childCount();
68 }
69 
71 {
72  return get_NumPoints();
73 }
74 
76 {
77  QcepDataColumnPtr col = QcepDataColumn::newDataColumn(saver(), title, 0, this);
78 
79  append(col);
80 }
81 
83 {
84  int nc = columnCount();
85 
86  for (int i=0; i<nc; i++) {
88 
89  if (c) {
90  c -> resize(nRows);
91  }
92  }
93 
94  set_NumPoints(nRows);
95 }
96 
97 void QcepDataColumnScan::setValue(int col, int row, double val)
98 {
99  QcepDataColumnPtr c = column(col);
100 
101  if (c) {
102  c -> setValue(row, val);
103  }
104 }
105 
106 double QcepDataColumnScan::value(int col, int row)
107 {
108  QcepDataColumnPtr c = column(col);
109 
110  if (c) {
111  return c->value(row);
112  } else {
113  return qQNaN();
114  }
115 }
void resizeRows(int nRows)
QcepDataObjectPtr item(QString nm)
static QcepDataColumnPtr newDataColumn(QcepSettingsSaverWPtr saver, QString name, int npts, QcepObject *parent)
QcepDataColumnScan(QcepSettingsSaverWPtr sav, QString name, QcepObject *parent)
virtual QString description() const
static void fromColumnScanScriptValue(const QScriptValue &obj, QcepDataColumnScanPtr &data)
void setValue(int col, int row, double val)
void append(QcepDataObjectPtr obj)
QSharedPointer< QcepDataColumnScan > QcepDataColumnScanPtr
double value(int col, int row)
QSharedPointer< QcepDataColumn > QcepDataColumnPtr
int childCount() const
QcepDataColumnPtr column(int n)
void appendColumn(QString title)
static QcepDataColumnScanPtr newDataColumnScan(QcepSettingsSaverWPtr sav, QString name, QStringList cols, int npts, QcepObject *parent)
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QString name
Definition: qcepobject.h:49
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
static QScriptValue toColumnScanScriptValue(QScriptEngine *engine, const QcepDataColumnScanPtr &data)
QcepSettingsSaverWPtr saver()