Skip to content

Commit a02bea9

Browse files
committed
LP-567 simplify highlight management
it is now the HighlightManager that will emit the highlight related signals TreeItem don't need to be QObjects anymore also fix crashes after changing display options and rebuilding the tree model
1 parent 3f7dcab commit a02bea9

10 files changed

Lines changed: 377 additions & 326 deletions

File tree

ground/gcs/src/plugins/uavobjectbrowser/fieldtreeitem.h

Lines changed: 28 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@
2929
#define FIELDTREEITEM_H
3030

3131
#include "treeitem.h"
32-
#include <QtCore/QStringList>
32+
33+
#include <QStringList>
3334
#include <QWidget>
3435
#include <QSpinBox>
3536
#include <QDoubleSpinBox>
3637
#include <qscispinbox/QScienceSpinBox.h>
3738
#include <QComboBox>
39+
3840
#include <limits>
3941

4042
#define QINT8MIN std::numeric_limits<qint8>::min()
@@ -49,15 +51,13 @@
4951
#define QUINT32MAX std::numeric_limits<qint32>::max()
5052

5153
class FieldTreeItem : public TreeItem {
52-
Q_OBJECT
5354
public:
5455

55-
FieldTreeItem(int index, const QList<QVariant> &data, UAVObjectField *field, TreeItem *parent = 0) :
56-
TreeItem(data, parent), m_index(index), m_field(field)
56+
FieldTreeItem(int index, const QList<QVariant> &data, UAVObjectField *field, TreeItem *parentItem) :
57+
TreeItem(data, parentItem), m_index(index), m_field(field)
5758
{}
58-
59-
FieldTreeItem(int index, const QVariant &data, UAVObjectField *field, TreeItem *parent = 0) :
60-
TreeItem(data, parent), m_index(index), m_field(field)
59+
FieldTreeItem(int index, const QVariant &data, UAVObjectField *field, TreeItem *parentItem) :
60+
TreeItem(data, parentItem), m_index(index), m_field(field)
6161
{}
6262

6363
bool isEditable() const
@@ -68,10 +68,6 @@ class FieldTreeItem : public TreeItem {
6868
virtual QWidget *createEditor(QWidget *parent) const = 0;
6969
virtual QVariant getEditorValue(QWidget *editor) const = 0;
7070
virtual void setEditorValue(QWidget *editor, QVariant value) const = 0;
71-
virtual bool isKnown() const
72-
{
73-
return parent()->isKnown();
74-
}
7571

7672
void setData(QVariant value, int column)
7773
{
@@ -93,7 +89,7 @@ class FieldTreeItem : public TreeItem {
9389
}
9490
}
9591
if (changed() || updated) {
96-
setHighlight(true);
92+
setHighlighted(true);
9793
}
9894
}
9995

@@ -112,14 +108,13 @@ class FieldTreeItem : public TreeItem {
112108
};
113109

114110
class EnumFieldTreeItem : public FieldTreeItem {
115-
Q_OBJECT
116111
public:
117-
EnumFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
118-
FieldTreeItem(index, data, field, parent), m_enumOptions(field->getOptions())
112+
EnumFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parentItem) :
113+
FieldTreeItem(index, data, field, parentItem), m_enumOptions(field->getOptions())
119114
{}
120115

121-
EnumFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
122-
FieldTreeItem(index, data, field, parent), m_enumOptions(field->getOptions())
116+
EnumFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parentItem) :
117+
FieldTreeItem(index, data, field, parentItem), m_enumOptions(field->getOptions())
123118
{}
124119

125120
QString enumOptions(int index)
@@ -178,16 +173,14 @@ class EnumFieldTreeItem : public FieldTreeItem {
178173
};
179174

180175
class IntFieldTreeItem : public FieldTreeItem {
181-
Q_OBJECT
182176
public:
183-
IntFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
184-
FieldTreeItem(index, data, field, parent)
177+
IntFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parentItem) :
178+
FieldTreeItem(index, data, field, parentItem)
185179
{
186180
setMinMaxValues();
187181
}
188-
189-
IntFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
190-
FieldTreeItem(index, data, field, parent)
182+
IntFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parentItem) :
183+
FieldTreeItem(index, data, field, parentItem)
191184
{
192185
setMinMaxValues();
193186
}
@@ -265,13 +258,12 @@ class IntFieldTreeItem : public FieldTreeItem {
265258
};
266259

267260
class FloatFieldTreeItem : public FieldTreeItem {
268-
Q_OBJECT
269261
public:
270-
FloatFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, bool scientific = false, TreeItem *parent = 0) :
271-
FieldTreeItem(index, data, field, parent), m_useScientificNotation(scientific) {}
262+
FloatFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, bool scientific, TreeItem *parentItem) :
263+
FieldTreeItem(index, data, field, parentItem), m_useScientificNotation(scientific) {}
272264

273-
FloatFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, bool scientific = false, TreeItem *parent = 0) :
274-
FieldTreeItem(index, data, field, parent), m_useScientificNotation(scientific) {}
265+
FloatFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, bool scientific, TreeItem *parentItem) :
266+
FieldTreeItem(index, data, field, parentItem), m_useScientificNotation(scientific) {}
275267

276268
QVariant fieldToData() const
277269
{
@@ -329,14 +321,13 @@ class FloatFieldTreeItem : public FieldTreeItem {
329321
};
330322

331323
class HexFieldTreeItem : public FieldTreeItem {
332-
Q_OBJECT
333324
public:
334-
HexFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
335-
FieldTreeItem(index, data, field, parent)
325+
HexFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parentItem) :
326+
FieldTreeItem(index, data, field, parentItem)
336327
{}
337328

338-
HexFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
339-
FieldTreeItem(index, data, field, parent)
329+
HexFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parentItem) :
330+
FieldTreeItem(index, data, field, parentItem)
340331
{}
341332

342333
QVariant fieldToData() const
@@ -390,14 +381,13 @@ class HexFieldTreeItem : public FieldTreeItem {
390381
};
391382

392383
class CharFieldTreeItem : public FieldTreeItem {
393-
Q_OBJECT
394384
public:
395-
CharFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parent = 0) :
396-
FieldTreeItem(index, data, field, parent)
385+
CharFieldTreeItem(UAVObjectField *field, int index, const QList<QVariant> &data, TreeItem *parentItem) :
386+
FieldTreeItem(index, data, field, parentItem)
397387
{}
398388

399-
CharFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parent = 0) :
400-
FieldTreeItem(index, data, field, parent)
389+
CharFieldTreeItem(UAVObjectField *field, int index, const QVariant &data, TreeItem *parentItem) :
390+
FieldTreeItem(index, data, field, parentItem)
401391
{}
402392

403393
QVariant fieldToData() const

0 commit comments

Comments
 (0)