#ifndef WSJTX_UDP_DECODES_MODEL_HPP__ #define WSJTX_UDP_DECODES_MODEL_HPP__ #include #include "MessageServer.hpp" class QTime; class QString; class QModelIndex; // // Decodes Model - simple data model for all decodes // // The model is a basic table with uniform row format. Rows consist of // QStandardItem instances containing the string representation of the // column data and if the underlying field is not a string then the // UserRole+1 role contains the underlying data item. // // Three slots are provided to add a new decode, remove all decodes // for a client and, to build a reply to CQ message for a given row // which is emitted as a signal respectively. // class DecodesModel : public QStandardItemModel { Q_OBJECT; using ClientKey = MessageServer::ClientKey; public: explicit DecodesModel (QObject * parent = nullptr); Q_SLOT void add_decode (bool is_new, ClientKey const&, QTime, qint32 snr, float delta_time , quint32 delta_frequency, QString const& mode, QString const& message , bool low_confidence, bool off_air, bool is_fast); Q_SLOT void decodes_cleared (ClientKey const&); Q_SLOT void do_reply (QModelIndex const& source, quint8 modifiers); Q_SIGNAL void reply (ClientKey const&, QTime, qint32 snr, float delta_time, quint32 delta_frequency , QString const& mode, QString const& message, bool low_confidence, quint8 modifiers); }; #endif