improved marker data capsulation
This commit is contained in:
parent
bd7fbfda2f
commit
b5cd6e0072
@ -1,11 +1,11 @@
|
|||||||
#include "tracemarker.h"
|
#include "tracemarker.h"
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
|
||||||
TraceMarker::TraceMarker()
|
TraceMarker::TraceMarker(int number)
|
||||||
: editingFrequeny(false),
|
: editingFrequeny(false),
|
||||||
parentTrace(nullptr),
|
parentTrace(nullptr),
|
||||||
frequency(1000000000),
|
frequency(1000000000),
|
||||||
number(1),
|
number(number),
|
||||||
data(0)
|
data(0)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -101,6 +101,11 @@ void TraceMarker::constrainFrequency()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Trace *TraceMarker::getTrace() const
|
||||||
|
{
|
||||||
|
return parentTrace;
|
||||||
|
}
|
||||||
|
|
||||||
int TraceMarker::getNumber() const
|
int TraceMarker::getNumber() const
|
||||||
{
|
{
|
||||||
return number;
|
return number;
|
||||||
|
@ -7,10 +7,9 @@
|
|||||||
|
|
||||||
class TraceMarker : public QObject
|
class TraceMarker : public QObject
|
||||||
{
|
{
|
||||||
friend class TraceMarkerModel;
|
|
||||||
Q_OBJECT;
|
Q_OBJECT;
|
||||||
public:
|
public:
|
||||||
TraceMarker();
|
TraceMarker(int number = 1);
|
||||||
~TraceMarker();
|
~TraceMarker();
|
||||||
void assignTrace(Trace *t);
|
void assignTrace(Trace *t);
|
||||||
Trace* trace();
|
Trace* trace();
|
||||||
@ -23,6 +22,8 @@ public:
|
|||||||
|
|
||||||
int getNumber() const;
|
int getNumber() const;
|
||||||
bool editingFrequeny;
|
bool editingFrequeny;
|
||||||
|
Trace *getTrace() const;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setFrequency(double freq);
|
void setFrequency(double freq);
|
||||||
signals:
|
signals:
|
||||||
|
@ -19,15 +19,14 @@ TraceMarker *TraceMarkerModel::createDefaultMarker()
|
|||||||
number++;
|
number++;
|
||||||
used = false;
|
used = false;
|
||||||
for(auto m : markers) {
|
for(auto m : markers) {
|
||||||
if(m->number == number) {
|
if(m->getNumber() == number) {
|
||||||
used = true;
|
used = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (used);
|
} while (used);
|
||||||
auto marker = new TraceMarker();
|
auto marker = new TraceMarker(number);
|
||||||
marker->number = number;
|
marker->setFrequency(2150000000);
|
||||||
marker->frequency = 2150000000;
|
|
||||||
marker->assignTrace(model.trace(0));
|
marker->assignTrace(model.trace(0));
|
||||||
return marker;
|
return marker;
|
||||||
}
|
}
|
||||||
@ -95,19 +94,19 @@ QVariant TraceMarkerModel::data(const QModelIndex &index, int role) const
|
|||||||
switch(index.column()) {
|
switch(index.column()) {
|
||||||
case ColIndexNumber:
|
case ColIndexNumber:
|
||||||
switch(role) {
|
switch(role) {
|
||||||
case Qt::DisplayRole: return QVariant((unsigned int)marker->number); break;
|
case Qt::DisplayRole: return QVariant((unsigned int)marker->getNumber()); break;
|
||||||
}
|
}
|
||||||
case ColIndexTrace:
|
case ColIndexTrace:
|
||||||
switch(role) {
|
switch(role) {
|
||||||
case Qt::DisplayRole:
|
case Qt::DisplayRole:
|
||||||
if(marker->parentTrace) {
|
if(marker->getTrace()) {
|
||||||
return marker->parentTrace->name();
|
return marker->getTrace()->name();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ColIndexFreq:
|
case ColIndexFreq:
|
||||||
switch(role) {
|
switch(role) {
|
||||||
case Qt::DisplayRole: return Unit::ToString(marker->frequency, "Hz", " kMG", 6); break;
|
case Qt::DisplayRole: return Unit::ToString(marker->getFrequency(), "Hz", " kMG", 6); break;
|
||||||
}
|
}
|
||||||
case ColIndexData:
|
case ColIndexData:
|
||||||
switch(role) {
|
switch(role) {
|
||||||
@ -140,16 +139,6 @@ bool TraceMarkerModel::setData(const QModelIndex &index, const QVariant &value,
|
|||||||
}
|
}
|
||||||
auto m = markers[index.row()];
|
auto m = markers[index.row()];
|
||||||
switch(index.column()) {
|
switch(index.column()) {
|
||||||
case ColIndexNumber: {
|
|
||||||
bool convertOk;
|
|
||||||
unsigned int number;
|
|
||||||
number = value.toUInt(&convertOk);
|
|
||||||
if(convertOk) {
|
|
||||||
m->number = number;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case ColIndexTrace: {
|
case ColIndexTrace: {
|
||||||
auto trace = qvariant_cast<Trace*>(value);
|
auto trace = qvariant_cast<Trace*>(value);
|
||||||
m->assignTrace(trace);
|
m->assignTrace(trace);
|
||||||
@ -171,7 +160,7 @@ Qt::ItemFlags TraceMarkerModel::flags(const QModelIndex &index) const
|
|||||||
{
|
{
|
||||||
int flags = Qt::NoItemFlags;
|
int flags = Qt::NoItemFlags;
|
||||||
switch(index.column()) {
|
switch(index.column()) {
|
||||||
case ColIndexNumber: flags |= Qt::ItemIsEnabled | Qt::ItemIsEditable; break;
|
case ColIndexNumber: flags |= Qt::ItemIsEnabled; break;
|
||||||
case ColIndexTrace: flags |= Qt::ItemIsEnabled | Qt::ItemIsEditable; break;
|
case ColIndexTrace: flags |= Qt::ItemIsEnabled | Qt::ItemIsEditable; break;
|
||||||
case ColIndexFreq: flags |= Qt::ItemIsEnabled | Qt::ItemIsEditable; break;
|
case ColIndexFreq: flags |= Qt::ItemIsEnabled | Qt::ItemIsEditable; break;
|
||||||
case ColIndexData: flags |= Qt::ItemIsEnabled; break;
|
case ColIndexData: flags |= Qt::ItemIsEnabled; break;
|
||||||
@ -188,7 +177,7 @@ std::vector<TraceMarker *> TraceMarkerModel::getMarker(Trace *t)
|
|||||||
{
|
{
|
||||||
std::vector<TraceMarker*> attachedMarkers;
|
std::vector<TraceMarker*> attachedMarkers;
|
||||||
for(auto m : markers) {
|
for(auto m : markers) {
|
||||||
if(m->parentTrace == t) {
|
if(m->getTrace() == t) {
|
||||||
attachedMarkers.push_back(m);
|
attachedMarkers.push_back(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user