Beispiel #1
0
bool
QuanConfigForm::getContents( adcontrols::QuanMethod& m )
{
    ui_accessor accessor( ui );

    if ( auto combo = dynamic_cast<QComboBox *>(accessor( idComboPolynomials )) ) {
        uint32_t idEq = combo->currentIndex();
        if ( idEq == 0 )
            m.equation( adcontrols::QuanMethod::idCalibOnePoint );
        else if ( idEq == 1 )
            m.equation( adcontrols::QuanMethod::idCalibLinear_origin );
        else if ( idEq == 2 )
            m.equation( adcontrols::QuanMethod::idCalibLinear );
        else if ( idEq >= 3 ) {
            m.equation( adcontrols::QuanMethod::idCalibPolynomials );
            m.polynomialOrder( idEq - 3 + 2 );
        }
    }

    if ( auto radioButton = dynamic_cast<QRadioButton *>(accessor( idRadioChromatogram )) )
        if ( radioButton->isChecked() )
            m.isChromatogram( true );
    if ( auto radioButton = dynamic_cast<QRadioButton *>(accessor( idRadioInfusion )) ) {
        if ( radioButton->isChecked() )
            m.isChromatogram( false );
    }
    if ( auto gbx = dynamic_cast<QGroupBox *>(accessor( idCbxWeighting )) ) {
        m.isWeighting( gbx->isChecked() );
    }

    do {
        static const idItem items[] = { idRadio_C1, idRadio_C2, idRadio_C3, idRadio_Y1, idRadio_Y2, idRadio_Y3 };
        for ( auto& id : items ) {
            if ( auto radio = dynamic_cast<QRadioButton *>(accessor( id )) ) {
                if ( radio->isChecked() ) {
                    m.weighting( static_cast<adcontrols::QuanMethod::CalibWeighting>(id - items[ 0 ]) );
                    break;
                }
            }
        }
    } while ( 0 );

    if ( auto radioButton = dynamic_cast<QRadioButton *>(accessor( idRadioInternalStandard )) ) {
        if ( radioButton->isChecked() )
            m.isInternalStandard( true );
        else
            m.isInternalStandard( false );
    }

    if ( auto spin = dynamic_cast< QSpinBox *>( accessor(idSpinLevel))) {
        int value = spin->value();
        m.levels( value );
    }
    if ( auto spin = dynamic_cast< QSpinBox *>( accessor(idSpinReplicates))) {
        m.replicates( spin->value() );
    }
    return true;
}
Beispiel #2
0
bool
QuanConfigForm::setContents( const adcontrols::QuanMethod& m )
{
    ui_accessor accessor(ui);

    QWidget * w = 0;
    
    if ( auto combo = dynamic_cast<QComboBox *>(accessor( idComboPolynomials )) ) {
        uint32_t order = m.polynomialOrder() - 2;
        switch( m.equation() ) {
        case adcontrols::QuanMethod::idCalibOnePoint:      combo->setCurrentIndex( 0 ); break;
        case adcontrols::QuanMethod::idCalibLinear_origin: combo->setCurrentIndex( 1 ); break;
        case adcontrols::QuanMethod::idCalibLinear:        combo->setCurrentIndex( 2 ); break;
        case adcontrols::QuanMethod::idCalibPolynomials:   combo->setCurrentIndex( 3 + order ); break;
        }
    }

    if ( m.isChromatogram() ) {
        if ( auto radioButton = dynamic_cast< QRadioButton * >( accessor( idRadioChromatogram ) ) )
            radioButton->setChecked( true );
    } else {
        if ( auto radioButton = dynamic_cast< QRadioButton * >( accessor( idRadioInfusion ) ) )
            radioButton->setChecked( true );
    }
    if ( auto gbx = dynamic_cast<QGroupBox *>(accessor( idCbxWeighting )) ) {
        if ( m.isWeighting() )
            gbx->setChecked( true );
        else
            gbx->setChecked( false );
    }
    w = 0;
    switch ( m.weighting() ) {
    case adcontrols::QuanMethod::idWeight_C1: w = accessor( idRadio_C1 ); break;
    case adcontrols::QuanMethod::idWeight_C2: w = accessor( idRadio_C2 ); break;
    case adcontrols::QuanMethod::idWeight_C3: w = accessor( idRadio_C3 ); break;
    case adcontrols::QuanMethod::idWeight_Y1: w = accessor( idRadio_Y1 ); break;
    case adcontrols::QuanMethod::idWeight_Y2: w = accessor( idRadio_Y2 ); break;
    case adcontrols::QuanMethod::idWeight_Y3: w = accessor( idRadio_Y3 ); break;
    }
    if ( auto radioButton = dynamic_cast<QRadioButton *>(w) ) {
        radioButton->setChecked( true );
    }
    if ( m.isInternalStandard() ) {
        if ( auto radioButton = dynamic_cast<QRadioButton *>(accessor( idRadioInternalStandard )) )
            radioButton->setChecked( true );
    } else {
        if ( auto radioButton = dynamic_cast<QRadioButton *>(accessor( idRadioExternalStandard )) )
            radioButton->setChecked( true );
    }
    if ( auto spin = dynamic_cast< QSpinBox *>( accessor(idSpinLevel))) {
        spin->setValue( m.levels());
    }
    if ( auto spin = dynamic_cast< QSpinBox *>( accessor(idSpinReplicates))) {
        spin->setValue( m.replicates() );
    }
    return true;
}