15 #ifndef BORNAGAIN_GUI_VIEW_PROJECTION_PROJECTIONSPLOT_H
16 #define BORNAGAIN_GUI_VIEW_PROJECTION_PROJECTIONSPLOT_H
21 #include <qcustomplot.h>
A container to hold ProjectionItems, intended to store projections of color map on X,...
A customplot based widget to display projections of IntensityDataItem on X,Y axes.
~ProjectionsPlot() override
QCustomPlot * m_customPlot
void updateProjectionsData()
Creates cached 2D histogram for later projection calculations.
IntensityDataItem * intensityItem()
std::unique_ptr< Datafield > m_field
void onIntensityItemPropertyChanged(const QString &propertyName)
Updates projection appearance (line style, etc)
QVector< SessionItem * > projectionItems()
void clearProjection(SessionItem *item)
Removes plot corresponding to given projection item.
void setGraphFromItem(QCPGraph *graph, SessionItem *item)
Sets the data to graph from given projection iten.
void onMarginsChanged(double left, double right)
void unsubscribeFromItem() override
void unsubscribeFromChildren()
void updateAxesRange()
Updates canva's axes to match current zoom level of IntensityDataItem.
void setLogz(bool isLogz)
QCPGraph * graphForItem(SessionItem *item)
void subscribeToItem() override
QMap< SessionItem *, QCPGraph * > m_item_to_graph
bool isHorizontalType()
Returns true, if widget is intended for horizontal projections.
void updateProjections()
Runs through all projection items and generates missed plots.
ProjectionContainerItem * projectionContainerItem()
void onAxisPropertyChanged(const QString &axisName, const QString &propertyName)
Updates zoom of projections in accordance with IntensityDataItem.
ProjectionsPlot(QString projectionType, QWidget *parent=nullptr)
void setInterpolate(bool isInterpolated)
void clearProjections()
Clears all graphs corresponding to projection items.
void onProjectionPropertyChanged(SessionItem *item, const QString &property)
Base class for a GUI data item.