Commit cab3d7ba authored by Thomas Gubler's avatar Thomas Gubler

add context menu to refresh a single param

parent 6bc001e6
...@@ -95,6 +95,11 @@ void QGCBaseParamWidget::requestOnboardParamsUpdate() ...@@ -95,6 +95,11 @@ void QGCBaseParamWidget::requestOnboardParamsUpdate()
paramMgr->requestParameterList(); paramMgr->requestParameterList();
} }
void QGCBaseParamWidget::requestOnboardParamUpdate(QString parameterName)
{
paramMgr->requestParameterUpdate(paramMgr->getDefaultComponentId(), parameterName);
}
void QGCBaseParamWidget::saveParametersToFile() void QGCBaseParamWidget::saveParametersToFile()
{ {
......
...@@ -29,7 +29,7 @@ protected: ...@@ -29,7 +29,7 @@ protected:
virtual void disconnectFromParamManager(); ///< Disconnect from any connected param manager signals virtual void disconnectFromParamManager(); ///< Disconnect from any connected param manager signals
signals: signals:
public slots: public slots:
virtual void handleOnboardParamUpdate(int component,const QString& parameterName, QVariant value) = 0; virtual void handleOnboardParamUpdate(int component,const QString& parameterName, QVariant value) = 0;
virtual void handlePendingParamUpdate(int compId, const QString& paramName, QVariant value, bool isPending) = 0; virtual void handlePendingParamUpdate(int compId, const QString& paramName, QVariant value, bool isPending) = 0;
...@@ -43,6 +43,9 @@ public slots: ...@@ -43,6 +43,9 @@ public slots:
/** @brief Request list of parameters from MAV */ /** @brief Request list of parameters from MAV */
virtual void requestOnboardParamsUpdate(); virtual void requestOnboardParamsUpdate();
/** @brief Request single parameter from MAV */
virtual void requestOnboardParamUpdate(QString parameterName);
/** @brief Store parameters to a file */ /** @brief Store parameters to a file */
virtual void saveParametersToFile(); virtual void saveParametersToFile();
......
...@@ -60,9 +60,19 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos) ...@@ -60,9 +60,19 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos)
return; return;
} }
QString param_id = item->data(0, Qt::DisplayRole).toString(); 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); act->setProperty("param_id", param_id);
connect(act, &QAction::triggered, this, connect(act, &QAction::triggered, this,
&QGCParamTreeWidget::contextMenuAction); &QGCParamTreeWidget::contextMenuAction);
...@@ -71,7 +81,16 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos) ...@@ -71,7 +81,16 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos)
} }
void QGCParamTreeWidget::contextMenuAction() { void QGCParamTreeWidget::contextMenuAction() {
QString action = qobject_cast<QAction*>(
sender())->property("action").toString();
QString param_id = qobject_cast<QAction*>( QString param_id = qobject_cast<QAction*>(
sender())->property("param_id").toString(); 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";
}
} }
...@@ -40,6 +40,7 @@ public: ...@@ -40,6 +40,7 @@ public:
signals: signals:
void mapRCToParamRequest(QString param_id); void mapRCToParamRequest(QString param_id);
void refreshParamRequest(QString param_id);
public slots: public slots:
void showContextMenu(const QPoint &pos); void showContextMenu(const QPoint &pos);
......
...@@ -79,6 +79,8 @@ void QGCParamWidget::connectViewSignalsAndSlots() ...@@ -79,6 +79,8 @@ void QGCParamWidget::connectViewSignalsAndSlots()
this, SLOT(parameterItemChanged(QTreeWidgetItem*,int))); this, SLOT(parameterItemChanged(QTreeWidgetItem*,int)));
connect(tree, &QGCParamTreeWidget::mapRCToParamRequest, this, connect(tree, &QGCParamTreeWidget::mapRCToParamRequest, this,
&QGCParamWidget::configureRCToParam); &QGCParamWidget::configureRCToParam);
connect(tree, &QGCParamTreeWidget::refreshParamRequest, this,
&QGCParamWidget::requestOnboardParamUpdate);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment