QXRD  0.11.16
qcepdatacolumn.cpp
Go to the documentation of this file.
1 #include "qcepdatacolumn.h"
2 #include "qcepallocator.h"
3 #include <QScriptEngine>
4 
6  QcepDataObject(saver, name, npts*sizeof(double), parent),
7  m_NPoints(npts),
8  m_Vector(npts)
9 {
10  set_Type("Data Column");
11 
12  QcepAllocator::allocate(m_NPoints*sizeof(double));
13 }
14 
16 {
17  QcepAllocator::deallocate(m_NPoints*sizeof(double));
18 }
19 
21 {
22  return tr("%1 rows").arg(m_NPoints);
23 }
24 
26 {
27  QcepDataColumnPtr res(new QcepDataColumn(saver, name, npts, parent));
28 
29  return res;
30 }
31 
32 QScriptValue QcepDataColumn::toColumnScriptValue(QScriptEngine *engine, const QcepDataColumnPtr &data)
33 {
34  return engine->newQObject(data.data());
35 }
36 
38 {
39  QObject *qobj = obj.toQObject();
40 
41  if (qobj) {
42  QcepDataColumn *qdobj = qobject_cast<QcepDataColumn*>(qobj);
43 
44  if (qdobj) {
45  QcepDataObjectPtr p = qdobj->sharedFromThis();
46 
47  if (p) {
48  QcepDataColumnPtr cs = qSharedPointerDynamicCast<QcepDataColumn>(p);
49 
50  if (cs) {
51  data = cs;
52  }
53  }
54  }
55  }
56 }
57 
59 {
60  return 1;
61 }
62 
64 {
65  return m_NPoints;
66 }
67 
69 {
70  m_Vector.resize(n);
71 
72  QcepAllocator::allocate(sizeof(double), 1, n-m_NPoints);
73 
74  m_NPoints = n;
75 }
76 
77 double QcepDataColumn::value(int i) const
78 {
79  return m_Vector.value(i);
80 }
81 
82 void QcepDataColumn::setValue(int i, const double value)
83 {
84  if (i >= 0 && i < count()) {
85  m_Vector[i] = value;
86  }
87 }
88 
90 {
91  return m_Vector.count();
92 }
93 
95 {
96  return m_Vector.data();
97 }
static void deallocate(int sz, int width, int height)
static QcepDataColumnPtr newDataColumn(QcepSettingsSaverWPtr saver, QString name, int npts, QcepObject *parent)
virtual double * data()
virtual int rowCount() const
QcepDataColumn(QcepSettingsSaverWPtr saver, QString name, int npts, QcepObject *parent)
QSharedPointer< QcepDataColumn > QcepDataColumnPtr
virtual void resize(int n)
QVector< double > m_Vector
static QScriptValue toColumnScriptValue(QScriptEngine *engine, const QcepDataColumnPtr &data)
virtual ~QcepDataColumn()
static void allocate(int sz, int width, int height)
QSharedPointer< QcepDataObject > QcepDataObjectPtr
static void fromColumnScriptValue(const QScriptValue &obj, QcepDataColumnPtr &data)
virtual int columnCount() const
virtual void setValue(int i, const double value)
QString name
Definition: qcepobject.h:49
virtual int count() const
virtual QString description() const
virtual double value(int i) const
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
QcepSettingsSaverWPtr saver()