WSJT-X/UDPExamples/MessageAggregatorMainWindow.hpp
Bill Somerville dfe037423f New incoming UDP message to allow external applications to highlight decoded callsigns
UDP  servers can  request that  WSJT-X clients  highlight a  specified
callsign  in  the  Band  Activity  decodes  window.  Either  the  last
occurrence of the  callsign may be highlighted or all  past and future
occurrences can be  highlighted. The latter case  WSJT-X will remember
the  callsign  and  requested  highlighting  options  so  that  future
occurrences can be correctly highlighted.

Either or  both of the text  background color and the  text foreground
color may  be specified. A further  UDP message may be  sent to change
the  persistent color  highlighting  for a  given callsign,  including
reseting persistent highlighting by passing an invalid color value.

Thanks to Alex, VE3NEA, for this contribution.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8589 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-03-28 22:25:46 +00:00

63 lines
1.9 KiB
C++

#ifndef WSJTX_MESSAGE_AGGREGATOR_MAIN_WINDOW_MODEL_HPP__
#define WSJTX_MESSAGE_AGGREGATOR_MAIN_WINDOW_MODEL_HPP__
#include <QMainWindow>
#include <QHash>
#include <QString>
#include "MessageServer.hpp"
class QDateTime;
class QStandardItemModel;
class QMenu;
class DecodesModel;
class BeaconsModel;
class QLineEdit;
class QTableView;
class ClientWidget;
class QListWidget;
using Frequency = MessageServer::Frequency;
class MessageAggregatorMainWindow
: public QMainWindow
{
Q_OBJECT;
public:
MessageAggregatorMainWindow ();
~MessageAggregatorMainWindow ();
Q_SLOT void log_qso (QString const& /*id*/, QDateTime time_off, 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, QDateTime time_on, QString const& operator_call
, QString const& my_call, QString const& my_grid);
private:
void add_client (QString const& id, QString const& version, QString const& revision);
void remove_client (QString const& id);
void change_highlighting (QString const& call, QColor const& bg = QColor {}, QColor const& fg = QColor {},
bool last_only = false);
// maps client id to widgets
using ClientsDictionary = QHash<QString, ClientWidget *>;
ClientsDictionary dock_widgets_;
QStandardItemModel * log_;
QMenu * view_menu_;
DecodesModel * decodes_model_;
BeaconsModel * beacons_model_;
MessageServer * server_;
QLineEdit * multicast_group_line_edit_;
QTableView * log_table_view_;
QListWidget * calls_of_interest_;
QAction * add_call_of_interest_action_;
QAction * delete_call_of_interest_action_;
QAction * last_call_of_interest_action_;
QAction * call_of_interest_bg_colour_action_;
QAction * call_of_interest_fg_colour_action_;
};
#endif