Skip to content
Snippets Groups Projects
Commit c21f15ad authored by Wuttke, Joachim's avatar Wuttke, Joachim Committed by Wuttke, Joachim
Browse files

DataView restricted to Plot2DWith...; repair switching between different file views

parent f455f09b
No related branches found
No related tags found
1 merge request!2314big simplification of job and data view
......@@ -14,7 +14,8 @@
#include "GUI/View/Data/DatafilesStack.h"
#include "GUI/Model/Device/DatafileItem.h"
#include "GUI/View/Data/DatafilePresenter.h"
#include "GUI/View/Frame/Plot2DWithProjectionFrame.h"
#include "GUI/View/Frame/SpecularFrame.h"
void DatafilesStack::setItem(DatafileItem* item)
{
......@@ -23,10 +24,16 @@ void DatafilesStack::setItem(DatafileItem* item)
return;
}
DatafilePresenter* widget = itemWidget();
QWidget* widget;
auto it = m_item_to_widget.find(item);
if (it != m_item_to_widget.end()) {
widget = it.value();
} else {
if (item->rank() == 1)
widget = new SpecularFrame(item);
else
widget = new Plot2DWithProjectionFrame(item);
if (!widget) {
widget = new DatafilePresenter();
m_stacked_widget->addWidget(widget);
m_item_to_widget[item] = widget;
}
......@@ -34,13 +41,4 @@ void DatafilesStack::setItem(DatafileItem* item)
m_stacked_widget->setCurrentWidget(widget);
if (widget->isHidden())
widget->show();
widget->setTheItem(item);
}
DatafilePresenter* DatafilesStack::itemWidget()
{
if (!m_item_to_widget.empty())
return m_item_to_widget.first();
return nullptr;
}
......@@ -19,7 +19,6 @@
#include <QMap>
class DatafileItem;
class DatafilePresenter;
class DatafilesStack : public ItemStackWidget {
public:
......@@ -27,10 +26,8 @@ public:
//! If no widget yet exists, it will be created.
void setItem(DatafileItem* item);
DatafilePresenter* itemWidget();
private:
QMap<DatafileItem*, DatafilePresenter*> m_item_to_widget;
QMap<DatafileItem*, QWidget*> m_item_to_widget;
};
#endif // BORNAGAIN_GUI_VIEW_DATA_DATAFILESSTACK_H
......@@ -28,8 +28,8 @@
#include <QSplitter>
#include <QStackedWidget>
Plot2DWithProjectionFrame::Plot2DWithProjectionFrame(QWidget* parent)
: DataAccessWidget(parent)
Plot2DWithProjectionFrame::Plot2DWithProjectionFrame(QObject* item)
: DataAccessWidget(nullptr)
, m_canvas2D(new MaskEditorCanvas)
, m_canvas1D(new ProjectedGraphsCanvas)
, m_axes_panel(new AxesPanel(this))
......@@ -102,6 +102,9 @@ Plot2DWithProjectionFrame::Plot2DWithProjectionFrame(QWidget* parent)
&ProjectedGraphsCanvas::onMarginsChanged);
prjc_toolbar->onChangeActivityRequest(MaskFlags::HORIZONTAL_LINE_MODE);
if (item)
setJobOrDatafileItem(item);
}
void Plot2DWithProjectionFrame::setJobOrDatafileItem(QObject* item)
......
......@@ -27,7 +27,7 @@ class ProjectedGraphsCanvas;
class Plot2DWithProjectionFrame : public DataAccessWidget {
public:
Plot2DWithProjectionFrame(QWidget* parent = nullptr);
Plot2DWithProjectionFrame(QObject* item = nullptr);
void setJobOrDatafileItem(QObject* item) override;
......
......@@ -20,8 +20,8 @@
#include <QBoxLayout>
#include <QMenu>
SpecularFrame::SpecularFrame(QWidget* parent)
: DataAccessWidget(parent)
SpecularFrame::SpecularFrame(QObject* item)
: DataAccessWidget(nullptr)
, m_specular_canvas(new SpecularDataCanvas)
, m_scale_editor(new AxisPanel(this))
{
......@@ -40,6 +40,9 @@ SpecularFrame::SpecularFrame(QWidget* parent)
&SpecularFrame::onContextMenuRequest);
m_scale_editor->setVisible(false);
if (item)
setJobOrDatafileItem(item);
}
void SpecularFrame::setJobOrDatafileItem(QObject* item)
......
......@@ -23,7 +23,7 @@ class SpecularDataCanvas;
class SpecularFrame : public DataAccessWidget {
Q_OBJECT
public:
SpecularFrame(QWidget* parent = nullptr);
SpecularFrame(QObject* item = nullptr);
void setJobOrDatafileItem(QObject* item) override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment