Browse Source

add context menu to refresh a single param

QGC4.4
Thomas Gubler 10 years ago
parent
commit
cab3d7bae9
  1. 5
      src/ui/QGCBaseParamWidget.cc
  2. 3
      src/ui/QGCBaseParamWidget.h
  3. 23
      src/ui/QGCParamTreeWidget.cpp
  4. 1
      src/ui/QGCParamTreeWidget.h
  5. 2
      src/ui/QGCParamWidget.cc

5
src/ui/QGCBaseParamWidget.cc

@ -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()
{ {

3
src/ui/QGCBaseParamWidget.h

@ -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();

23
src/ui/QGCParamTreeWidget.cpp

@ -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)
} }
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();
if (action == "refresh") {
emit refreshParamRequest(param_id);
} else if (action == "maprc") {
emit mapRCToParamRequest(param_id); emit mapRCToParamRequest(param_id);
} else {
qDebug() << "Undefined context menu action";
}
} }

1
src/ui/QGCParamTreeWidget.h

@ -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);

2
src/ui/QGCParamWidget.cc

@ -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);
} }

Loading…
Cancel
Save