-
Wuttke, Joachim authoredWuttke, Joachim authored
SpecularFrame.cpp 2.05 KiB
// ************************************************************************************************
//
// BornAgain: simulate and fit reflection and scattering
//
//! @file GUI/View/Frame/SpecularFrame.cpp
//! @brief Implements class SpecularFrame.
//!
//! @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)
//
// ************************************************************************************************
#include "GUI/View/Frame/SpecularFrame.h"
#include "Base/Util/Assert.h"
#include "GUI/Model/Data/Data1DItem.h"
#include "GUI/Model/Device/DatafileItem.h"
#include "GUI/View/Canvas/SpecularDataCanvas.h"
#include "GUI/View/Setup/AxisPanel.h"
#include "GUI/View/Setup/FrameActions.h"
#include <QBoxLayout>
#include <QMenu>
SpecularFrame::SpecularFrame(Data1DItem* item)
: m_specular_canvas(new SpecularDataCanvas)
, m_axis_panel(new AxisPanel)
// , m_data_item(item)
{
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_axis_panel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::MinimumExpanding);
QObject::connect(gActions->toggle_properties_panel, &QAction::triggered, m_axis_panel,
&QWidget::setVisible);
auto* hlayout = new QHBoxLayout(this);
hlayout->setContentsMargins(0, 0, 0, 0);
hlayout->setSpacing(0);
hlayout->addWidget(m_specular_canvas);
hlayout->addWidget(m_axis_panel);
connect(m_specular_canvas, &SpecularDataCanvas::customContextMenuRequested, this,
&SpecularFrame::onContextMenuRequest);
m_axis_panel->setVisible(false);
ASSERT(item);
m_specular_canvas->setDataItem(item);
m_axis_panel->setJobOrDatafileItem(item);
}
void SpecularFrame::onContextMenuRequest(const QPoint& point)
{
QMenu menu;
menu.addAction(gActions->reset_view);
menu.addAction(gActions->save_plot);
menu.addAction(gActions->toggle_properties_panel);
menu.exec(point);
}