void AMAdditionAB::setInputDataSourcesImplementation(const QList<AMDataSource*>& dataSources) { // disconnect connections from old sources, if they exist. if(!sources_.isEmpty()) { for (int i = 0; i < sources_.size(); i++) { disconnect(sources_.at(i)->signalSource(), SIGNAL(valuesChanged(AMnDIndex,AMnDIndex)), this, SLOT(onInputSourceValuesChanged(AMnDIndex,AMnDIndex))); disconnect(sources_.at(i)->signalSource(), SIGNAL(sizeChanged(int)), this, SLOT(onInputSourceSizeChanged())); disconnect(sources_.at(i)->signalSource(), SIGNAL(stateChanged(int)), this, SLOT(onInputSourceStateChanged())); } } if(dataSources.isEmpty()) { sources_.clear(); for (int i = 0, size = rank(); i < size; i++) axes_[i] = AMAxisInfo("invalid", 0, "No input data"); setDescription("-- No input data --"); } // we know that this will only be called with valid input source else { sources_ = dataSources; for (int i = 0, size = rank(); i < size; i++) axes_[i] = sources_.at(0)->axisInfoAt(i); cacheUpdateRequired_ = true; cachedData_ = QVector<double>(size().product()); setDescription(QString("Sum of spectra from %1 maps").arg(sources_.size())); for (int i = 0; i < sources_.size(); i++) { connect(sources_.at(i)->signalSource(), SIGNAL(valuesChanged(AMnDIndex,AMnDIndex)), this, SLOT(onInputSourceValuesChanged(AMnDIndex,AMnDIndex))); connect(sources_.at(i)->signalSource(), SIGNAL(sizeChanged(int)), this, SLOT(onInputSourceSizeChanged())); connect(sources_.at(i)->signalSource(), SIGNAL(stateChanged(int)), this, SLOT(onInputSourceStateChanged())); } } reviewState(); emitSizeChanged(); emitValuesChanged(); emitAxisInfoChanged(); emitInfoChanged(); }
// Set the data source inputs. void AM2DAdditionAB::setInputDataSourcesImplementation(const QList<AMDataSource*>& dataSources) { // disconnect connections from old sources, if they exist. if(!sources_.isEmpty()) { for (int i = 0; i < sources_.size(); i++){ disconnect(sources_.at(i)->signalSource(), SIGNAL(valuesChanged(AMnDIndex,AMnDIndex)), this, SLOT(onInputSourceValuesChanged(AMnDIndex,AMnDIndex))); disconnect(sources_.at(i)->signalSource(), SIGNAL(sizeChanged(int)), this, SLOT(onInputSourceSizeChanged())); disconnect(sources_.at(i)->signalSource(), SIGNAL(stateChanged(int)), this, SLOT(onInputSourceStateChanged())); } } if(dataSources.isEmpty()) { sources_.clear(); axes_[0] = AMAxisInfo("invalid", 0, "No input data"); axes_[1] = AMAxisInfo("invalid", 0, "No input data"); setDescription("-- No input data --"); } // we know that this will only be called with valid input source else { sources_ = dataSources; axes_[0] = sources_.at(0)->axisInfoAt(0); axes_[1] = sources_.at(0)->axisInfoAt(1); setDescription(QString("Sum of %1").arg(sources_.at(0)->description())); for (int i = 0; i < sources_.size(); i++){ connect(sources_.at(i)->signalSource(), SIGNAL(valuesChanged(AMnDIndex,AMnDIndex)), this, SLOT(onInputSourceValuesChanged(AMnDIndex,AMnDIndex))); connect(sources_.at(i)->signalSource(), SIGNAL(sizeChanged(int)), this, SLOT(onInputSourceSizeChanged())); connect(sources_.at(i)->signalSource(), SIGNAL(stateChanged(int)), this, SLOT(onInputSourceStateChanged())); } } reviewState(); emitSizeChanged(0); emitSizeChanged(1); emitValuesChanged(); emitAxisInfoChanged(0); emitAxisInfoChanged(1); emitInfoChanged(); }
// Set the data source inputs. void AM1DRunningAverageFilterAB::setInputDataSourcesImplementation(const QList<AMDataSource*>& dataSources) { // disconnect connections from old source, if it exists. if(inputSource_) { disconnect(inputSource_->signalSource(), SIGNAL(valuesChanged(AMnDIndex,AMnDIndex)), this, SLOT(onInputSourceValuesChanged(AMnDIndex,AMnDIndex))); disconnect(inputSource_->signalSource(), SIGNAL(sizeChanged(int)), this, SLOT(onInputSourceSizeChanged())); disconnect(inputSource_->signalSource(), SIGNAL(stateChanged(int)), this, SLOT(onInputSourceStateChanged())); } if(dataSources.isEmpty()) { inputSource_ = 0; sources_.clear(); axes_[0] = AMAxisInfo("invalid", 0, "No input data"); setDescription("-- No input data --"); } // we know that this will only be called with valid input source else { inputSource_ = dataSources.at(0); sources_ = dataSources; axes_[0] = inputSource_->axisInfoAt(0); setDescription(QString("Running Average of %1") .arg(inputSource_->name())); connect(inputSource_->signalSource(), SIGNAL(valuesChanged(AMnDIndex,AMnDIndex)), this, SLOT(onInputSourceValuesChanged(AMnDIndex,AMnDIndex))); connect(inputSource_->signalSource(), SIGNAL(sizeChanged(int)), this, SLOT(onInputSourceSizeChanged())); connect(inputSource_->signalSource(), SIGNAL(stateChanged(int)), this, SLOT(onInputSourceStateChanged())); } reviewState(); emitSizeChanged(0); emitValuesChanged(); emitAxisInfoChanged(0); emitInfoChanged(); }