Commit afa582aa authored by lm's avatar lm

Param fixes

parent 1cfc3181
...@@ -43,7 +43,8 @@ This file is part of the QGROUNDCONTROL project ...@@ -43,7 +43,8 @@ This file is part of the QGROUNDCONTROL project
QGCParamWidget::QGCParamWidget(UASInterface* uas, QWidget *parent) : QGCParamWidget::QGCParamWidget(UASInterface* uas, QWidget *parent) :
QWidget(parent), QWidget(parent),
mav(uas), mav(uas),
components(new QMap<int, QTreeWidgetItem*>()) components(new QMap<int, QTreeWidgetItem*>()),
changedValues()//QMap<int, QMap<QString, float>* >())
{ {
// Create tree widget // Create tree widget
tree = new QTreeWidget(this); tree = new QTreeWidget(this);
...@@ -140,6 +141,7 @@ void QGCParamWidget::addParameter(int uas, int component, QString parameterName, ...@@ -140,6 +141,7 @@ void QGCParamWidget::addParameter(int uas, int component, QString parameterName,
{ {
addComponent(uas, component, "Component #" + QString::number(component)); addComponent(uas, component, "Component #" + QString::number(component));
} }
// TODO Replace old value
components->value(component)->addChild(item); components->value(component)->addChild(item);
item->setFlags(item->flags() | Qt::ItemIsEditable); item->setFlags(item->flags() | Qt::ItemIsEditable);
//connect(item, SIGNAL()) //connect(item, SIGNAL())
...@@ -158,12 +160,29 @@ void QGCParamWidget::requestParameterList() ...@@ -158,12 +160,29 @@ void QGCParamWidget::requestParameterList()
mav->requestParameters(); mav->requestParameters();
} }
void QGCParamWidget::parameterItemChanged(QTreeWidgetItem* prev, QTreeWidgetItem* curr) void QGCParamWidget::parameterItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous)
{ {
int key; int key;
if (!changedValues->contains(key)) if (!changedValues.contains(key))
{ {
changedValues.insert(key, new QMap<QString, float>());
}
QMap<QString, float>* map = changedValues.value(key, NULL);
if (map)
{
bool ok;
QString str = current->data(0, Qt::DisplayRole).toString();
float value = current->data(1, Qt::DisplayRole).toDouble(&ok);
// Send parameter to MAV
if (ok)
{
float oldvalue = current->data(1, Qt::DisplayRole).toDouble(&ok);
if (ok && (oldvalue != value))
{
qDebug() << "PARAM CHANGED: KEY:" << str << "VALUE:" << value;
map->insert(str, value);
}
}
} }
} }
...@@ -210,6 +229,9 @@ void QGCParamWidget::setParameters() ...@@ -210,6 +229,9 @@ void QGCParamWidget::setParameters()
} }
} }
} }
// TODO Instead of clearing, keep parameter list and wait for individual update messages
clear(); clear();
//mav->requestParameters(); //mav->requestParameters();
qDebug() << __FILE__ << __LINE__ << "SETTING ALL PARAMETERS"; qDebug() << __FILE__ << __LINE__ << "SETTING ALL PARAMETERS";
......
...@@ -73,7 +73,7 @@ protected: ...@@ -73,7 +73,7 @@ protected:
UASInterface* mav; ///< The MAV this widget is controlling UASInterface* mav; ///< The MAV this widget is controlling
QTreeWidget* tree; ///< The parameter tree QTreeWidget* tree; ///< The parameter tree
QMap<int, QTreeWidgetItem*>* components; ///< The list of components QMap<int, QTreeWidgetItem*>* components; ///< The list of components
QMap<int, QMap<QString, float> >* changedValues; ///< Changed values QMap<int, QMap<QString, float>* > changedValues; ///< Changed values
}; };
......
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