1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-05-31 07:13:02 +02:00

Refactoring

This commit is contained in:
Martin Tůma 2025-04-29 09:08:55 +02:00
parent eb81ee9aaa
commit ba50e67380
4 changed files with 21 additions and 18 deletions

View File

@ -298,11 +298,11 @@ bool ISO8211::readRecord(Record &record)
return true;
}
const ISO8211::Field *ISO8211::field(const Record &record, quint32 name)
const ISO8211::Field *ISO8211::Record::field(quint32 name) const
{
for (int i = 0; i < record.size(); i++)
if (record.at(i).tag() == name)
return &record.at(i);
for (int i = 0; i < size(); i++)
if (at(i).tag() == name)
return &at(i);
return 0;
}

View File

@ -26,14 +26,17 @@ public:
Data _data;
};
typedef QVector<Field> Record;
class Record : public QVector<Field>
{
public:
const Field *field(quint32 name) const;
};
ISO8211(const QString &path) : _file(path) {}
bool readDDR();
bool readRecord(Record &record);
const QString &errorString() const {return _errorString;}
static const Field *field(const Record &record, quint32 name);
static constexpr quint32 NAME(const char str[4])
{
return static_cast<quint32>(str[0])

View File

@ -151,9 +151,9 @@ static const ISO8211::Field *SGXD(const ISO8211::Record &r)
{
const ISO8211::Field *f;
if ((f = ISO8211::field(r, SG2D)))
if ((f = r.field(SG2D)))
return f;
else if ((f = ISO8211::field(r, SG3D)))
else if ((f = r.field(SG3D)))
return f;
else
return 0;
@ -495,7 +495,7 @@ QVector<MapData::Sounding> MapData::soundings(const ISO8211::Record &r,
uint comf, uint somf)
{
QVector<Sounding> s;
const ISO8211::Field *f = ISO8211::field(r, SG3D);
const ISO8211::Field *f = r.field(SG3D);
if (!f)
return QVector<Sounding>();
@ -517,7 +517,7 @@ QVector<MapData::Sounding> MapData::soundingGeometry(const ISO8211::Record &r,
quint32 id;
RecordMapIterator it;
const ISO8211::Field *fspt = ISO8211::field(r, FSPT);
const ISO8211::Field *fspt = r.field(FSPT);
if (!fspt || fspt->data().at(0).size() != 4)
return QVector<Sounding>();
@ -545,7 +545,7 @@ Coordinates MapData::pointGeometry(const ISO8211::Record &r,
quint32 id;
RecordMapIterator it;
const ISO8211::Field *fspt = ISO8211::field(r, FSPT);
const ISO8211::Field *fspt = r.field(FSPT);
if (!fspt || fspt->data().at(0).size() != 4)
return Coordinates();
@ -575,7 +575,7 @@ QVector<Coordinates> MapData::lineGeometry(const ISO8211::Record &r,
quint8 type;
quint32 id;
const ISO8211::Field *fspt = ISO8211::field(r, FSPT);
const ISO8211::Field *fspt = r.field(FSPT);
if (!fspt || fspt->data().at(0).size() != 4)
return QVector<Coordinates>();
@ -588,7 +588,7 @@ QVector<Coordinates> MapData::lineGeometry(const ISO8211::Record &r,
if (it == ve.constEnd())
return QVector<Coordinates>();
const ISO8211::Record &frid = it.value();
const ISO8211::Field *vrpt = ISO8211::field(frid, VRPT);
const ISO8211::Field *vrpt = frid.field(VRPT);
if (!vrpt || vrpt->data().size() != 2)
return QVector<Coordinates>();
@ -641,7 +641,7 @@ Polygon MapData::polyGeometry(const ISO8211::Record &r, const RecordMap &vc,
quint8 type;
quint32 id;
const ISO8211::Field *fspt = ISO8211::field(r, FSPT);
const ISO8211::Field *fspt = r.field(FSPT);
if (!fspt || fspt->data().at(0).size() != 4)
return Polygon();
@ -660,7 +660,7 @@ Polygon MapData::polyGeometry(const ISO8211::Record &r, const RecordMap &vc,
if (it == ve.constEnd())
return Polygon();
const ISO8211::Record &frid = it.value();
const ISO8211::Field *vrpt = ISO8211::field(frid, VRPT);
const ISO8211::Field *vrpt = frid.field(VRPT);
if (!vrpt || vrpt->data().size() != 2)
return Polygon();
@ -723,7 +723,7 @@ MapData::Attributes MapData::attributes(const ISO8211::Record &r)
{
Attributes attr;
const ISO8211::Field *attf = ISO8211::field(r, ATTF);
const ISO8211::Field *attf = r.field(ATTF);
if (!(attf && attf->data().at(0).size() == 2))
return attr;

View File

@ -63,9 +63,9 @@ static const ISO8211::Field *SGXD(const ISO8211::Record &r)
{
const ISO8211::Field *f;
if ((f = ISO8211::field(r, SG2D)))
if ((f = r.field(SG2D)))
return f;
else if ((f = ISO8211::field(r, SG3D)))
else if ((f = r.field(SG3D)))
return f;
else
return 0;