-
Mikhail Svechnikov authoredMikhail Svechnikov authored
IntensityDataCanvas.h 1.92 KiB
// ************************************************************************************************
//
// BornAgain: simulate and fit reflection and scattering
//
//! @file GUI/View/Plot2D/IntensityDataCanvas.h
//! @brief Defines class IntensityDataCanvas
//!
//! @homepage http://www.bornagainproject.org
//! @license GNU General Public License v3 or higher (see COPYING)
//! @copyright Forschungszentrum Jülich GmbH 2018
//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
//
// ************************************************************************************************
#ifndef BORNAGAIN_GUI_VIEW_PLOT2D_INTENSITYDATACANVAS_H
#define BORNAGAIN_GUI_VIEW_PLOT2D_INTENSITYDATACANVAS_H
#include "Device/Data/OutputData.h"
#include "GUI/View/Common/SessionItemWidget.h"
#include <memory>
class SessionItem;
class IntensityDataItem;
class ColorMapCanvas;
class QAction;
//! The IntensityDataCanvas class represents IntensityDataItem as color map,
//! provides standard actions (reset view, save as) for external toolbars and context menus.
class IntensityDataCanvas : public SessionItemWidget {
Q_OBJECT
public:
explicit IntensityDataCanvas(QWidget* parent = nullptr);
void setItem(SessionItem* intensityItem) override;
QSize sizeHint() const override;
QSize minimumSizeHint() const override;
QList<QAction*> actionList() override;
public slots:
void onResetViewAction();
void onSavePlotAction();
void onMousePress(QMouseEvent* event);
protected:
void subscribeToItem() override;
void rotateData();
private:
IntensityDataItem* intensityDataItem();
void initActions();
void initRotation();
void onPropertyChanged(const QString& name);
void applyPersistentSettings();
ColorMapCanvas* m_colorMap;
QAction* m_resetViewAction;
QAction* m_rotateDataAction;
QAction* m_savePlotAction;
};
#endif // BORNAGAIN_GUI_VIEW_PLOT2D_INTENSITYDATACANVAS_H