From 85be7c6a7536bfc0b37d82c49a246c412132c556 Mon Sep 17 00:00:00 2001 From: pixhawk Date: Fri, 30 Apr 2010 20:04:04 +0200 Subject: [PATCH] Parameter view works with components now --- src/ui/ParameterInterface.cc | 27 ++++++++++++++++++++++----- src/ui/ParameterInterface.h | 4 +++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/ui/ParameterInterface.cc b/src/ui/ParameterInterface.cc index c18c4df..d977e47 100644 --- a/src/ui/ParameterInterface.cc +++ b/src/ui/ParameterInterface.cc @@ -14,6 +14,7 @@ ParameterInterface::ParameterInterface(QWidget *parent) : m_ui->setupUi(this); connect(UASManager::instance(), SIGNAL(UASCreated(UASInterface*)), this, SLOT(addUAS(UASInterface*))); + components = new QMap(); tree = new ParamTreeModel(); //treeView = new QTreeView(this); @@ -74,9 +75,17 @@ void ParameterInterface::requestParameterList() * @param component id of the component * @param componentName human friendly name of the component */ -void ParameterInterface::addComponent(UASInterface* uas, int component, QString componentName) +void ParameterInterface::addComponent(int uas, int component, QString componentName) { Q_UNUSED(uas); + QStringList list; + list.append(componentName); + list.append(QString::number(component)); + QTreeWidgetItem* comp = new QTreeWidgetItem(list); + bool updated = false; + if (components->contains(component)) updated = true; + components->insert(component, comp); + if (!updated) treeWidget->addTopLevelItem(comp); } void ParameterInterface::receiveParameter(int uas, int component, QString parameterName, float value) @@ -84,10 +93,18 @@ void ParameterInterface::receiveParameter(int uas, int component, QString parame Q_UNUSED(uas); // Insert parameter into map //tree->appendParam(component, parameterName, value); - QStringList list; - list.append(parameterName); - list.append(QString::number(value)); - treeWidget->addTopLevelItem(new QTreeWidgetItem(list)); + QStringList plist; + plist.append(parameterName); + plist.append(QString::number(value)); + QTreeWidgetItem* item = new QTreeWidgetItem(plist); + + // Get component + if (!components->contains(component)) + { + addComponent(uas, component, "Component #" + QString::number(component)); + } + components->value(component)->addChild(item); + //treeWidget->addTopLevelItem(new QTreeWidgetItem(list)); } /** diff --git a/src/ui/ParameterInterface.h b/src/ui/ParameterInterface.h index 266014d..57f1657 100644 --- a/src/ui/ParameterInterface.h +++ b/src/ui/ParameterInterface.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "ui_ParameterInterface.h" #include "UASInterface.h" #include "ParamTreeModel.h" @@ -20,7 +21,7 @@ public: public slots: void addUAS(UASInterface* uas); - void addComponent(UASInterface* uas, int component, QString componentName); + void addComponent(int uas, int component, QString componentName); void receiveParameter(int uas, int component, QString parameterName, float value); void requestParameterList(); void setParameter(UASInterface* uas, int component, QString parameterName, float value); @@ -33,6 +34,7 @@ protected: ParamTreeModel* tree; QTreeView* treeView; QTreeWidget* treeWidget; + QMap* components; private: Ui::parameterWidget *m_ui;