89 Q_PROPERTY(
double smallestMz READ getSmallestMz WRITE setSmallestMz NOTIFY
93 Q_PROPERTY(
double greatestMz READ getGreatestMz WRITE setGreatestMz NOTIFY greatestMzChanged)
94 Q_PROPERTY(
BinningType binningType READ getBinningType WRITE setBinningType
95 NOTIFY binningTypeChanged)
96 Q_PROPERTY(
double indicativeBinSize READ getIndicativeBinSize WRITE setIndicativeBinSize NOTIFY
97 indicativeBinSizeChanged)
98 Q_PROPERTY(
int decimalPlaces READ getDecimalPlaces WRITE setDecimalPlaces
99 NOTIFY decimalPlacesChanged)
101 setBinSizeModel NOTIFY binSizeModelChanged)
102 Q_PROPERTY(
int binSizeDivisor READ getBinSizeDivisor WRITE setBinSizeDivisor
103 NOTIFY binSizeDivisorChanged)
104 Q_PROPERTY(
bool removeZeroValDataPoints READ isRemoveZeroValDataPoints WRITE
105 setRemoveZeroValDataPoints NOTIFY removeZeroValDataPointsChanged)
130 BINNING_TYPE = 1 << 0,
131 BIN_SIZE_MODEL = 1 << 1,
132 BIN_SIZE_DIVISOR = 1 << 2,
133 DECIMAL_PLACES = 1 << 3,
134 BINNING_LOGIC_PARTIAL = (BINNING_TYPE | BIN_SIZE_MODEL),
136 (BINNING_LOGIC_PARTIAL | BIN_SIZE_DIVISOR | DECIMAL_PLACES),
137 REMOVE_ZERO_DATA_POINTS = 1 << 4,
138 FULL = (REMOVE_ZERO_DATA_POINTS | BINNING_LOGIC_FULL),
140 Q_ENUM(InitializationResult)
144 QObject *parent =
nullptr);
147 BinningType binningType,
151 bool removeZeroValDataPoints,
152 QObject *parent =
nullptr);
157 Q_INVOKABLE InitializationResult initialize(
const QString &text);
159 Q_INVOKABLE
void initialize(
double minMz,
161 BinningType binningType,
165 bool removeZeroValDataPoints,
166 QObject *parent =
nullptr);
170 QObject *parent =
nullptr);
173 InitializationResult initialization_results);
175 Q_INVOKABLE
void setSmallestMz(
double value);
176 Q_INVOKABLE
void updateSmallestMz(
double value);
177 Q_INVOKABLE
double getSmallestMz()
const;
179 Q_INVOKABLE
void setGreatestMz(
double value);
180 Q_INVOKABLE
void updateGreatestMz(
double value);
181 Q_INVOKABLE
double getGreatestMz()
const;
183 Q_INVOKABLE
void setMzValues(
double smallest,
double greatest);
185 Q_INVOKABLE
void setBinningType(BinningType binningType);
186 Q_INVOKABLE BinningType getBinningType()
const;
191 Q_INVOKABLE
void setBinSizeDivisor(
int divisor);
192 Q_INVOKABLE
int getBinSizeDivisor()
const;
194 Q_INVOKABLE
void setIndicativeBinSize(
double value);
195 Q_INVOKABLE
double getIndicativeBinSize()
const;
197 Q_INVOKABLE
void setDecimalPlaces(
int decimal_places);
198 Q_INVOKABLE
int getDecimalPlaces()
const;
200 Q_INVOKABLE
void setRemoveZeroValDataPoints(
bool removeOrNot =
true);
201 Q_INVOKABLE
bool isRemoveZeroValDataPoints()
const;
203 Q_INVOKABLE
void reset();
205 Q_INVOKABLE
bool isValid()
const;
207 Q_INVOKABLE
bool hasValidMzRange()
const;
209 Q_INVOKABLE std::vector<double> createBins();
210 Q_INVOKABLE std::vector<double>
213 Q_INVOKABLE QString toString(
int offset,
const QString &spacer =
" ")
const;
215 Q_INVOKABLE QString toString()
const;
217 binsToStringWithDeltas(
const std::vector<double> bins)
const;
220 static void registerJsConstructor(QJSEngine *engine);
235 double m_smallestMz = std::numeric_limits<double>::max();
239 double m_greatestMz = std::numeric_limits<double>::min();
244 double m_indicativeBinSize = 0;
260 int m_binSizeDivisor = 6;
265 int m_decimalPlaces = -1;
270 bool m_removeZeroValDataPoints =
true;
272 std::vector<double> createArbitraryBins();