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

ProgressCanvas w/o job item meber => Fit1|2DFrame w/o ctor arg

parent 3fe57998
No related branches found
No related tags found
1 merge request!2445frames and axis panels now stateless, and created at startup
......@@ -53,6 +53,7 @@ signals:
void jobMeritsAttention(JobItem* item);
void globalProgress(int);
void jobAdded();
void setChanged();
private slots:
void onFinishedJob(JobItem* job_item);
......
......@@ -14,7 +14,8 @@
#include "GUI/View/Canvas/ProgressCanvas.h"
#include "Base/Util/Assert.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Job/JobsSet.h"
#include "GUI/Model/Project/ProjectDocument.h"
#include "GUI/Model/Tune/FitSuiteItem.h"
#include "GUI/View/Plotter/HistogramPlot.h"
#include <QVBoxLayout>
......@@ -29,20 +30,25 @@ ProgressCanvas::ProgressCanvas()
layout->addWidget(m_hist_plot);
setStyleSheet("background-color:white;");
connect(gDoc->jobs(), &JobsSet::setChanged, this, &ProgressCanvas::setJobItem);
}
void ProgressCanvas::setJobItem(JobItem* item)
void ProgressCanvas::setJobItem()
{
ASSERT(item);
m_job_item = item;
connect(item->fitSuiteItem(), &FitSuiteItem::iterationCountChanged, this,
&ProgressCanvas::onIterationCountChanged, Qt::UniqueConnection);
if (const JobItem* ji = gDoc->jobs()->currentItem()) {
connect(ji->fitSuiteItem(), &FitSuiteItem::iterationCountChanged, this,
&ProgressCanvas::onIterationCountChanged, Qt::UniqueConnection);
show();
} else
hide();
}
void ProgressCanvas::onIterationCountChanged(int iter)
{
double chi = m_job_item->fitSuiteItem()->chi2();
const JobItem* ji = gDoc->jobs()->currentItem();
ASSERT(ji);
double chi = ji->fitSuiteItem()->chi2();
if (iter == 1)
m_hist_plot->clearData();
m_hist_plot->addData(static_cast<double>(iter), chi);
......
......@@ -18,7 +18,6 @@
#include <QWidget>
class HistogramPlot;
class JobItem;
//! Intended for showing chi2 .vs interation count dependency.
//! The main goal is to fill vacant place in Fit2DFrame.
......@@ -28,13 +27,11 @@ class ProgressCanvas : public QWidget {
public:
ProgressCanvas();
void setJobItem(JobItem* job_item);
private:
void setJobItem();
void onIterationCountChanged(int iter);
HistogramPlot* m_hist_plot;
const JobItem* m_job_item;
};
#endif // BORNAGAIN_GUI_VIEW_CANVAS_PROGRESSCANVAS_H
......@@ -21,7 +21,6 @@
#include "GUI/Model/Data/Data1DItem.h"
#include "GUI/Model/Data/RangeUtil.h"
#include "GUI/Model/Job/DataSource.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Project/ProjectDocument.h"
#include "GUI/View/Canvas/ProgressCanvas.h"
#include "GUI/View/Canvas/SpecularPlotCanvas.h"
......@@ -30,7 +29,7 @@
#include "GUI/View/Setup/AxisPanel.h"
#include "GUI/View/Setup/FrameActions.h"
Fit1DFrame::Fit1DFrame(JobItem* job_item)
Fit1DFrame::Fit1DFrame()
: m_data_canvas(new SpecularPlotCanvas)
, m_diff_canvas(new SpecularPlotCanvas)
, m_progress_canvas(new ProgressCanvas)
......@@ -79,9 +78,6 @@ Fit1DFrame::Fit1DFrame(JobItem* job_item)
m_data_canvas->setData1DItems(
{m_data_source->simuData1DItem(), m_data_source->realData1DItem()});
m_diff_canvas->setData1DItems({m_data_source->diffData1DItem()});
ASSERT(job_item);
m_progress_canvas->setJobItem(job_item);
}
Fit1DFrame::~Fit1DFrame() = default;
......
......@@ -19,8 +19,6 @@
#include <QWidget>
class DataSource;
class JobItem;
class JobRealBase;
class PlotStatusLabel;
class ProgressCanvas;
class SpecularPlotCanvas;
......@@ -31,7 +29,7 @@ class SpecularPlotCanvas;
class Fit1DFrame : public QWidget {
Q_OBJECT
public:
explicit Fit1DFrame(JobItem* item);
Fit1DFrame();
~Fit1DFrame();
private:
......
......@@ -20,7 +20,6 @@
#include "GUI/Model/Data/Data2DItem.h"
#include "GUI/Model/Data/RangeUtil.h"
#include "GUI/Model/Job/DataSource.h"
#include "GUI/Model/Job/JobItem.h"
#include "GUI/Model/Project/ProjectDocument.h"
#include "GUI/View/Canvas/ColorMapCanvas.h"
#include "GUI/View/Canvas/ProgressCanvas.h"
......@@ -30,7 +29,7 @@
#include "GUI/View/Setup/FrameActions.h"
#include <QVBoxLayout>
Fit2DFrame::Fit2DFrame(JobItem* job_item)
Fit2DFrame::Fit2DFrame()
: m_real_canvas(new ColorMapCanvas)
, m_simu_canvas(new ColorMapCanvas)
, m_diff_canvas(new ColorMapCanvas)
......@@ -82,9 +81,6 @@ Fit2DFrame::Fit2DFrame(JobItem* job_item)
m_simu_canvas->itemToCanvas(m_data_source->simuData2DItem());
m_real_canvas->itemToCanvas(m_data_source->realData2DItem());
m_diff_canvas->itemToCanvas(m_data_source->diffData2DItem());
ASSERT(job_item);
m_progress_canvas->setJobItem(job_item);
}
Fit2DFrame::~Fit2DFrame() = default;
......
......@@ -20,7 +20,6 @@
class ColorMapCanvas;
class DataSource;
class JobItem;
class PlotStatusLabel;
class ProgressCanvas;
......@@ -29,7 +28,7 @@ class ProgressCanvas;
class Fit2DFrame : public QWidget {
Q_OBJECT
public:
explicit Fit2DFrame(JobItem* item);
Fit2DFrame();
~Fit2DFrame();
private:
......
......@@ -97,9 +97,9 @@ QWidget* StackedJobFrames::newFrame(QObject* obj) const
return new Plot2DFrame;
if (auto* item = dynamic_cast<JobItem*>(obj)) {
if (item->rank() == 1)
return new Fit1DFrame(item);
return new Fit1DFrame;
if (item->rank() == 2)
return new Fit2DFrame(item);
return new Fit2DFrame;
}
ASSERT_NEVER;
}
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