17 #include "qcustomplot.h"
21 template <
typename T> QVector<T>
fromStdVector(
const std::vector<T>& vec)
23 #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
24 return QVector<T>(vec.begin(), vec.end());
40 throw std::runtime_error(
"Uninitialised graph in Data1DPlotController");
52 m_graph->setData(fromStdVector<double>(
item->binCenters()),
53 fromStdVector<double>(
item->binValues()));
59 auto errors =
item->binErrors();
68 m_errorBars->setData(fromStdVector<double>(errors));
74 m_graph->setData(QVector<double>{}, QVector<double>{});
100 auto on_property_change = [
this](
SessionItem*, std::string property_name) {
Represents one-dimensional data (axis and values).
static const std::string P_VALUES
static const std::string P_ERRORS
Data1DPlotController(QCPGraph *graph)
void subscribe() override
~Data1DPlotController() override
std::unique_ptr< Data1DPlotControllerImpl > p_impl
void unsubscribe() override
For necessary manipulations on new item.
void setOnPropertyChange(Callbacks::item_str_t f)
Sets callback to be notified on item's property change.
SessionItem * item() const
For necessary manipulations on unsubscription.
Data1DItem * currentItem() const
The main object representing an editable/displayable/serializable entity.
QVector< double > fromStdVector(const std::vector< double > &data)
materialitems.h Collection of materials to populate MaterialModel.
QCPErrorBars * m_errorBars
void updateErrorBarsFromItem(Data1DItem *item)
void updateGraphPointsFromItem(Data1DItem *item)
void initGraphFromItem(Data1DItem *item)
Data1DPlotControllerImpl(QCPGraph *graph)
QCustomPlot * customPlot()