Ale co złego jest w operatorach?
Początkowo pisałem wiązanki, później stworzyłem funkcję:
// nazwa wskazuje że było to tymczasowe bo mi się nie podoba
void MainWindow::tempConnect(const QObject * src, const QObject * dst){
connect(src, SIGNAL(dataChanged(QVector<int>)), dst, SLOT(setData(QVector<int>)), Qt::DirectConnection);
connect(src, SIGNAL(freqChanged(int)), dst, SLOT(setFreq(int)));
connect(src, SIGNAL(rateChanged(int)), dst, SLOT(setRate(int)));
}
// ... //
Wykorzystanie:
// oryginal
tempConnect(generator, ui->spectrum);
// mod
tempConnect(generator, downsample);
tempConnect(downsample, burst);
tempConnect(burst, alignsample);
tempConnect(alignsample, ui->spectrumBurst);
Wszystkie klasy dziedziczą po pewnej klasie, więc do tej klasy wrzuciłem pomocnika połączeń, a wykorzystanie tego wygląda tak:
generator->connectTo(ui->spectrum);
generator->connectTo(downsample);
downsample->connectTo(burst);
burst->connectTo(alignsample);
alignsample->connectTo(ui->spectrumBurst);
I stało się jeszcze bardziej nieczytelne, więc postanowiłem wykorzystać operatory, aby zapis w kodzie był bardziej czytelny:
generator >> ui->spectrum;
generator >> downsample >> burst >> alignsample >> spectrumBurst;
?