From cab3d7bae96e0a0b35991bc1a9b50a146bef0886 Mon Sep 17 00:00:00 2001 From: Thomas Gubler Date: Sun, 28 Dec 2014 19:24:58 +0100 Subject: [PATCH] add context menu to refresh a single param --- src/ui/QGCBaseParamWidget.cc | 5 +++++ src/ui/QGCBaseParamWidget.h | 5 ++++- src/ui/QGCParamTreeWidget.cpp | 25 ++++++++++++++++++++++--- src/ui/QGCParamTreeWidget.h | 1 + src/ui/QGCParamWidget.cc | 2 ++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/ui/QGCBaseParamWidget.cc b/src/ui/QGCBaseParamWidget.cc index 35e868518..b6f86c90d 100644 --- a/src/ui/QGCBaseParamWidget.cc +++ b/src/ui/QGCBaseParamWidget.cc @@ -95,6 +95,11 @@ void QGCBaseParamWidget::requestOnboardParamsUpdate() paramMgr->requestParameterList(); } +void QGCBaseParamWidget::requestOnboardParamUpdate(QString parameterName) +{ + paramMgr->requestParameterUpdate(paramMgr->getDefaultComponentId(), parameterName); +} + void QGCBaseParamWidget::saveParametersToFile() { diff --git a/src/ui/QGCBaseParamWidget.h b/src/ui/QGCBaseParamWidget.h index ffb0e9125..8ec34711d 100644 --- a/src/ui/QGCBaseParamWidget.h +++ b/src/ui/QGCBaseParamWidget.h @@ -29,7 +29,7 @@ protected: virtual void disconnectFromParamManager(); ///< Disconnect from any connected param manager signals signals: - + public slots: virtual void handleOnboardParamUpdate(int component,const QString& parameterName, QVariant value) = 0; virtual void handlePendingParamUpdate(int compId, const QString& paramName, QVariant value, bool isPending) = 0; @@ -43,6 +43,9 @@ public slots: /** @brief Request list of parameters from MAV */ virtual void requestOnboardParamsUpdate(); + /** @brief Request single parameter from MAV */ + virtual void requestOnboardParamUpdate(QString parameterName); + /** @brief Store parameters to a file */ virtual void saveParametersToFile(); diff --git a/src/ui/QGCParamTreeWidget.cpp b/src/ui/QGCParamTreeWidget.cpp index f74e5f9a8..7934d2977 100644 --- a/src/ui/QGCParamTreeWidget.cpp +++ b/src/ui/QGCParamTreeWidget.cpp @@ -60,9 +60,19 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos) return; } - QString param_id = item->data(0, Qt::DisplayRole).toString(); - QAction* act = new QAction(tr("Map Parameter to RC"), this); + + // Refresh single parameter + QAction* act = new QAction(tr("Refresh this param"), this); + act->setProperty("action", "refresh"); + act->setProperty("param_id", param_id); + connect(act, &QAction::triggered, this, + &QGCParamTreeWidget::contextMenuAction); + menu.addAction(act); + + // RC to parameter mapping + act = new QAction(tr("Map Parameter to RC"), this); + act->setProperty("action", "maprc"); act->setProperty("param_id", param_id); connect(act, &QAction::triggered, this, &QGCParamTreeWidget::contextMenuAction); @@ -71,7 +81,16 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos) } void QGCParamTreeWidget::contextMenuAction() { + QString action = qobject_cast( + sender())->property("action").toString(); QString param_id = qobject_cast( sender())->property("param_id").toString(); - emit mapRCToParamRequest(param_id); + + if (action == "refresh") { + emit refreshParamRequest(param_id); + } else if (action == "maprc") { + emit mapRCToParamRequest(param_id); + } else { + qDebug() << "Undefined context menu action"; + } } diff --git a/src/ui/QGCParamTreeWidget.h b/src/ui/QGCParamTreeWidget.h index 80a02518e..9c63456db 100644 --- a/src/ui/QGCParamTreeWidget.h +++ b/src/ui/QGCParamTreeWidget.h @@ -40,6 +40,7 @@ public: signals: void mapRCToParamRequest(QString param_id); + void refreshParamRequest(QString param_id); public slots: void showContextMenu(const QPoint &pos); diff --git a/src/ui/QGCParamWidget.cc b/src/ui/QGCParamWidget.cc index 0cdbc9249..7084ba0e6 100644 --- a/src/ui/QGCParamWidget.cc +++ b/src/ui/QGCParamWidget.cc @@ -79,6 +79,8 @@ void QGCParamWidget::connectViewSignalsAndSlots() this, SLOT(parameterItemChanged(QTreeWidgetItem*,int))); connect(tree, &QGCParamTreeWidget::mapRCToParamRequest, this, &QGCParamWidget::configureRCToParam); + connect(tree, &QGCParamTreeWidget::refreshParamRequest, this, + &QGCParamWidget::requestOnboardParamUpdate); } -- 2.22.0