mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
OP-706 Added support for isKnown for Settings objects in UAVOBrowser.
This commit is contained in:
parent
1e08528d54
commit
3246cf9756
@ -52,11 +52,13 @@ class FieldTreeItem : public TreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
FieldTreeItem(int index, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_index(index) {}
|
||||
FieldTreeItem(int index, const QList<QVariant> &data, UAVObjectField *field, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_index(index), m_field(field)
|
||||
{}
|
||||
|
||||
FieldTreeItem(int index, const QVariant &data, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_index(index) {}
|
||||
FieldTreeItem(int index, const QVariant &data, UAVObjectField *field, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_index(index), m_field(field)
|
||||
{}
|
||||
|
||||
bool isEditable()
|
||||
{
|
||||
@ -67,19 +69,27 @@ public:
|
||||
virtual QVariant getEditorValue(QWidget *editor) = 0;
|
||||
virtual void setEditorValue(QWidget *editor, QVariant value) = 0;
|
||||
virtual void apply() {}
|
||||
virtual bool isKnown()
|
||||
{
|
||||
return !m_field->getObject()->isSettingsObject() || m_field->getObject()->isKnown();
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
int m_index;
|
||||
UAVObjectField *m_field;
|
||||
};
|
||||
|
||||
class EnumFieldTreeItem : public FieldTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
EnumFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_enumOptions(field->getOptions()), m_field(field) {}
|
||||
FieldTreeItem(index, data, field, parent), m_enumOptions(field->getOptions())
|
||||
{}
|
||||
|
||||
EnumFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_enumOptions(field->getOptions()), m_field(field) {}
|
||||
FieldTreeItem(index, data, field, parent), m_enumOptions(field->getOptions())
|
||||
{}
|
||||
|
||||
void setData(QVariant value, int column)
|
||||
{
|
||||
@ -148,20 +158,19 @@ public:
|
||||
|
||||
private:
|
||||
QStringList m_enumOptions;
|
||||
UAVObjectField *m_field;
|
||||
};
|
||||
|
||||
class IntFieldTreeItem : public FieldTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
IntFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field)
|
||||
FieldTreeItem(index, data, field, parent)
|
||||
{
|
||||
setMinMaxValues();
|
||||
}
|
||||
|
||||
IntFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field)
|
||||
FieldTreeItem(index, data, field, parent)
|
||||
{
|
||||
setMinMaxValues();
|
||||
}
|
||||
@ -246,7 +255,6 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
UAVObjectField *m_field;
|
||||
int m_minValue;
|
||||
int m_maxValue;
|
||||
};
|
||||
@ -255,10 +263,10 @@ class FloatFieldTreeItem : public FieldTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
FloatFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, bool scientific = false, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field), m_useScientificNotation(scientific) {}
|
||||
FieldTreeItem(index, data, field, parent), m_useScientificNotation(scientific) {}
|
||||
|
||||
FloatFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, bool scientific = false, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field), m_useScientificNotation(scientific) {}
|
||||
FieldTreeItem(index, data, field, parent), m_useScientificNotation(scientific) {}
|
||||
|
||||
void setData(QVariant value, int column)
|
||||
{
|
||||
@ -324,7 +332,6 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
UAVObjectField *m_field;
|
||||
bool m_useScientificNotation;
|
||||
};
|
||||
|
||||
@ -332,11 +339,11 @@ class HexFieldTreeItem : public FieldTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
HexFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field)
|
||||
FieldTreeItem(index, data, field, parent)
|
||||
{}
|
||||
|
||||
HexFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field)
|
||||
FieldTreeItem(index, data, field, parent)
|
||||
{}
|
||||
|
||||
QWidget *createEditor(QWidget *parent)
|
||||
@ -385,8 +392,6 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
UAVObjectField *m_field;
|
||||
|
||||
QVariant toHexString(QVariant value)
|
||||
{
|
||||
QString str;
|
||||
@ -407,11 +412,11 @@ class CharFieldTreeItem : public FieldTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
CharFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field)
|
||||
FieldTreeItem(index, data, field, parent)
|
||||
{}
|
||||
|
||||
CharFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
|
||||
FieldTreeItem(index, data, parent), m_field(field)
|
||||
FieldTreeItem(index, data, field, parent)
|
||||
{}
|
||||
|
||||
QWidget *createEditor(QWidget *parent)
|
||||
@ -460,8 +465,6 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
UAVObjectField *m_field;
|
||||
|
||||
QVariant toChar(QVariant value)
|
||||
{
|
||||
return value.toChar();
|
||||
|
@ -102,16 +102,14 @@ TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent) :
|
||||
m_data(data),
|
||||
m_parent(parent),
|
||||
m_highlight(false),
|
||||
m_changed(false),
|
||||
m_known(true)
|
||||
m_changed(false)
|
||||
{}
|
||||
|
||||
TreeItem::TreeItem(const QVariant &data, TreeItem *parent) :
|
||||
QObject(0),
|
||||
m_parent(parent),
|
||||
m_highlight(false),
|
||||
m_changed(false),
|
||||
m_known(true)
|
||||
m_changed(false)
|
||||
{
|
||||
m_data << data << "" << "";
|
||||
}
|
||||
|
@ -88,6 +88,9 @@ private:
|
||||
class TreeItem : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
static const int TITLE_COLUMN = 0;
|
||||
static const int DATA_COLUMN = 1;
|
||||
|
||||
TreeItem(const QList<QVariant> &data, TreeItem *parent = 0);
|
||||
TreeItem(const QVariant &data, TreeItem *parent = 0);
|
||||
virtual ~TreeItem();
|
||||
@ -205,27 +208,31 @@ public:
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void setKnown(bool known)
|
||||
void updateIsKnown(bool isKnown)
|
||||
{
|
||||
m_known = known;
|
||||
foreach(TreeItem * child, m_children) {
|
||||
child->setKnown(known);
|
||||
if (isKnown != this->isKnown()) {
|
||||
m_changed = false;
|
||||
foreach(TreeItem * child, m_children) {
|
||||
child->updateIsKnown(isKnown);
|
||||
}
|
||||
emit updateIsKnown(this);
|
||||
}
|
||||
updateHighlight(this);
|
||||
}
|
||||
inline bool isKnown()
|
||||
virtual bool isKnown()
|
||||
{
|
||||
return m_known;
|
||||
return true;
|
||||
}
|
||||
|
||||
signals:
|
||||
void updateHighlight(TreeItem *);
|
||||
void updateHighlight(TreeItem *item);
|
||||
void updateIsKnown(TreeItem *item);
|
||||
|
||||
private slots:
|
||||
|
||||
private:
|
||||
static int m_highlightTimeMs;
|
||||
QList<TreeItem *> m_children;
|
||||
|
||||
// m_data contains: [0] property name, [1] value, [2] unit
|
||||
QList<QVariant> m_data;
|
||||
QString m_description;
|
||||
@ -234,11 +241,6 @@ private:
|
||||
bool m_changed;
|
||||
QTime m_highlightExpires;
|
||||
HighLightManager *m_highlightManager;
|
||||
static int m_highlightTimeMs;
|
||||
bool m_known;
|
||||
|
||||
public:
|
||||
static const int dataColumn = 1;
|
||||
};
|
||||
|
||||
class DataObjectTreeItem;
|
||||
@ -280,19 +282,25 @@ private:
|
||||
class ObjectTreeItem : public TreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ObjectTreeItem(const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_obj(0) {}
|
||||
ObjectTreeItem(const QVariant &data, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_obj(0) {}
|
||||
void setObject(UAVObject *obj)
|
||||
ObjectTreeItem(const QList<QVariant> &data, UAVObject *object, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_obj(object)
|
||||
{
|
||||
m_obj = obj;
|
||||
setDescription(obj->getDescription());
|
||||
setDescription(m_obj->getDescription());
|
||||
}
|
||||
ObjectTreeItem(const QVariant &data, UAVObject *object, TreeItem *parent = 0) :
|
||||
TreeItem(data, parent), m_obj(object)
|
||||
{
|
||||
setDescription(m_obj->getDescription());
|
||||
}
|
||||
inline UAVObject *object()
|
||||
{
|
||||
return m_obj;
|
||||
}
|
||||
bool isKnown()
|
||||
{
|
||||
return !m_obj->isSettingsObject() || m_obj->isKnown();
|
||||
}
|
||||
|
||||
private:
|
||||
UAVObject *m_obj;
|
||||
};
|
||||
@ -300,25 +308,21 @@ private:
|
||||
class MetaObjectTreeItem : public ObjectTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MetaObjectTreeItem(UAVObject *obj, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, parent)
|
||||
{
|
||||
setObject(obj);
|
||||
}
|
||||
MetaObjectTreeItem(UAVObject *obj, const QVariant &data, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, parent)
|
||||
{
|
||||
setObject(obj);
|
||||
}
|
||||
MetaObjectTreeItem(UAVObject *object, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, object, parent)
|
||||
{}
|
||||
MetaObjectTreeItem(UAVObject *object, const QVariant &data, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, object, parent)
|
||||
{}
|
||||
};
|
||||
|
||||
class DataObjectTreeItem : public ObjectTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
DataObjectTreeItem(const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, parent) {}
|
||||
DataObjectTreeItem(const QVariant &data, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, parent) {}
|
||||
DataObjectTreeItem(const QList<QVariant> &data, UAVObject *object, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, object, parent) {}
|
||||
DataObjectTreeItem(const QVariant &data, UAVObject *object, TreeItem *parent = 0) :
|
||||
ObjectTreeItem(data, object, parent) {}
|
||||
virtual void apply()
|
||||
{
|
||||
foreach(TreeItem * child, treeChildren()) {
|
||||
@ -344,16 +348,12 @@ public:
|
||||
class InstanceTreeItem : public DataObjectTreeItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
InstanceTreeItem(UAVObject *obj, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
DataObjectTreeItem(data, parent)
|
||||
{
|
||||
setObject(obj);
|
||||
}
|
||||
InstanceTreeItem(UAVObject *obj, const QVariant &data, TreeItem *parent = 0) :
|
||||
DataObjectTreeItem(data, parent)
|
||||
{
|
||||
setObject(obj);
|
||||
}
|
||||
InstanceTreeItem(UAVObject *object, const QList<QVariant> &data, TreeItem *parent = 0) :
|
||||
DataObjectTreeItem(data, object, parent)
|
||||
{}
|
||||
InstanceTreeItem(UAVObject *object, const QVariant &data, TreeItem *parent = 0) :
|
||||
DataObjectTreeItem(data, object, parent)
|
||||
{}
|
||||
virtual void apply()
|
||||
{
|
||||
TreeItem::apply();
|
||||
@ -372,6 +372,10 @@ public:
|
||||
ArrayFieldTreeItem(UAVObjectField *field, const QVariant &data, TreeItem *parent = 0) : TreeItem(data, parent), m_field(field)
|
||||
{}
|
||||
QVariant data(int column) const;
|
||||
bool isKnown()
|
||||
{
|
||||
return !m_field->getObject()->isSettingsObject() || m_field->getObject()->isKnown();
|
||||
}
|
||||
|
||||
private:
|
||||
UAVObjectField *m_field;
|
||||
|
@ -1,5 +1,4 @@
|
||||
include(../../plugins/uavobjects/uavobjects.pri)
|
||||
include(../../plugins/coreplugin/coreplugin.pri)
|
||||
include(../../plugins/uavtalk/uavtalk.pri)
|
||||
include(../../libs/utils/utils.pri)
|
||||
include(../../libs/qscispinbox/qscispinbox.pri)
|
||||
|
@ -42,9 +42,9 @@ UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent, bool categorize, bool us
|
||||
m_useScientificFloatNotation(useScientificNotation),
|
||||
m_categorize(categorize),
|
||||
m_recentlyUpdatedTimeout(500), // ms
|
||||
m_unknownObjectColor(QColor(Qt::gray)),
|
||||
m_recentlyUpdatedColor(QColor(255, 230, 230)),
|
||||
m_manuallyChangedColor(QColor(230, 230, 255))
|
||||
m_manuallyChangedColor(QColor(230, 230, 255)),
|
||||
m_unknownObjectColor(QColor(Qt::gray))
|
||||
{
|
||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
|
||||
@ -57,12 +57,6 @@ UAVObjectTreeModel::UAVObjectTreeModel(QObject *parent, bool categorize, bool us
|
||||
connect(objManager, SIGNAL(newInstance(UAVObject *)), this, SLOT(newObject(UAVObject *)));
|
||||
|
||||
TreeItem::setHighlightTime(m_recentlyUpdatedTimeout);
|
||||
|
||||
TelemetryManager *telManager = pm->getObject<TelemetryManager>();
|
||||
Q_ASSERT(telManager);
|
||||
m_telemetryManager = telManager;
|
||||
connect(m_telemetryManager, SIGNAL(knownObjectsChanged(UAVObject *, bool)), this, SLOT(knownObjectsChanged(UAVObject *, bool)));
|
||||
|
||||
setupModelData(objManager);
|
||||
}
|
||||
|
||||
@ -121,17 +115,16 @@ void UAVObjectTreeModel::addDataObject(UAVDataObject *obj)
|
||||
if (existing) {
|
||||
addInstance(obj, existing);
|
||||
} else {
|
||||
DataObjectTreeItem *dataTreeItem = new DataObjectTreeItem(obj->getName());
|
||||
DataObjectTreeItem *dataTreeItem = new DataObjectTreeItem(obj->getName(), obj);
|
||||
dataTreeItem->setHighlightManager(m_highlightManager);
|
||||
connect(dataTreeItem, SIGNAL(updateHighlight(TreeItem *)), this, SLOT(updateHighlight(TreeItem *)));
|
||||
connect(dataTreeItem, SIGNAL(updateIsKnown(TreeItem *)), this, SLOT(updateIsKnown(TreeItem *)));
|
||||
parent->insertChild(dataTreeItem);
|
||||
root->addObjectTreeItem(obj->getObjID(), dataTreeItem);
|
||||
UAVMetaObject *meta = obj->getMetaObject();
|
||||
MetaObjectTreeItem *metaTreeItem = addMetaObject(meta, dataTreeItem);
|
||||
metaTreeItem->setKnown(root == m_nonSettingsTree || m_telemetryManager->isObjectKnown(obj));
|
||||
root->addMetaObjectTreeItem(meta->getObjID(), metaTreeItem);
|
||||
addInstance(obj, dataTreeItem);
|
||||
dataTreeItem->setKnown(root == m_nonSettingsTree || m_telemetryManager->isObjectKnown(obj));
|
||||
}
|
||||
}
|
||||
|
||||
@ -176,16 +169,18 @@ MetaObjectTreeItem *UAVObjectTreeModel::addMetaObject(UAVMetaObject *obj, TreeIt
|
||||
void UAVObjectTreeModel::addInstance(UAVObject *obj, TreeItem *parent)
|
||||
{
|
||||
connect(obj, SIGNAL(objectUpdated(UAVObject *)), this, SLOT(highlightUpdatedObject(UAVObject *)));
|
||||
connect(obj, SIGNAL(isKnownChanged(UAVObject *, bool)), this, SLOT(isKnownChanged(UAVObject *, bool)));
|
||||
TreeItem *item;
|
||||
if (obj->isSingleInstance()) {
|
||||
item = parent;
|
||||
DataObjectTreeItem *p = static_cast<DataObjectTreeItem *>(parent);
|
||||
p->setObject(obj);
|
||||
DataObjectTreeItem *objectItem = static_cast<DataObjectTreeItem *>(parent);
|
||||
connect(objectItem, SIGNAL(updateIsKnown(TreeItem *)), this, SLOT(updateIsKnown(TreeItem *)));
|
||||
} else {
|
||||
QString name = tr("Instance") + " " + QString::number(obj->getInstID());
|
||||
item = new InstanceTreeItem(obj, name);
|
||||
item->setHighlightManager(m_highlightManager);
|
||||
connect(item, SIGNAL(updateHighlight(TreeItem *)), this, SLOT(updateHighlight(TreeItem *)));
|
||||
connect(item, SIGNAL(updateIsKnown(TreeItem *)), this, SLOT(updateIsKnown(TreeItem *)));
|
||||
parent->appendChild(item);
|
||||
}
|
||||
foreach(UAVObjectField * field, obj->getFields()) {
|
||||
@ -203,6 +198,7 @@ void UAVObjectTreeModel::addArrayField(UAVObjectField *field, TreeItem *parent)
|
||||
|
||||
item->setHighlightManager(m_highlightManager);
|
||||
connect(item, SIGNAL(updateHighlight(TreeItem *)), this, SLOT(updateHighlight(TreeItem *)));
|
||||
connect(item, SIGNAL(updateIsKnown(TreeItem *)), this, SLOT(updateIsKnown(TreeItem *)));
|
||||
for (uint i = 0; i < field->getNumElements(); ++i) {
|
||||
addSingleField(i, field, item);
|
||||
}
|
||||
@ -258,6 +254,7 @@ void UAVObjectTreeModel::addSingleField(int index, UAVObjectField *field, TreeIt
|
||||
item->setHighlightManager(m_highlightManager);
|
||||
item->setDescription(field->getDescription());
|
||||
connect(item, SIGNAL(updateHighlight(TreeItem *)), this, SLOT(updateHighlight(TreeItem *)));
|
||||
connect(item, SIGNAL(updateIsKnown(TreeItem *)), this, SLOT(updateIsKnown(TreeItem *)));
|
||||
parent->appendChild(item);
|
||||
}
|
||||
|
||||
@ -366,7 +363,7 @@ QVariant UAVObjectTreeModel::data(const QModelIndex &index, int role) const
|
||||
|
||||
TreeItem *item = static_cast<TreeItem *>(index.internalPointer());
|
||||
|
||||
if (index.column() == TreeItem::dataColumn && role == Qt::EditRole) {
|
||||
if (index.column() == TreeItem::DATA_COLUMN && role == Qt::EditRole) {
|
||||
return item->data(index.column());
|
||||
}
|
||||
|
||||
@ -386,7 +383,7 @@ QVariant UAVObjectTreeModel::data(const QModelIndex &index, int role) const
|
||||
}
|
||||
}
|
||||
|
||||
if (index.column() == TreeItem::dataColumn && role == Qt::BackgroundRole) {
|
||||
if (index.column() == TreeItem::DATA_COLUMN && role == Qt::BackgroundRole) {
|
||||
FieldTreeItem *fieldItem = dynamic_cast<FieldTreeItem *>(item);
|
||||
if (fieldItem && fieldItem->highlighted()) {
|
||||
return QVariant(m_recentlyUpdatedColor);
|
||||
@ -401,7 +398,7 @@ QVariant UAVObjectTreeModel::data(const QModelIndex &index, int role) const
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
if (index.column() == TreeItem::dataColumn) {
|
||||
if (index.column() == TreeItem::DATA_COLUMN) {
|
||||
EnumFieldTreeItem *fieldItem = dynamic_cast<EnumFieldTreeItem *>(item);
|
||||
if (fieldItem) {
|
||||
int enumIndex = fieldItem->data(index.column()).toInt();
|
||||
@ -427,7 +424,7 @@ Qt::ItemFlags UAVObjectTreeModel::flags(const QModelIndex &index) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (index.column() == TreeItem::dataColumn) {
|
||||
if (index.column() == TreeItem::DATA_COLUMN) {
|
||||
TreeItem *item = static_cast<TreeItem *>(index.internalPointer());
|
||||
if (item->isEditable()) {
|
||||
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
|
||||
@ -498,20 +495,22 @@ void UAVObjectTreeModel::updateHighlight(TreeItem *item)
|
||||
QModelIndex itemIndex = index(item);
|
||||
|
||||
Q_ASSERT(itemIndex != QModelIndex());
|
||||
emit dataChanged(itemIndex, itemIndex.sibling(itemIndex.row(), TreeItem::dataColumn));
|
||||
emit dataChanged(itemIndex, itemIndex.sibling(itemIndex.row(), TreeItem::DATA_COLUMN));
|
||||
}
|
||||
|
||||
void UAVObjectTreeModel::knownObjectsChanged(UAVObject *object, bool known)
|
||||
void UAVObjectTreeModel::updateIsKnown(TreeItem *item)
|
||||
{
|
||||
if (object->isSettingsObject()) {
|
||||
TreeItem *item;
|
||||
if (object->isMetaDataObject()) {
|
||||
item = m_settingsTree->findMetaObjectTreeItemByObjectId(object->getObjID());
|
||||
} else {
|
||||
item = m_settingsTree->findDataObjectTreeItemByObjectId(object->getObjID());
|
||||
}
|
||||
if (item) {
|
||||
item->setKnown(known);
|
||||
}
|
||||
QModelIndex itemIndex = index(item);
|
||||
|
||||
Q_ASSERT(itemIndex != QModelIndex());
|
||||
emit dataChanged(itemIndex, itemIndex.sibling(itemIndex.row(), TreeItem::TITLE_COLUMN));
|
||||
}
|
||||
|
||||
void UAVObjectTreeModel::isKnownChanged(UAVObject *object, bool isKnown)
|
||||
{
|
||||
Q_UNUSED(isKnown);
|
||||
ObjectTreeItem *item = findObjectTreeItem(object);
|
||||
if (item) {
|
||||
item->updateIsKnown(isKnown);
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,6 @@
|
||||
#define UAVOBJECTTREEMODEL_H
|
||||
|
||||
#include "treeitem.h"
|
||||
#include "uavtalk/telemetrymanager.h"
|
||||
#include <QAbstractItemModel>
|
||||
#include <QtCore/QMap>
|
||||
#include <QtCore/QList>
|
||||
@ -93,9 +92,10 @@ public slots:
|
||||
void newObject(UAVObject *obj);
|
||||
|
||||
private slots:
|
||||
void updateHighlight(TreeItem *item);
|
||||
void updateIsKnown(TreeItem *item);
|
||||
void highlightUpdatedObject(UAVObject *obj);
|
||||
void updateHighlight(TreeItem *);
|
||||
void knownObjectsChanged(UAVObject *object, bool known);
|
||||
void isKnownChanged(UAVObject *object, bool isKnown);
|
||||
|
||||
private:
|
||||
void setupModelData(UAVObjectManager *objManager);
|
||||
@ -126,7 +126,6 @@ private:
|
||||
|
||||
// Highlight manager to handle highlighting of tree items.
|
||||
HighLightManager *m_highlightManager;
|
||||
TelemetryManager *m_telemetryManager;
|
||||
};
|
||||
|
||||
#endif // UAVOBJECTTREEMODEL_H
|
||||
|
Loading…
Reference in New Issue
Block a user