AM1DBasicIntegralABEditor::AM1DBasicIntegralABEditor(AM1DIntegralAB *analysisBlock, QWidget *parent) : QWidget(parent) { analysisBlock_ = analysisBlock; names_ = new QComboBox; populateComboBox(); connect(names_, SIGNAL(currentIndexChanged(int)), this, SLOT(onNameChoiceChanged(int))); connect(analysisBlock_, SIGNAL(inputSourcesChanged()), this, SLOT(populateComboBox())); if (analysisBlock_->inputDataSourceCount() > 0) onNameChoiceChanged(0); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(new QLabel("Input:"), 0, Qt::AlignRight); layout->addWidget(names_, 0, Qt::AlignLeft); setLayout(layout); }
AM4DBinningABEditor::AM4DBinningABEditor(AM4DBinningAB *analysisBlock, QWidget *parent) : QWidget(parent) { analysisBlock_ = analysisBlock; names_ = new QComboBox; populateComboBox(); connect(names_, SIGNAL(currentIndexChanged(int)), this, SLOT(onNameChoiceChanged(int))); connect(analysisBlock_, SIGNAL(inputSourcesChanged()), this, SLOT(populateComboBox())); axisSelector_ = new QComboBox(); axisSelector_->addItem("Horizontal"); axisSelector_->addItem("Vertical"); axisSelector_->addItem("Depth"); rangeMinControl_ = new QSpinBox(); rangeMinControl_->setSingleStep(1); rangeMinControl_->setMinimum(0); rangeMaxControl_ = new QSpinBox(); rangeMaxControl_->setSingleStep(1); rangeMaxControl_->setMinimum(0); plot_ = new MPlot(); plotWidget_ = new MPlotWidget(); plotWidget_->setPlot(plot_); plot_->plotArea()->setBrush(QBrush(QColor(Qt::white))); plot_->axisRight()->setTicks(0); plot_->axisBottom()->setTicks(4); plot_->axisLeft()->showGrid(false); plot_->axisBottom()->showAxisName(false); plot_->axisLeft()->showAxisName(false); plot_->axisScaleBottom()->setPadding(0); plot_->axisScaleLeft()->setPadding(0); seriesData_ = new MPlotVectorSeriesData(); series_ = new MPlotSeriesBasic(); series_->setMarker(MPlotMarkerShape::None); series_->setModel(seriesData_, true); plot_->addItem(series_); QColor white(Qt::white); QPen pen(white, 1, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin); white.setAlphaF(0.6); rangeRectangle1_ = new MPlotRectangle(QRectF(0,0,10,10), Qt::NoPen, QBrush(white)); rangeRectangle1_->setSelectable(false); rangeRectangle1_->setIgnoreWhenAutoScaling(true); rangeRectangle1_->setZValue(3000); plot_->addItem(rangeRectangle1_); rangeRectangle1_->setVisible(false); rangeRectangle2_ = new MPlotRectangle(QRectF(0,0,10,10), Qt::NoPen, QBrush(white)); rangeRectangle2_->setSelectable(false); rangeRectangle2_->setIgnoreWhenAutoScaling(true); rangeRectangle2_->setZValue(3000); plot_->addItem(rangeRectangle2_); rangeRectangle2_->setVisible(false); plot_->legend()->enableDefaultLegend(false); plot_->addTool(new MPlotDragZoomerTool()); plot_->addTool(new MPlotWheelZoomerTool()); QVBoxLayout* vl = new QVBoxLayout(); QFormLayout* fl = new QFormLayout(); fl->addRow("Input:", names_); fl->addRow("Sum", axisSelector_); QHBoxLayout* hl = new QHBoxLayout(); hl->addWidget(rangeMinControl_); hl->addWidget(new QLabel("To")); hl->addWidget(rangeMaxControl_); fl->addRow("From (index)", hl); vl->addLayout(fl); vl->addWidget(plotWidget_); setLayout(vl); onAnalysisBlockInputDataSourcesChanged(); // This needs to be called last because it requires all of the pointers to be valid. All of dem. if (analysisBlock_->inputDataSourceCount() > 0) onNameChoiceChanged(0); // make connections connect(analysisBlock_, SIGNAL(inputSourcesChanged()), this, SLOT(onAnalysisBlockInputDataSourcesChanged())); connect(axisSelector_, SIGNAL(currentIndexChanged(int)), this, SLOT(onSumAxisControlChanged(int))); connect(rangeMinControl_, SIGNAL(valueChanged(int)), this, SLOT(onRangeMinControlChanged(int))); connect(rangeMaxControl_, SIGNAL(valueChanged(int)), this, SLOT(onRangeMaxControlChanged(int))); }