#ifndef WSJTX_MESSAGE_AGGREGATOR_MAIN_WINDOW_MODEL_HPP__ #define WSJTX_MESSAGE_AGGREGATOR_MAIN_WINDOW_MODEL_HPP__ #include #include #include #include "MessageServer.hpp" class QDateTime; class QStandardItemModel; class QMenu; class DecodesModel; class BeaconsModel; class QLineEdit; class QTableView; class ClientWidget; using Frequency = MessageServer::Frequency; class MessageAggregatorMainWindow : public QMainWindow { Q_OBJECT; public: MessageAggregatorMainWindow (); Q_SLOT void log_qso (QString const& /*id*/, QDateTime time, QString const& dx_call, QString const& dx_grid , Frequency dial_frequency, QString const& mode, QString const& report_sent , QString const& report_received, QString const& tx_power, QString const& comments , QString const& name); private: void add_client (QString const& id); void remove_client (QString const& id); QStandardItemModel * log_; QMenu * view_menu_; DecodesModel * decodes_model_; BeaconsModel * beacons_model_; MessageServer * server_; QLineEdit * multicast_group_line_edit_; QTableView * log_table_view_; // maps client id to widgets using ClientsDictionary = QHash; ClientsDictionary dock_widgets_; }; #endif