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. 5
      src/ui/QGCBaseParamWidget.h
  3. 25
      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() @@ -95,6 +95,11 @@ void QGCBaseParamWidget::requestOnboardParamsUpdate()
paramMgr->requestParameterList();
}
void QGCBaseParamWidget::requestOnboardParamUpdate(QString parameterName)
{
paramMgr->requestParameterUpdate(paramMgr->getDefaultComponentId(), parameterName);
}
void QGCBaseParamWidget::saveParametersToFile()
{

5
src/ui/QGCBaseParamWidget.h

@ -29,7 +29,7 @@ protected: @@ -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: @@ -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();

25
src/ui/QGCParamTreeWidget.cpp

@ -60,9 +60,19 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos) @@ -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) @@ -71,7 +81,16 @@ void QGCParamTreeWidget::showContextMenu(const QPoint &pos)
}
void QGCParamTreeWidget::contextMenuAction() {
QString action = qobject_cast<QAction*>(
sender())->property("action").toString();
QString param_id = qobject_cast<QAction*>(
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";
}
}

1
src/ui/QGCParamTreeWidget.h

@ -40,6 +40,7 @@ public: @@ -40,6 +40,7 @@ public:
signals:
void mapRCToParamRequest(QString param_id);
void refreshParamRequest(QString param_id);
public slots:
void showContextMenu(const QPoint &pos);

2
src/ui/QGCParamWidget.cc

@ -79,6 +79,8 @@ void QGCParamWidget::connectViewSignalsAndSlots() @@ -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);
}

Loading…
Cancel
Save