WSJT-X/models/CabrilloLog.hpp

50 lines
1.1 KiB
C++
Raw Normal View History

2018-11-11 21:11:58 -05:00
#ifndef CABRILLO_LOG_HPP_
#define CABRILLO_LOG_HPP_
#include <QObject>
#include <QSet>
#include <QPair>
#include <QString>
2018-11-11 21:11:58 -05:00
#include "Radio.hpp"
#include "pimpl_h.hpp"
class Configuration;
class QDateTime;
class QSqlTableModel;
2018-11-11 21:11:58 -05:00
class QTextStream;
class AD1CCty;
2018-11-11 21:11:58 -05:00
class CabrilloLog final
: public QObject
2018-11-11 21:11:58 -05:00
{
Q_OBJECT
2018-11-11 21:11:58 -05:00
public:
using Frequency = Radio::Frequency;
using worked_item = QPair<QString, QString>;
using worked_set = QSet<worked_item>;
2018-11-11 21:11:58 -05:00
explicit CabrilloLog (Configuration const *, QObject * parent = nullptr);
2018-11-11 21:11:58 -05:00
~CabrilloLog ();
// returns false if insert fails
bool add_QSO (Frequency, QString const& mode, QDateTime const&, QString const& call
2018-11-11 21:11:58 -05:00
, QString const& report_sent, QString const& report_received);
bool dupe (Frequency, QString const& call) const;
int n_qso();
2018-11-11 21:11:58 -05:00
QSqlTableModel * model ();
2018-11-11 21:11:58 -05:00
void reset ();
void export_qsos (QTextStream&) const;
worked_set unique_DXCC_entities (AD1CCty const *) const;
Q_SIGNAL void data_changed () const;
Q_SIGNAL void qso_count_changed (int) const;
2018-11-11 21:11:58 -05:00
private:
class impl;
pimpl<impl> m_;
};
#endif