22 return static_cast<int>(
m_trace.size());
42 if(data_point_js_p !=
nullptr)
52 if(index < 0 || index >=
static_cast<int>(
m_trace.size()))
70 list.append(QVariant::fromValue(data_point_js_p));
81 for(
const QVariant &variant : js_points)
83 QObject *obj = variant.value<QObject *>();
87 if(
auto data_point_js = qobject_cast<DataPointJs *>(obj))
89 DataPoint data_point = data_point_js->dataPoint();
94 qWarning() <<
"Failed initializing Trace because list member is not a DataPointJs object:"
109 for(
auto it = map.constBegin(); it != map.constEnd(); ++it)
111 bool key_ok, value_ok;
112 double key = it.key().toDouble(&key_ok);
113 double value = it.value().toDouble(&value_ok);
115 if(key_ok && value_ok)
116 m_trace.emplace_back(key, value);
118 qWarning() <<
"Skipping invalid map entry at key:" << it.key();
127 if(x_values.size() != y_values.size())
128 qFatal() <<
"The two containers must have the same size.";
131 m_trace.reserve(x_values.size());
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()));
144 m_trace.initialize(x_text, y_text);
154 m_trace.initialize(space_sep_text);
187 list.append(QVariant::fromValue(point.x));
201 list.append(QVariant::fromValue(point.y));
211 for(
const auto &point :
m_trace)
213 map.insert(QString::number(point.x), point.y);
229 qWarning() <<
"Cannot register class: engine is null";
234 QJSValue jsMetaObject = engine->newQMetaObject(&TraceJs::staticMetaObject);
235 engine->globalObject().setProperty(
"Trace", jsMetaObject);
const DataPoint & dataPoint() const
Q_INVOKABLE void append(double x, double y)
Q_INVOKABLE QVariantList yValues() const
Q_INVOKABLE DataPointJs * getPointAt(int index) const
Q_INVOKABLE void initialize(const QVariantList &js_points)
Q_INVOKABLE int getCount() const
static void registerJsConstructor(QJSEngine *engine)
Q_INVOKABLE QVariantList xValues() const
void countChangedSignal()
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...