void AM2DSummingABEditor::onAnalysisBlockInputDataSourcesChanged() { if(image_) { delete image_; image_ = 0; } AMDataSource* inputSource; if(analysisBlock_->inputDataSourceCount() > 0 && (inputSource=analysisBlock_->inputDataSourceAt(0))) { // inputSource is a valid data source axisSelector_->setEnabled(false); rangeMinControl_->setEnabled(true); rangeMaxControl_->setEnabled(true); QList<AMAxisInfo> inputSourceAxes = inputSource->axes(); // we know (according to AM2DSummingAB's check of input source validity) that there are two axes here. axisSelector_->setItemText(0, inputSourceAxes.at(0).name + ": " + inputSourceAxes.at(0).description); axisSelector_->setItemText(1, inputSourceAxes.at(1).name + ": " + inputSourceAxes.at(1).description); // set the current status of the controls to reflect the (but don't have then trigger our slots) int sumAxis = analysisBlock_->sumAxis(); axisSelector_->blockSignals(true); axisSelector_->setCurrentIndex(sumAxis); axisSelector_->blockSignals(false); rangeMinControl_->blockSignals(true); rangeMinControl_->setMaximum(inputSourceAxes.at(sumAxis).size-1); rangeMinControl_->setValue(analysisBlock_->sumRangeMin()); rangeMinControl_->blockSignals(false); rangeMaxControl_->blockSignals(true); rangeMaxControl_->setMaximum(inputSourceAxes.at(sumAxis).size-1); rangeMaxControl_->setValue(analysisBlock_->sumRangeMax()); rangeMaxControl_->blockSignals(false); image_ = new MPlotImageBasic(); AMDataSourceImageData *model = new AMDataSourceImageData; model->setDataSource(inputSource); image_->setModel(model, true); plot_->addItem(image_); } else { // no input source. Not much we can do. axisSelector_->setEnabled(false); rangeMinControl_->setEnabled(false); rangeMaxControl_->setEnabled(false); } placeRangeRectangle(); }
void AM4DBinningABEditor::onAnalysisBlockInputDataSourcesChanged() { AMDataSource* inputSource; if(analysisBlock_->inputDataSourceCount() > 0 && (inputSource=analysisBlock_->inputDataSourceAt(0))) { // inputSource is a valid data source axisSelector_->setEnabled(true); rangeMinControl_->setEnabled(true); rangeMaxControl_->setEnabled(true); QList<AMAxisInfo> inputSourceAxes = inputSource->axes(); // we know (according to AM3DBinningAB's check of input source validity) that there are two axes here. axisSelector_->setItemText(0, inputSourceAxes.at(0).name + ": " + inputSourceAxes.at(0).description); axisSelector_->setItemText(1, inputSourceAxes.at(1).name + ": " + inputSourceAxes.at(1).description); axisSelector_->setItemText(2, inputSourceAxes.at(2).name + ": " + inputSourceAxes.at(2).description); axisSelector_->setItemText(2, inputSourceAxes.at(3).name + ": " + inputSourceAxes.at(3).description); // set the current status of the controls to reflect the (but don't have then trigger our slots) int sumAxis = analysisBlock_->sumAxis(); axisSelector_->blockSignals(true); axisSelector_->setCurrentIndex(sumAxis); axisSelector_->blockSignals(false); rangeMinControl_->blockSignals(true); rangeMinControl_->setMaximum(inputSourceAxes.at(sumAxis).size-1); rangeMinControl_->setValue(analysisBlock_->sumRangeMin()); rangeMinControl_->blockSignals(false); rangeMaxControl_->blockSignals(true); rangeMaxControl_->setMaximum(inputSourceAxes.at(sumAxis).size-1); rangeMaxControl_->setValue(analysisBlock_->sumRangeMax()); rangeMaxControl_->blockSignals(false); updateSeriesData(); } else { // no input source. Not much we can do. axisSelector_->setEnabled(false); rangeMinControl_->setEnabled(false); rangeMaxControl_->setEnabled(false); } placeRangeRectangle(); }