From 0f30bcc992a24206afcb1f024c89b1b2d808bc81 Mon Sep 17 00:00:00 2001 From: IonutMuthi Date: Thu, 26 Sep 2024 05:32:52 -0400 Subject: [PATCH 1/2] adc: fixed bug where user can delete first tool for time and fft Signed-off-by: IonutMuthi --- plugins/adc/src/adcinstrumentcontroller.cpp | 12 +++++++++++- plugins/adc/src/adcinstrumentcontroller.h | 4 ++++ plugins/adc/src/adcplugin.cpp | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/adc/src/adcinstrumentcontroller.cpp b/plugins/adc/src/adcinstrumentcontroller.cpp index de143c0765..5cefc2140a 100644 --- a/plugins/adc/src/adcinstrumentcontroller.cpp +++ b/plugins/adc/src/adcinstrumentcontroller.cpp @@ -48,7 +48,9 @@ void ADCInstrumentController::setEnableAddRemovePlot(bool) {} void ADCInstrumentController::setEnableAddRemoveInstrument(bool b) { m_ui->addBtn->setVisible(b); - m_ui->removeBtn->setVisible(b); + if(!m_isMainInstrument) { + m_ui->removeBtn->setVisible(b); + } } void ADCInstrumentController::init() {} @@ -186,4 +188,12 @@ void ADCInstrumentController::setupChannelMeasurement(PlotManager *c, ChannelCom } } +bool ADCInstrumentController::isMainInstrument() const { return m_isMainInstrument; } + +void ADCInstrumentController::setIsMainInstrument(bool newIsMainInstrument) +{ + m_isMainInstrument = newIsMainInstrument; + m_ui->removeBtn->setVisible(!newIsMainInstrument); +} + ADCInstrument *ADCInstrumentController::ui() const { return m_ui; } diff --git a/plugins/adc/src/adcinstrumentcontroller.h b/plugins/adc/src/adcinstrumentcontroller.h index f0e2d13baa..e8cf8860ba 100644 --- a/plugins/adc/src/adcinstrumentcontroller.h +++ b/plugins/adc/src/adcinstrumentcontroller.h @@ -32,6 +32,9 @@ class SCOPY_ADC_EXPORT ADCInstrumentController : public QObject, public: ADCInstrument *ui() const; + bool isMainInstrument() const; + void setIsMainInstrument(bool newIsMainInstrument); + public Q_SLOTS: virtual void init(); virtual void deinit(); @@ -83,6 +86,7 @@ protected Q_SLOTS: QMap m_acqNodeComponentMap; bool m_refreshTimerRunning; + bool m_isMainInstrument = false; }; } // namespace adc diff --git a/plugins/adc/src/adcplugin.cpp b/plugins/adc/src/adcplugin.cpp index fa27700361..de8958c427 100644 --- a/plugins/adc/src/adcplugin.cpp +++ b/plugins/adc/src/adcplugin.cpp @@ -304,6 +304,10 @@ void ADCPlugin::newInstrument(ADCInstrumentType t, AcqTreeNode *root) adc->setEnableAddRemovePlot(Preferences::get("adc_add_remove_plot").toBool()); adc->setEnableAddRemoveInstrument(Preferences::get("adc_add_remove_instrument").toBool()); + + // prevent user from deleting first time and fft tool + if(idx <= 2) + adc->setIsMainInstrument(true); } void ADCPlugin::deleteInstrument(ToolMenuEntry *tool) From 070090d9588ebdf66777fc66fd53654d97c9a9bd Mon Sep 17 00:00:00 2001 From: IonutMuthi Date: Thu, 26 Sep 2024 05:48:58 -0400 Subject: [PATCH 2/2] adc: fix bug where all new tools were time Signed-off-by: IonutMuthi --- plugins/adc/src/adcplugin.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/adc/src/adcplugin.cpp b/plugins/adc/src/adcplugin.cpp index de8958c427..6bea922b97 100644 --- a/plugins/adc/src/adcplugin.cpp +++ b/plugins/adc/src/adcplugin.cpp @@ -244,8 +244,7 @@ void ADCPlugin::newInstrument(ADCInstrumentType t, AcqTreeNode *root) connect(root, &AcqTreeNode::deletedChild, dynamic_cast(adc), &ADCTimeInstrumentController::removeChannel, Qt::QueuedConnection); - connect(ui, &ADCInstrument::requestNewInstrument, this, - [=](ADCInstrumentType t) { newInstrument(t, root); }); + connect(ui, &ADCInstrument::requestNewInstrument, this, [=]() { newInstrument(t, root); }); connect(ui, &ADCInstrument::requestDeleteInstrument, this, [=]() { ToolMenuEntry *t = nullptr; @@ -278,8 +277,7 @@ void ADCPlugin::newInstrument(ADCInstrumentType t, AcqTreeNode *root) connect(root, &AcqTreeNode::deletedChild, dynamic_cast(adc), &ADCFFTInstrumentController::removeChannel, Qt::QueuedConnection); - connect(ui, &ADCInstrument::requestNewInstrument, this, - [=](ADCInstrumentType t) { newInstrument(t, root); }); + connect(ui, &ADCInstrument::requestNewInstrument, this, [=]() { newInstrument(t, root); }); connect(ui, &ADCInstrument::requestDeleteInstrument, this, [=]() { ToolMenuEntry *t = nullptr;