MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / contextMenuEvent

Method contextMenuEvent

src/gui/ClientChainWidget.cpp:676–731  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

674}
675
676void ClientChainWidget::contextMenuEvent(QContextMenuEvent* ev)
677{
678 const int idx = hitTest(ev->pos());
679 if (idx < 0 || m_boxes[idx].isEndpoint) { QWidget::contextMenuEvent(ev); return; }
680 const auto stage = m_boxes[idx].stage;
681 if (!isStageImplemented(stage) || !m_audio) {
682 QToolTip::showText(ev->globalPos(),
683 QString("<b>%1</b> — not implemented yet").arg(stageLabel(stage)),
684 this);
685 return;
686 }
687
688 QMenu menu(this);
689 auto* header = menu.addAction(
690 QString("Stage — %1").arg(stageLabel(stage)));
691 header->setEnabled(false);
692 menu.addSeparator();
693
694 const bool bypassed = isStageBypassed(stage);
695 auto* bypassAct = menu.addAction(bypassed ? "Enable" : "Bypass");
696 auto* editAct = menu.addAction("Edit…");
697
698 QAction* chosen = menu.exec(ev->globalPos());
699 if (!chosen) return;
700 if (chosen == editAct) {
701 emit editRequested(stage);
702 return;
703 }
704 if (chosen == bypassAct) {
705 const bool newEnabled = bypassed; // was bypassed → user wants it enabled
706 if (stage == AudioEngine::TxChainStage::Eq && m_audio->clientEqTx()) {
707 m_audio->clientEqTx()->setEnabled(newEnabled);
708 m_audio->saveClientEqSettings();
709 } else if (stage == AudioEngine::TxChainStage::Comp && m_audio->clientCompTx()) {
710 m_audio->clientCompTx()->setEnabled(newEnabled);
711 m_audio->saveClientCompSettings();
712 } else if (stage == AudioEngine::TxChainStage::Gate && m_audio->clientGateTx()) {
713 m_audio->clientGateTx()->setEnabled(newEnabled);
714 m_audio->saveClientGateSettings();
715 } else if (stage == AudioEngine::TxChainStage::DeEss && m_audio->clientDeEssTx()) {
716 m_audio->clientDeEssTx()->setEnabled(newEnabled);
717 m_audio->saveClientDeEssSettings();
718 } else if (stage == AudioEngine::TxChainStage::Tube && m_audio->clientTubeTx()) {
719 m_audio->clientTubeTx()->setEnabled(newEnabled);
720 m_audio->saveClientTubeSettings();
721 } else if (stage == AudioEngine::TxChainStage::Enh && m_audio->clientPuduTx()) {
722 m_audio->clientPuduTx()->setEnabled(newEnabled);
723 m_audio->saveClientPuduSettings();
724 } else if (stage == AudioEngine::TxChainStage::Reverb && m_audio->clientReverbTx()) {
725 m_audio->clientReverbTx()->setEnabled(newEnabled);
726 m_audio->saveClientReverbSettings();
727 }
728 emit stageEnabledChanged(stage, newEnabled);
729 update();
730 }
731}
732
733void ClientChainWidget::dragEnterEvent(QDragEnterEvent* ev)

Callers

nothing calls this directly

Calls 15

clientEqTxMethod · 0.80
saveClientEqSettingsMethod · 0.80
clientCompTxMethod · 0.80
clientGateTxMethod · 0.80
clientDeEssTxMethod · 0.80
clientTubeTxMethod · 0.80
clientPuduTxMethod · 0.80

Tested by

no test coverage detected