js8call/logbook/adif.h

64 lines
1.8 KiB
C
Raw Normal View History

2018-02-08 21:28:33 -05:00
/*
* Reads an ADIF log file into memory
* Searches log for call, band and mode
* VK3ACF July 2013
*/
#ifndef __ADIF_H
#define __ADIF_H
#if defined (QT5)
#include <QList>
#include <QString>
#include <QStringList>
2018-02-08 21:28:33 -05:00
#include <QMultiHash>
2019-06-05 11:33:21 -04:00
#include <QVariant>
2018-02-08 21:28:33 -05:00
#else
#include <QtGui>
#endif
class QDateTime;
extern const QStringList ADIF_FIELDS;
2018-02-08 21:28:33 -05:00
class ADIF
{
public:
struct QSO;
2018-02-08 21:28:33 -05:00
void init(QString const& filename);
void load();
void add(QString const& call, QString const& band, QString const& mode, const QString &submode, QString const& date, const QString &name, const QString &comment);
2018-11-30 17:02:14 -05:00
bool match(QString const& call, QString const& band) const;
QList<ADIF::QSO> find(QString const& call) const;
2018-02-08 21:28:33 -05:00
QList<QString> getCallList() const;
int getCount() const;
// open ADIF file and append the QSO details. Return true on success
2018-03-05 14:49:51 -05:00
bool addQSOToFile(QByteArray const& ADIF_record);
2018-02-08 21:28:33 -05:00
QByteArray QSOToADIF(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& submode, QString const& rptSent
, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff
, QString const& band, QString const& comments, QString const& name
, QString const& strDialFreq, QString const& m_myCall, QString const& m_myGrid
2019-06-05 11:33:21 -04:00
, QString const& operator_call, const QMap<QString, QVariant> &additionalFields);
2018-03-05 14:49:51 -05:00
struct QSO
{
QString call,band,mode,submode,date,name,comment;
};
2018-02-08 21:28:33 -05:00
private:
2018-02-08 21:28:33 -05:00
QMultiHash<QString, QSO> _data;
QString _filename;
QString extractField(QString const& line, QString const& fieldName) const;
};
#endif