void FxLine::paintEvent( QPaintEvent * ) { FxMixer * mix = Engine::fxMixer(); bool sendToThis = mix->channelSendModel( m_mv->currentFxLine()->m_channelIndex, m_channelIndex ) != NULL; bool receiveFromThis = mix->channelSendModel( m_channelIndex, m_mv->currentFxLine()->m_channelIndex ) != NULL; QPainter painter; painter.begin( this ); drawFxLine( &painter, this, mix->effectChannel( m_channelIndex )->m_name, m_mv->currentFxLine() == this, sendToThis, receiveFromThis ); painter.end(); }
void FxMixerView::updateFxLine(int index) { FxMixer * mix = Engine::fxMixer(); // does current channel send to this channel? int selIndex = m_currentFxLine->channelIndex(); FxLine * thisLine = m_fxChannelViews[index]->m_fxLine; FloatModel * sendModel = mix->channelSendModel(selIndex, index); if( sendModel == NULL ) { // does not send, hide send knob thisLine->m_sendKnob->setVisible(false); } else { // it does send, show knob and connect thisLine->m_sendKnob->setVisible(true); thisLine->m_sendKnob->setModel(sendModel); } // disable the send button if it would cause an infinite loop thisLine->m_sendBtn->setVisible(! mix->isInfiniteLoop(selIndex, index)); thisLine->m_sendBtn->updateLightStatus(); thisLine->update(); }