Move DiveList related methods/classes to own file.

The DiveList classes were a partial mess (and some of it is still in a
messy state). The classes that deal with it where done in 'qtHelpers.h',
the extern global variable in dive.h, a few methods here and there. This
concentrates most - but not all - functions in their own file. The reason
for that is to make the new developer faster when looking for things: if
it's a divecomputer related method, it should be in a single file, not
scattered around.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-05-12 13:53:26 -03:00 committed by Dirk Hohndel
parent 2b06e4be67
commit 6ab05563b3
10 changed files with 232 additions and 211 deletions

38
divecomputer.h Normal file
View file

@ -0,0 +1,38 @@
#ifndef DIVECOMPUTER_H
#define DIVECOMPUTER_H
#include <QString>
#include <QMap>
#include <stdint.h>
class DiveComputerNode {
public:
DiveComputerNode(QString m, uint32_t d, QString s, QString f, QString n)
: model(m), deviceId(d), serialNumber(s), firmware(f), nickName(n) {};
bool operator==(const DiveComputerNode &a) const;
bool operator!=(const DiveComputerNode &a) const;
bool changesValues(const DiveComputerNode &b) const;
QString model;
uint32_t deviceId;
QString serialNumber;
QString firmware;
QString nickName;
};
class DiveComputerList {
public:
DiveComputerList();
~DiveComputerList();
const DiveComputerNode *getExact(const QString& m, uint32_t d);
const DiveComputerNode *get(const QString& m);
void addDC(const QString& m, uint32_t d,const QString& n = QString(),const QString& s = QString(), const QString& f = QString());
void rmDC(const QString& m, uint32_t d);
DiveComputerNode matchDC(const QString& m, uint32_t d);
DiveComputerNode matchModel(const QString& m);
QMultiMap<QString, DiveComputerNode> dcMap;
QMultiMap<QString, DiveComputerNode> dcWorkingMap;
};
extern DiveComputerList dcList;
#endif