From 0c5065251d15554244dfb840590d5617443a9dc0 Mon Sep 17 00:00:00 2001 From: John Tapsell Date: Thu, 17 Oct 2013 23:33:15 +0100 Subject: [PATCH] Reduce code duplication --- src/ui/designer/QGCToolWidget.cc | 49 ++++++++------------------------ src/ui/designer/QGCToolWidget.h | 2 ++ 2 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/ui/designer/QGCToolWidget.cc b/src/ui/designer/QGCToolWidget.cc index f394ca1ff..f8ddb6969 100644 --- a/src/ui/designer/QGCToolWidget.cc +++ b/src/ui/designer/QGCToolWidget.cc @@ -51,7 +51,7 @@ QGCToolWidget::QGCToolWidget(const QString& objectName, const QString& title, QW // Enforce storage if this not loaded from settings // is MUST NOT BE SAVED if it was loaded from settings! - //if (!settings) storeWidgetsToSettings(); + if (!settings) storeWidgetsToSettings(); } QGCToolWidget::~QGCToolWidget() @@ -530,60 +530,35 @@ QList* QGCToolWidget::itemList() if (!instances) instances = new QList(); return instances; } + void QGCToolWidget::addParam(int uas,int component,QString paramname,QVariant value) { isFromMetaData = true; QGCParamSlider* slider = new QGCParamSlider(this); - connect(slider, SIGNAL(destroyed()), this, SLOT(storeSettings())); - if (ui->hintLabel) - { - ui->hintLabel->deleteLater(); - ui->hintLabel = NULL; - } - toolLayout->addWidget(slider); + addToolWidget(slider); slider->setActiveUAS(mav); slider->setParameterValue(uas,component,0,-1,paramname,value); - - } void QGCToolWidget::addParam() { - QGCParamSlider* slider = new QGCParamSlider(this); - connect(slider, SIGNAL(destroyed()), this, SLOT(storeSettings())); - if (ui->hintLabel) - { - ui->hintLabel->deleteLater(); - ui->hintLabel = NULL; - } - toolLayout->addWidget(slider); - slider->startEditMode(); + addToolWidgetAndEdit(new QGCParamSlider(this)); } void QGCToolWidget::addCommand() { - QGCCommandButton* button = new QGCCommandButton(this); - connect(button, SIGNAL(destroyed()), this, SLOT(storeSettings())); - if (ui->hintLabel) - { - ui->hintLabel->deleteLater(); - ui->hintLabel = NULL; - } - toolLayout->addWidget(button); - button->startEditMode(); + addToolWidgetAndEdit(new QGCCommandButton(this)); } void QGCToolWidget::addLabel() { - QGCTextLabel* label= new QGCTextLabel(this); - connect(label, SIGNAL(destroyed()), this, SLOT(storeSettings())); - if (ui->hintLabel) - { - ui->hintLabel->deleteLater(); - ui->hintLabel = NULL; - } - toolLayout->addWidget(label); - label->startEditMode(); + addToolWidgetAndEdit(new QGCTextLabel(this)); +} + +void QGCToolWidget::addToolWidgetAndEdit(QGCToolWidgetItem* widget) +{ + addToolWidget(widget); + widget->startEditMode(); } void QGCToolWidget::addToolWidget(QGCToolWidgetItem* widget) diff --git a/src/ui/designer/QGCToolWidget.h b/src/ui/designer/QGCToolWidget.h index 2e08337c2..9bc17c69d 100644 --- a/src/ui/designer/QGCToolWidget.h +++ b/src/ui/designer/QGCToolWidget.h @@ -91,6 +91,8 @@ protected: QList* itemList(); /** @brief Add an existing tool widget */ void addToolWidget(QGCToolWidgetItem* widget); + /** @brief Add an existing tool widget and set it to edit mode */ + void addToolWidgetAndEdit(QGCToolWidgetItem* widget); void hideEvent(QHideEvent* event); public slots: -- 2.22.0