|
|
|
#include "QGCPendingParamWidget.h"
|
|
|
|
|
|
|
|
#include "UASManager.h"
|
|
|
|
#include "UASParameterCommsMgr.h"
|
|
|
|
|
|
|
|
|
|
|
|
QGCPendingParamWidget::QGCPendingParamWidget(QObject *parent) :
|
|
|
|
QGCParamWidget(UASManager::instance()->getActiveUAS(),(QWidget*)parent)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void QGCPendingParamWidget::init()
|
|
|
|
{
|
|
|
|
//we override a lot of the super's init methods
|
|
|
|
layoutWidget();
|
|
|
|
connectSignalsAndSlots();
|
|
|
|
|
|
|
|
//don't request update params here...assume that everything we need is in the data model
|
|
|
|
}
|
|
|
|
|
|
|
|
void QGCPendingParamWidget::connectSignalsAndSlots()
|
|
|
|
{
|
|
|
|
// Listing for pending list update
|
|
|
|
connect(paramDataModel, SIGNAL(pendingParamUpdate(int , const QString&, QVariant , bool )),
|
|
|
|
this, SLOT(handlePendingParamUpdate(int , const QString& , QVariant, bool )));
|
|
|
|
|
|
|
|
// Listen to communications status messages so we can display them
|
|
|
|
connect(paramCommsMgr, SIGNAL(parameterStatusMsgUpdated(QString,int)),
|
|
|
|
this, SLOT(handleParamStatusMsgUpdate(QString , int )));
|
|
|
|
}
|
|
|
|
|
|
|
|
void QGCPendingParamWidget::handlePendingParamUpdate(int compId, const QString& paramName, QVariant value, bool isPending)
|
|
|
|
{
|
|
|
|
// qDebug() << "handlePendingParamUpdate:" << paramName << "with updatingParamNameLock:" << updatingParamNameLock;
|
|
|
|
|
|
|
|
if (updatingParamNameLock == paramName) {
|
|
|
|
//qDebug() << "ignoring bounce from " << paramName;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
updatingParamNameLock = paramName;
|
|
|
|
}
|
|
|
|
|
|
|
|
QTreeWidgetItem* paramItem = updateParameterDisplay(compId,paramName,value);
|
|
|
|
|
|
|
|
if (isPending) {
|
|
|
|
QTreeWidgetItem* paramItem = updateParameterDisplay(compId,paramName,value);
|
|
|
|
paramItem->setFlags(paramItem->flags() & ~Qt::ItemIsEditable); //disallow editing
|
|
|
|
paramItem->setBackground(0, QBrush(QColor(QGC::colorOrange)));
|
|
|
|
paramItem->setBackground(1, QBrush(QColor(QGC::colorOrange)));
|
|
|
|
tree->expandAll();
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
//we don't display non-pending items
|
|
|
|
paramItem->parent()->removeChild(paramItem);
|
|
|
|
}
|
|
|
|
|
|
|
|
updatingParamNameLock.clear();
|
|
|
|
|
|
|
|
}
|
|
|
|
|