33 if(data_point_js_p !=
nullptr)
43 if(index < 0 || index >=
static_cast<int>(
m_trace.size()))
61 list.append(QVariant::fromValue(data_point_js_p));
72 for(
const QVariant &variant : js_points)
74 QObject *obj = variant.value<QObject *>();
78 if(
auto data_point_js = qobject_cast<DataPointJs *>(obj))
80 DataPoint data_point = data_point_js->dataPoint();
85 qWarning() <<
"Failed initializing Trace because list member is not a DataPointJs object:"
100 for(
auto it = map.constBegin(); it != map.constEnd(); ++it)
102 bool key_ok, value_ok;
103 double key = it.key().toDouble(&key_ok);
104 double value = it.value().toDouble(&value_ok);
106 if(key_ok && value_ok)
107 m_trace.emplace_back(key, value);
109 qWarning() <<
"Skipping invalid map entry at key:" << it.key();
118 if(x_values.size() != y_values.size())
119 qFatal() <<
"The two containers must have the same size.";
122 m_trace.reserve(x_values.size());
124 for(
int iter = 0; iter < x_values.size(); ++iter)
125 m_trace.push_back(
DataPoint(x_values.at(iter).toDouble(), y_values.at(iter).toDouble()));
135 m_trace.initialize(x_text, y_text);
145 m_trace.initialize(space_sep_text);
176 list.append(QVariant::fromValue(point.x));
190 list.append(QVariant::fromValue(point.y));
200 for(
const auto &point :
m_trace)
202 map.insert(QString::number(point.x), point.y);
218 qWarning() <<
"Cannot register class: engine is null";
223 QJSValue jsMetaObject = engine->newQMetaObject(&TraceJs::staticMetaObject);
224 engine->globalObject().setProperty(
"Trace", jsMetaObject);
const DataPoint & dataPoint() const
Q_INVOKABLE void append(double x, double y)
Q_INVOKABLE int getSize() const
Q_INVOKABLE QVariantList yValues() const
Q_INVOKABLE DataPointJs * getPointAt(int index) const
Q_INVOKABLE void initialize(const QVariantList &js_points)
static void registerJsConstructor(QJSEngine *engine)
Q_INVOKABLE QVariantList xValues() const
Q_INVOKABLE QVariantList getTrace() const
Q_INVOKABLE TraceJs(QObject *parent=nullptr)
Q_INVOKABLE QVariantMap toMap() const
A simple container of DataPoint instances.
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...