libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::TraceJs Class Reference

#include <tracejs.h>

Inheritance diagram for pappso::TraceJs:

Signals

void countChangedSignal ()
 

Public Member Functions

Q_INVOKABLE TraceJs (QObject *parent=nullptr)
 
Q_INVOKABLE TraceJs (const Trace &trace, QObject *parent=nullptr)
 
TraceJsoperator= (const TraceJs &)=delete
 
Q_INVOKABLE int count () const
 
Q_INVOKABLE int getCount () const
 
Q_INVOKABLE void append (double x, double y)
 
Q_INVOKABLE void append (const DataPointJs *data_point_js_p)
 
Q_INVOKABLE DataPointJsgetPointAt (int index) const
 
Q_INVOKABLE QVariantList getTrace () const
 
Q_INVOKABLE void initialize (const QVariantList &js_points)
 
Q_INVOKABLE void initialize (const QVariantMap &map)
 
Q_INVOKABLE std::size_t initialize (const QVariantList &x_values, const QVariantList &y_values)
 
Q_INVOKABLE std::size_t initialize (const QString &x_text, const QString &y_text)
 
Q_INVOKABLE std::size_t initialize (const QString &space_sep_text)
 
Q_INVOKABLE std::size_t initialize (const TraceJs &other)
 
Q_INVOKABLE QVariantList xValues () const
 
Q_INVOKABLE QVariantList yValues () const
 
Q_INVOKABLE QVariantMap toMap () const
 
Q_INVOKABLE void clear ()
 

Static Public Member Functions

static void registerJsConstructor (QJSEngine *engine)
 

Properties

int count
 

Private Attributes

Trace m_trace
 

Detailed Description

Definition at line 26 of file tracejs.h.

Constructor & Destructor Documentation

◆ TraceJs() [1/2]

pappso::TraceJs::TraceJs ( QObject * parent = nullptr)
explicit

Definition at line 10 of file tracejs.cpp.

10 : QObject(parent), m_trace()
11{
12}
Trace m_trace
Definition tracejs.h:70

References m_trace.

Referenced by getPointAt(), getTrace(), initialize(), and operator=().

◆ TraceJs() [2/2]

pappso::TraceJs::TraceJs ( const Trace & trace,
QObject * parent = nullptr )
explicit

Definition at line 14 of file tracejs.cpp.

14 : QObject(parent), m_trace(trace)
15{
16}

References m_trace.

Member Function Documentation

◆ append() [1/2]

void pappso::TraceJs::append ( const DataPointJs * data_point_js_p)

Definition at line 40 of file tracejs.cpp.

41{
42 if(data_point_js_p != nullptr)
43 {
44 m_trace.push_back(data_point_js_p->dataPoint());
45 emit countChangedSignal();
46 }
47}
void countChangedSignal()

References countChangedSignal(), pappso::DataPointJs::dataPoint(), and m_trace.

◆ append() [2/2]

void pappso::TraceJs::append ( double x,
double y )

Definition at line 33 of file tracejs.cpp.

34{
35 m_trace.push_back(DataPoint(x, y));
36 emit countChangedSignal();
37}

References countChangedSignal(), m_trace, pappso::x, and pappso::y.

Referenced by operator=().

◆ clear()

void pappso::TraceJs::clear ( )

Definition at line 219 of file tracejs.cpp.

220{
221 m_trace.clear();
222}

References m_trace.

Referenced by operator=().

◆ count()

int pappso::TraceJs::count ( ) const

Definition at line 27 of file tracejs.cpp.

28{
29 return getCount();
30}
Q_INVOKABLE int getCount() const
Definition tracejs.cpp:20

References getCount().

◆ countChangedSignal

void pappso::TraceJs::countChangedSignal ( )
signal

◆ getCount()

int pappso::TraceJs::getCount ( ) const

Definition at line 20 of file tracejs.cpp.

21{
22 return static_cast<int>(m_trace.size());
23}

References m_trace.

Referenced by count(), and operator=().

◆ getPointAt()

DataPointJs * pappso::TraceJs::getPointAt ( int index) const

Definition at line 50 of file tracejs.cpp.

51{
52 if(index < 0 || index >= static_cast<int>(m_trace.size()))
53 {
54 return nullptr;
55 }
56
57 // Simple version: create wrapper on the fly
58 return new DataPointJs(m_trace[index], const_cast<TraceJs *>(this));
59}
Q_INVOKABLE TraceJs(QObject *parent=nullptr)
Definition tracejs.cpp:10

References TraceJs(), and m_trace.

Referenced by operator=().

◆ getTrace()

QVariantList pappso::TraceJs::getTrace ( ) const

Definition at line 63 of file tracejs.cpp.

64{
65 QVariantList list;
66
67 for(const DataPoint &data_point : m_trace)
68 {
69 DataPointJs *data_point_js_p = new DataPointJs(data_point, const_cast<TraceJs *>(this));
70 list.append(QVariant::fromValue(data_point_js_p));
71 }
72
73 return list;
74}

References TraceJs(), and m_trace.

Referenced by operator=().

◆ initialize() [1/6]

size_t pappso::TraceJs::initialize ( const QString & space_sep_text)

Definition at line 152 of file tracejs.cpp.

153{
154 m_trace.initialize(space_sep_text);
155
156 emit countChangedSignal();
157
158 return m_trace.size();
159}

References countChangedSignal(), and m_trace.

◆ initialize() [2/6]

size_t pappso::TraceJs::initialize ( const QString & x_text,
const QString & y_text )

Definition at line 142 of file tracejs.cpp.

143{
144 m_trace.initialize(x_text, y_text);
145
146 emit countChangedSignal();
147
148 return m_trace.size();
149}

References countChangedSignal(), and m_trace.

◆ initialize() [3/6]

void pappso::TraceJs::initialize ( const QVariantList & js_points)

Definition at line 77 of file tracejs.cpp.

78{
79 m_trace.clear();
80
81 for(const QVariant &variant : js_points)
82 {
83 QObject *obj = variant.value<QObject *>();
84
85 // The cast returns nullptr if the variant did not
86 // convert to DataPointJs.
87 if(auto data_point_js = qobject_cast<DataPointJs *>(obj))
88 {
89 DataPoint data_point = data_point_js->dataPoint();
90 m_trace.push_back(data_point); // Extract the internal DataPoint
91 }
92 else
93 {
94 qWarning() << "Failed initializing Trace because list member is not a DataPointJs object:"
95 << obj;
96 }
97 }
98
99 emit countChangedSignal();
100}

References countChangedSignal(), and m_trace.

Referenced by operator=().

◆ initialize() [4/6]

std::size_t pappso::TraceJs::initialize ( const QVariantList & x_values,
const QVariantList & y_values )

Definition at line 125 of file tracejs.cpp.

126{
127 if(x_values.size() != y_values.size())
128 qFatal() << "The two containers must have the same size.";
129
130 m_trace.clear();
131 m_trace.reserve(x_values.size());
132
133 for(int iter = 0; iter < x_values.size(); ++iter)
134 m_trace.push_back(DataPoint(x_values.at(iter).toDouble(), y_values.at(iter).toDouble()));
135
136 emit countChangedSignal();
137
138 return m_trace.size();
139}

References countChangedSignal(), and m_trace.

◆ initialize() [5/6]

void pappso::TraceJs::initialize ( const QVariantMap & map)

Definition at line 104 of file tracejs.cpp.

105{
106 m_trace.clear();
107 m_trace.reserve(map.size());
108
109 for(auto it = map.constBegin(); it != map.constEnd(); ++it)
110 {
111 bool key_ok, value_ok;
112 double key = it.key().toDouble(&key_ok);
113 double value = it.value().toDouble(&value_ok);
114
115 if(key_ok && value_ok)
116 m_trace.emplace_back(key, value);
117 else
118 qWarning() << "Skipping invalid map entry at key:" << it.key();
119 }
120
121 emit countChangedSignal();
122}

References countChangedSignal(), and m_trace.

◆ initialize() [6/6]

size_t pappso::TraceJs::initialize ( const TraceJs & other)

Definition at line 162 of file tracejs.cpp.

163{
164 m_trace.clear();
165 m_trace.reserve(other.m_trace.size());
166
167 for(const DataPoint &dp : other.m_trace)
168 m_trace.emplace_back(dp);
169
170 emit countChangedSignal();
171
172 return m_trace.size();
173}

References TraceJs(), countChangedSignal(), and m_trace.

◆ operator=()

◆ registerJsConstructor()

void pappso::TraceJs::registerJsConstructor ( QJSEngine * engine)
static

Definition at line 225 of file tracejs.cpp.

226{
227 if(!engine)
228 {
229 qWarning() << "Cannot register class: engine is null";
230 return;
231 }
232
233 // Register the meta object as a constructor
234 QJSValue jsMetaObject = engine->newQMetaObject(&TraceJs::staticMetaObject);
235 engine->globalObject().setProperty("Trace", jsMetaObject);
236}

Referenced by operator=().

◆ toMap()

QVariantMap pappso::TraceJs::toMap ( ) const

Definition at line 208 of file tracejs.cpp.

209{
210 QVariantMap map;
211 for(const auto &point : m_trace)
212 {
213 map.insert(QString::number(point.x), point.y);
214 }
215 return map;
216}

References m_trace.

Referenced by operator=().

◆ xValues()

QVariantList pappso::TraceJs::xValues ( ) const

Definition at line 180 of file tracejs.cpp.

181{
182 QVariantList list;
183 list.reserve(m_trace.size());
184
185 for(const DataPoint &point : m_trace)
186 {
187 list.append(QVariant::fromValue(point.x));
188 }
189
190 return list;
191}

References m_trace.

Referenced by operator=().

◆ yValues()

QVariantList pappso::TraceJs::yValues ( ) const

Definition at line 194 of file tracejs.cpp.

195{
196 QVariantList list;
197 list.reserve(m_trace.size());
198
199 for(const DataPoint &point : m_trace)
200 {
201 list.append(QVariant::fromValue(point.y));
202 }
203
204 return list;
205}

References m_trace.

Referenced by operator=().

Member Data Documentation

◆ m_trace

Property Documentation

◆ count

int pappso::TraceJs::count
read

Definition at line 29 of file tracejs.h.

Referenced by operator=().


The documentation for this class was generated from the following files: