Operator field for DXpeditions and other Multi-Op events.

Operator callsign is sent to DIF log if not empty.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8267 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2017-11-29 19:43:27 +00:00
parent 57180ff9ba
commit 8b1ec72b1f
13 changed files with 387 additions and 308 deletions

View File

@ -564,6 +564,7 @@ private:
bool bHound_; bool bHound_;
bool x2ToneSpacing_; bool x2ToneSpacing_;
bool realTimeDecode_; bool realTimeDecode_;
QString opCall_;
QString udp_server_name_; QString udp_server_name_;
port_type udp_server_port_; port_type udp_server_port_;
bool accept_udp_requests_; bool accept_udp_requests_;
@ -657,6 +658,7 @@ bool Configuration::bHound() const {return m_->bHound_;}
bool Configuration::x2ToneSpacing() const {return m_->x2ToneSpacing_;} bool Configuration::x2ToneSpacing() const {return m_->x2ToneSpacing_;}
bool Configuration::realTimeDecode() const {return m_->realTimeDecode_;} bool Configuration::realTimeDecode() const {return m_->realTimeDecode_;}
bool Configuration::split_mode () const {return m_->split_mode ();} bool Configuration::split_mode () const {return m_->split_mode ();}
QString Configuration::opCall() const {return m_->opCall_;}
QString Configuration::udp_server_name () const {return m_->udp_server_name_;} QString Configuration::udp_server_name () const {return m_->udp_server_name_;}
auto Configuration::udp_server_port () const -> port_type {return m_->udp_server_port_;} auto Configuration::udp_server_port () const -> port_type {return m_->udp_server_port_;}
bool Configuration::accept_udp_requests () const {return m_->accept_udp_requests_;} bool Configuration::accept_udp_requests () const {return m_->accept_udp_requests_;}
@ -1139,6 +1141,7 @@ void Configuration::impl::initialize_models ()
} }
ui_->TX_audio_source_button_group->button (rig_params_.audio_source)->setChecked (true); ui_->TX_audio_source_button_group->button (rig_params_.audio_source)->setChecked (true);
ui_->CAT_poll_interval_spin_box->setValue (rig_params_.poll_interval); ui_->CAT_poll_interval_spin_box->setValue (rig_params_.poll_interval);
ui_->opCallEntry->setText (opCall_);
ui_->udp_server_line_edit->setText (udp_server_name_); ui_->udp_server_line_edit->setText (udp_server_name_);
ui_->udp_server_port_spin_box->setValue (udp_server_port_); ui_->udp_server_port_spin_box->setValue (udp_server_port_);
ui_->accept_udp_requests_check_box->setChecked (accept_udp_requests_); ui_->accept_udp_requests_check_box->setChecked (accept_udp_requests_);
@ -1344,6 +1347,7 @@ void Configuration::impl::read_settings ()
realTimeDecode_ = settings_->value("RealTimeDecode",false).toBool (); realTimeDecode_ = settings_->value("RealTimeDecode",false).toBool ();
rig_params_.poll_interval = settings_->value ("Polling", 0).toInt (); rig_params_.poll_interval = settings_->value ("Polling", 0).toInt ();
rig_params_.split_mode = settings_->value ("SplitMode", QVariant::fromValue (TransceiverFactory::split_mode_none)).value<TransceiverFactory::SplitMode> (); rig_params_.split_mode = settings_->value ("SplitMode", QVariant::fromValue (TransceiverFactory::split_mode_none)).value<TransceiverFactory::SplitMode> ();
opCall_ = settings_->value ("OpCall", "").toString ();
udp_server_name_ = settings_->value ("UDPServer", "127.0.0.1").toString (); udp_server_name_ = settings_->value ("UDPServer", "127.0.0.1").toString ();
udp_server_port_ = settings_->value ("UDPServerPort", 2237).toUInt (); udp_server_port_ = settings_->value ("UDPServerPort", 2237).toUInt ();
accept_udp_requests_ = settings_->value ("AcceptUDPRequests", false).toBool (); accept_udp_requests_ = settings_->value ("AcceptUDPRequests", false).toBool ();
@ -1442,6 +1446,7 @@ void Configuration::impl::write_settings ()
settings_->setValue ("Hound", bHound_); settings_->setValue ("Hound", bHound_);
settings_->setValue ("x2ToneSpacing", x2ToneSpacing_); settings_->setValue ("x2ToneSpacing", x2ToneSpacing_);
settings_->setValue ("RealTimeDecode", realTimeDecode_); settings_->setValue ("RealTimeDecode", realTimeDecode_);
settings_->setValue ("OpCall", opCall_);
settings_->setValue ("UDPServer", udp_server_name_); settings_->setValue ("UDPServer", udp_server_name_);
settings_->setValue ("UDPServerPort", udp_server_port_); settings_->setValue ("UDPServerPort", udp_server_port_);
settings_->setValue ("AcceptUDPRequests", accept_udp_requests_); settings_->setValue ("AcceptUDPRequests", accept_udp_requests_);
@ -1843,6 +1848,7 @@ void Configuration::impl::accept ()
calibration_.slope_ppm = ui_->calibration_slope_ppm_spin_box->value (); calibration_.slope_ppm = ui_->calibration_slope_ppm_spin_box->value ();
pwrBandTxMemory_ = ui_->checkBoxPwrBandTxMemory->isChecked (); pwrBandTxMemory_ = ui_->checkBoxPwrBandTxMemory->isChecked ();
pwrBandTuneMemory_ = ui_->checkBoxPwrBandTuneMemory->isChecked (); pwrBandTuneMemory_ = ui_->checkBoxPwrBandTuneMemory->isChecked ();
opCall_=ui_->opCallEntry->text();
auto new_server = ui_->udp_server_line_edit->text (); auto new_server = ui_->udp_server_line_edit->text ();
if (new_server != udp_server_name_) if (new_server != udp_server_name_)
{ {

View File

@ -136,6 +136,7 @@ public:
bool NN() const; bool NN() const;
bool EMEonly() const; bool EMEonly() const;
bool post_decodes () const; bool post_decodes () const;
QString opCall() const;
QString udp_server_name () const; QString udp_server_name () const;
port_type udp_server_port () const; port_type udp_server_port () const;
bool accept_udp_requests () const; bool accept_udp_requests () const;

View File

@ -1618,50 +1618,77 @@ QListView::item:hover {
<property name="title"> <property name="title">
<string>Logging</string> <string>Logging</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_8"> <layout class="QVBoxLayout" name="verticalLayout_7">
<item> <item>
<widget class="QCheckBox" name="prompt_to_log_check_box"> <layout class="QGridLayout" name="gridLayout_14">
<property name="toolTip"> <item row="0" column="0">
<string>The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message.</string> <widget class="QCheckBox" name="prompt_to_log_check_box">
</property> <property name="toolTip">
<property name="text"> <string>The program will pop up a partially completed Log QSO dialog when you send a 73 or free text message.</string>
<string>Promp&amp;t me to log QSO</string> </property>
</property> <property name="text">
</widget> <string>Promp&amp;t me to log QSO</string>
</item> </property>
<item> </widget>
<widget class="QCheckBox" name="log_as_RTTY_check_box"> </item>
<property name="toolTip"> <item row="0" column="1">
<string>Some logging programs will not accept JT-65 or JT9 as a recognized mode.</string> <spacer name="horizontalSpacer_6">
</property> <property name="orientation">
<property name="text"> <enum>Qt::Horizontal</enum>
<string>Con&amp;vert mode to RTTY</string> </property>
</property> <property name="sizeHint" stdset="0">
</widget> <size>
</item> <width>40</width>
<item> <height>20</height>
<widget class="QCheckBox" name="report_in_comments_check_box"> </size>
<property name="toolTip"> </property>
<string>Some logging programs will not accept the type of reports </spacer>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Op Call:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLineEdit" name="opCallEntry"/>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="log_as_RTTY_check_box">
<property name="toolTip">
<string>Some logging programs will not accept JT-65 or JT9 as a recognized mode.</string>
</property>
<property name="text">
<string>Con&amp;vert mode to RTTY</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="report_in_comments_check_box">
<property name="toolTip">
<string>Some logging programs will not accept the type of reports
saved by this program. saved by this program.
Check this option to save the sent and received reports in the Check this option to save the sent and received reports in the
comments field.</string> comments field.</string>
</property> </property>
<property name="text"> <property name="text">
<string>d&amp;B reports to comments</string> <string>d&amp;B reports to comments</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="clear_DX_check_box"> <widget class="QCheckBox" name="clear_DX_check_box">
<property name="toolTip"> <property name="toolTip">
<string>Check this option to force the clearing of the DX Call <string>Check this option to force the clearing of the DX Call
and DX Grid fields when a 73 or free text message is sent.</string> and DX Grid fields when a 73 or free text message is sent.</string>
</property> </property>
<property name="text"> <property name="text">
<string>Clear &amp;DX call and grid after logging</string> <string>Clear &amp;DX call and grid after logging</string>
</property> </property>
</widget> </widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</widget> </widget>
@ -2662,11 +2689,11 @@ soundcard changes</string>
</connections> </connections>
<buttongroups> <buttongroups>
<buttongroup name="CAT_handshake_button_group"/> <buttongroup name="CAT_handshake_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/>
<buttongroup name="TX_audio_source_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="PTT_method_button_group"/> <buttongroup name="PTT_method_button_group"/>
<buttongroup name="CAT_data_bits_button_group"/> <buttongroup name="CAT_data_bits_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/>
<buttongroup name="TX_audio_source_button_group"/>
<buttongroup name="TX_mode_button_group"/> <buttongroup name="TX_mode_button_group"/>
<buttongroup name="split_mode_button_group"/>
</buttongroups> </buttongroups>
</ui> </ui>

View File

@ -410,7 +410,7 @@ void MessageClient::clear_decodes ()
void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QString const& dx_grid void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QString const& dx_grid
, Frequency dial_frequency, QString const& mode, QString const& report_sent , Frequency dial_frequency, QString const& mode, QString const& report_sent
, QString const& report_received, QString const& tx_power , QString const& report_received, QString const& tx_power
, QString const& comments, QString const& name, QDateTime time_on) , QString const& comments, QString const& name, QDateTime time_on, QString const& operator_call)
{ {
if (m_->server_port_ && !m_->server_string_.isEmpty ()) if (m_->server_port_ && !m_->server_string_.isEmpty ())
{ {
@ -418,7 +418,7 @@ void MessageClient::qso_logged (QDateTime time_off, QString const& dx_call, QStr
NetworkMessage::Builder out {&message, NetworkMessage::QSOLogged, m_->id_, m_->schema_}; NetworkMessage::Builder out {&message, NetworkMessage::QSOLogged, m_->id_, m_->schema_};
out << time_off << dx_call.toUtf8 () << dx_grid.toUtf8 () << dial_frequency << mode.toUtf8 () out << time_off << dx_call.toUtf8 () << dx_grid.toUtf8 () << dial_frequency << mode.toUtf8 ()
<< report_sent.toUtf8 () << report_received.toUtf8 () << tx_power.toUtf8 () << comments.toUtf8 () << report_sent.toUtf8 () << report_received.toUtf8 () << tx_power.toUtf8 () << comments.toUtf8 ()
<< name.toUtf8 () << time_on; << name.toUtf8 () << time_on << operator_call;
m_->send_message (out, message); m_->send_message (out, message);
} }
} }

View File

@ -62,7 +62,7 @@ public:
Q_SLOT void qso_logged (QDateTime time_off, QString const& dx_call, QString const& dx_grid Q_SLOT void qso_logged (QDateTime time_off, QString const& dx_call, QString const& dx_grid
, Frequency dial_frequency, QString const& mode, QString const& report_sent , Frequency dial_frequency, QString const& mode, QString const& report_sent
, QString const& report_received, QString const& tx_power, QString const& comments , QString const& report_received, QString const& tx_power, QString const& comments
, QString const& name, QDateTime time_on); , QString const& name, QDateTime time_on, QString const& operator_call);
// this slot may be used to send arbitrary UDP datagrams to and // this slot may be used to send arbitrary UDP datagrams to and
// destination allowing the underlying socket to be used for general // destination allowing the underlying socket to be used for general

View File

@ -175,7 +175,7 @@ int ADIF::getCount() const
// open ADIF file and append the QSO details. Return true on success // open ADIF file and append the QSO details. Return true on success
bool ADIF::addQSOToFile(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, QString const& band, bool ADIF::addQSOToFile(QString const& hisCall, QString const& hisGrid, QString const& mode, 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, QString const& m_txPower) QString const& comments, QString const& name, QString const& strDialFreq, QString const& m_myCall, QString const& m_myGrid, QString const& m_txPower, QString const& operator_call)
{ {
QFile f2(_filename); QFile f2(_filename);
if (!f2.open(QIODevice::Text | QIODevice::Append)) if (!f2.open(QIODevice::Text | QIODevice::Append))
@ -208,6 +208,8 @@ bool ADIF::addQSOToFile(QString const& hisCall, QString const& hisGrid, QString
">" + comments; ">" + comments;
if(name!="") t+=" <name:" + QString::number(name.length()) + if(name!="") t+=" <name:" + QString::number(name.length()) +
">" + name; ">" + name;
if(operator_call!="") t+=" <operator:" + QString::number(operator_call.length()) +
">" + operator_call;
t+=" <eor>"; t+=" <eor>";
out << t << endl; out << t << endl;
f2.close(); f2.close();

View File

@ -30,7 +30,7 @@ class ADIF
// open ADIF file and append the QSO details. Return true on success // open ADIF file and append the QSO details. Return true on success
bool addQSOToFile(QString const& hisCall, QString const& hisGrid, QString const& mode, QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, QString const& band, bool addQSOToFile(QString const& hisCall, QString const& hisGrid, QString const& mode, 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, QString const& m_txPower); QString const& comments, QString const& name, QString const& strDialFreq, QString const& m_myCall, QString const& m_myGrid, QString const& m_txPower,QString const& operator_call);
private: private:
struct QSO struct QSO

View File

@ -56,7 +56,7 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString
QString const& rptSent, QString const& rptRcvd, QString const& rptSent, QString const& rptRcvd,
QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff,
Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid, Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid,
bool noSuffix, bool toRTTY, bool dBtoComments) bool noSuffix, bool toRTTY, bool dBtoComments, QString const& opCall)
{ {
if(!isHidden()) return; if(!isHidden()) return;
ui->call->setText(hisCall); ui->call->setText(hisCall);
@ -83,13 +83,13 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString
m_myCall=myCall; m_myCall=myCall;
m_myGrid=myGrid; m_myGrid=myGrid;
ui->band->setText (m_config->bands ()->find (dialFreq)); ui->band->setText (m_config->bands ()->find (dialFreq));
ui->loggedOperator->setText(opCall);
show (); show ();
} }
void LogQSO::accept() void LogQSO::accept()
{ {
QString hisCall,hisGrid,mode,rptSent,rptRcvd,dateOn,dateOff,timeOn,timeOff,band; QString hisCall,hisGrid,mode,rptSent,rptRcvd,dateOn,dateOff,timeOn,timeOff,band,operator_call;
QString comments,name; QString comments,name;
hisCall=ui->call->text(); hisCall=ui->call->text();
@ -105,13 +105,14 @@ void LogQSO::accept()
comments=ui->comments->text(); comments=ui->comments->text();
m_comments=comments; m_comments=comments;
QString strDialFreq(QString::number(m_dialFreq / 1.e6,'f',6)); QString strDialFreq(QString::number(m_dialFreq / 1.e6,'f',6));
operator_call = ui->loggedOperator->text();
//Log this QSO to ADIF file "wsjtx_log.adi" //Log this QSO to ADIF file "wsjtx_log.adi"
QString filename = "wsjtx_log.adi"; // TODO allow user to set QString filename = "wsjtx_log.adi"; // TODO allow user to set
ADIF adifile; ADIF adifile;
auto adifilePath = QDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}.absoluteFilePath ("wsjtx_log.adi"); auto adifilePath = QDir {QStandardPaths::writableLocation (QStandardPaths::DataLocation)}.absoluteFilePath ("wsjtx_log.adi");
adifile.init(adifilePath); adifile.init(adifilePath);
if (!adifile.addQSOToFile(hisCall,hisGrid,mode,rptSent,rptRcvd,m_dateTimeOn,m_dateTimeOff,band,comments,name,strDialFreq,m_myCall,m_myGrid,m_txPower)) // TODO add the operator to this
if (!adifile.addQSOToFile(hisCall,hisGrid,mode,rptSent,rptRcvd,m_dateTimeOn,m_dateTimeOff,band,comments,name,strDialFreq,m_myCall,m_myGrid,m_txPower, operator_call))
{ {
MessageBox::warning_message (this, tr ("Log file error"), MessageBox::warning_message (this, tr ("Log file error"),
tr ("Cannot open \"%1\"").arg (adifilePath)); tr ("Cannot open \"%1\"").arg (adifilePath));
@ -137,7 +138,7 @@ void LogQSO::accept()
} }
//Clean up and finish logging //Clean up and finish logging
Q_EMIT acceptQSO (m_dateTimeOff, hisCall, hisGrid, m_dialFreq, mode, rptSent, rptRcvd, m_txPower, comments, name,m_dateTimeOn); Q_EMIT acceptQSO (m_dateTimeOff, hisCall, hisGrid, m_dialFreq, mode, rptSent, rptRcvd, m_txPower, comments, name,m_dateTimeOn, operator_call);
QDialog::accept(); QDialog::accept();
} }

View File

@ -30,7 +30,7 @@ public:
QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn,
QDateTime const& dateTimeOff, QDateTime const& dateTimeOff,
Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid, Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid,
bool noSuffix, bool toRTTY, bool dBtoComments); bool noSuffix, bool toRTTY, bool dBtoComments, QString const& opCall);
public slots: public slots:
void accept(); void accept();
@ -40,7 +40,7 @@ signals:
, Radio::Frequency dial_freq, QString const& mode , Radio::Frequency dial_freq, QString const& mode
, QString const& rpt_sent, QString const& rpt_received , QString const& rpt_sent, QString const& rpt_received
, QString const& tx_power, QString const& comments , QString const& tx_power, QString const& comments
, QString const& name, QDateTime const& QSO_date_on); , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call);
protected: protected:
void hideEvent (QHideEvent *); void hideEvent (QHideEvent *);

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>374</width> <width>377</width>
<height>229</height> <height>257</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -351,6 +351,45 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="operatorLabel">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Operator</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="loggedOperator">
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item> <item>
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">

View File

@ -381,6 +381,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
ui->sbTR->values ({5, 10, 15, 30}); ui->sbTR->values ({5, 10, 15, 30});
m_baseCall = Radio::base_callsign (m_config.my_callsign ()); m_baseCall = Radio::base_callsign (m_config.my_callsign ());
m_opCall = m_config.opCall();
m_optimizingProgress.setWindowModality (Qt::WindowModal); m_optimizingProgress.setWindowModality (Qt::WindowModal);
m_optimizingProgress.setAutoReset (false); m_optimizingProgress.setAutoReset (false);
@ -1635,6 +1636,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
ui->actionInclude_averaging->setChecked(false); ui->actionInclude_averaging->setChecked(false);
ui->actionInclude_correlation->setChecked(false); ui->actionInclude_correlation->setChecked(false);
} }
m_opCall=m_config.opCall();
} }
} }
@ -4778,19 +4780,19 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button
m_logDlg->initLogQSO (m_hisCall, m_hisGrid, m_modeTx, m_rptSent, m_rptRcvd, m_logDlg->initLogQSO (m_hisCall, m_hisGrid, m_modeTx, m_rptSent, m_rptRcvd,
m_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(), m_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(),
m_config.my_callsign(), m_config.my_grid(), m_noSuffix, m_config.my_callsign(), m_config.my_grid(), m_noSuffix,
m_config.log_as_RTTY(), m_config.report_in_comments()); m_config.log_as_RTTY(), m_config.report_in_comments(), m_opCall);
} }
void MainWindow::acceptQSO2(QDateTime const& QSO_date_off, QString const& call, QString const& grid void MainWindow::acceptQSO2(QDateTime const& QSO_date_off, QString const& call, QString const& grid
, Frequency dial_freq, QString const& mode , Frequency dial_freq, QString const& mode
, QString const& rpt_sent, QString const& rpt_received , QString const& rpt_sent, QString const& rpt_received
, QString const& tx_power, QString const& comments , QString const& tx_power, QString const& comments
, QString const& name, QDateTime const& QSO_date_on) , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call)
{ {
QString date = QSO_date_on.toString("yyyyMMdd"); QString date = QSO_date_on.toString("yyyyMMdd");
m_logBook.addAsWorked (m_hisCall, m_config.bands ()->find (m_freqNominal), m_modeTx, date); m_logBook.addAsWorked (m_hisCall, m_config.bands ()->find (m_freqNominal), m_modeTx, date);
m_messageClient->qso_logged (QSO_date_off, call, grid, dial_freq, mode, rpt_sent, rpt_received, tx_power, comments, name, QSO_date_on); m_messageClient->qso_logged (QSO_date_off, call, grid, dial_freq, mode, rpt_sent, rpt_received, tx_power, comments, name, QSO_date_on, operator_call);
if (m_config.clear_DX ()) if (m_config.clear_DX ())
{ {

View File

@ -220,7 +220,7 @@ private slots:
, Frequency dial_freq, QString const& mode , Frequency dial_freq, QString const& mode
, QString const& rpt_sent, QString const& rpt_received , QString const& rpt_sent, QString const& rpt_received
, QString const& tx_power, QString const& comments , QString const& tx_power, QString const& comments
, QString const& name, QDateTime const&); , QString const& name, QDateTime const& QSO_date_on, QString const& operator_call);
void on_bandComboBox_currentIndexChanged (int index); void on_bandComboBox_currentIndexChanged (int index);
void on_bandComboBox_activated (int index); void on_bandComboBox_activated (int index);
void on_readFreq_clicked(); void on_readFreq_clicked();
@ -554,6 +554,7 @@ private:
QString m_fileToSave; QString m_fileToSave;
QString m_calls; QString m_calls;
QString m_CQtype; QString m_CQtype;
QString m_opCall;
QString m_FoxCallers; QString m_FoxCallers;
QString m_toBeCalled; QString m_toBeCalled;

View File

@ -542,7 +542,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QGridLayout" name="gridLayout_5" columnstretch="0,0,1,10,0"> <layout class="QGridLayout" name="gridLayout_5" columnstretch="0,0,0,0,0">
<item row="0" column="2"> <item row="0" column="2">
<widget class="QLabel" name="labDialFreq"> <widget class="QLabel" name="labDialFreq">
<property name="sizePolicy"> <property name="sizePolicy">
@ -1058,27 +1058,8 @@ QLabel[oob=&quot;true&quot;] {
<layout class="QGridLayout" name="gridLayout_7"> <layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_6"> <layout class="QGridLayout" name="gridLayout_6">
<item row="2" column="2"> <item row="2" column="1">
<widget class="QPushButton" name="txb2"> <widget class="QRadioButton" name="txrb2">
<property name="toolTip">
<string>Switch to this Tx message NOW</string>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;2</string>
</property>
<property name="shortcut">
<string>Alt+2</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLineEdit" name="tx3"/>
</item>
<item row="3" column="1">
<widget class="QRadioButton" name="txrb3">
<property name="toolTip"> <property name="toolTip">
<string>Send this message in next Tx interval</string> <string>Send this message in next Tx interval</string>
</property> </property>
@ -1089,151 +1070,13 @@ QLabel[oob=&quot;true&quot;] {
<string/> <string/>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+3</string> <string>Ctrl+2</string>
</property> </property>
<attribute name="buttonGroup"> <attribute name="buttonGroup">
<string notr="true">buttonGroup</string> <string notr="true">buttonGroup</string>
</attribute> </attribute>
</widget> </widget>
</item> </item>
<item row="4" column="1">
<widget class="DoubleClickableRadioButton" name="txrb4">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Send this message in next Tx interval&lt;/p&gt;&lt;p&gt;Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)&lt;/p&gt;&lt;p&gt;RR73 messages should only be used when you are reasonably confident that no message repetitions will be required&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 10%; margin-right: 0%</string>
</property>
<property name="text">
<string/>
</property>
<property name="shortcut">
<string>Ctrl+4</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item row="5" column="1">
<widget class="DoubleClickableRadioButton" name="txrb5">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Send this message in next Tx interval&lt;/p&gt;&lt;p&gt;Double-click to reset to the standard 73 message&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 10%; margin-right: 0%</string>
</property>
<property name="text">
<string/>
</property>
<property name="shortcut">
<string>Ctrl+5</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item row="5" column="2">
<widget class="DoubleClickablePushButton" name="txb5">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch to this Tx message NOW&lt;/p&gt;&lt;p&gt;Double-click to reset to the standard 73 message&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;5</string>
</property>
<property name="shortcut">
<string>Alt+5</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="DoubleClickablePushButton" name="txb4">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch to this Tx message NOW&lt;/p&gt;&lt;p&gt;Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)&lt;/p&gt;&lt;p&gt;RR73 messages should only be used when you are reasonably confident that no message repetitions will be required&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;4</string>
</property>
<property name="shortcut">
<string>Alt+4</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QComboBox" name="tx5">
<property name="toolTip">
<string>Enter a free text message (maximum 13 characters)
or select a predefined macro from the dropdown list.
Press ENTER to add the current text to the predefined
list. The list can be maintained in Settings (F2).</string>
</property>
<property name="editable">
<bool>true</bool>
</property>
<property name="insertPolicy">
<enum>QComboBox::InsertAtBottom</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLineEdit" name="tx1">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<property name="toolTip">
<string>Switch to this Tx message NOW</string>
</property>
<property name="text">
<string>Now</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="DoubleClickablePushButton" name="txb1">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch to this Tx message NOW&lt;/p&gt;&lt;p&gt;Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compund call holders)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;1</string>
</property>
<property name="shortcut">
<string>Alt+1</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_5">
<property name="toolTip">
<string>Queue up the next Tx message</string>
</property>
<property name="text">
<string>Next</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="DoubleClickableRadioButton" name="txrb1"> <widget class="DoubleClickableRadioButton" name="txrb1">
<property name="toolTip"> <property name="toolTip">
@ -1253,43 +1096,8 @@ list. The list can be maintained in Settings (F2).</string>
</attribute> </attribute>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="2">
<widget class="QLineEdit" name="tx2"/> <widget class="QPushButton" name="txb2">
</item>
<item row="2" column="1">
<widget class="QRadioButton" name="txrb2">
<property name="toolTip">
<string>Send this message in next Tx interval</string>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 10%; margin-right: 0%</string>
</property>
<property name="text">
<string/>
</property>
<property name="shortcut">
<string>Ctrl+2</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="genStdMsgsPushButton">
<property name="toolTip">
<string>Generate standard messages for minimal QSO</string>
</property>
<property name="text">
<string>Generate Std Msgs</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLineEdit" name="tx4"/>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="txb3">
<property name="toolTip"> <property name="toolTip">
<string>Switch to this Tx message NOW</string> <string>Switch to this Tx message NOW</string>
</property> </property>
@ -1297,17 +1105,32 @@ list. The list can be maintained in Settings (F2).</string>
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string> <string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property> </property>
<property name="text"> <property name="text">
<string>Tx &amp;3</string> <string>Tx &amp;2</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string>Alt+3</string> <string>Alt+2</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0"> <item row="2" column="0">
<widget class="QLineEdit" name="tx6"> <widget class="QLineEdit" name="tx2"/>
</item>
<item row="1" column="2">
<widget class="DoubleClickablePushButton" name="txb1">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch to this Tx message NOW&lt;/p&gt;&lt;p&gt;Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compund call holders)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text"> <property name="text">
<string/> <string>Tx &amp;1</string>
</property>
<property name="shortcut">
<string>Alt+1</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1333,6 +1156,140 @@ list. The list can be maintained in Settings (F2).</string>
</attribute> </attribute>
</widget> </widget>
</item> </item>
<item row="3" column="0">
<widget class="QLineEdit" name="tx3"/>
</item>
<item row="5" column="1">
<widget class="DoubleClickableRadioButton" name="txrb5">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Send this message in next Tx interval&lt;/p&gt;&lt;p&gt;Double-click to reset to the standard 73 message&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 10%; margin-right: 0%</string>
</property>
<property name="text">
<string/>
</property>
<property name="shortcut">
<string>Ctrl+5</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item row="3" column="1">
<widget class="QRadioButton" name="txrb3">
<property name="toolTip">
<string>Send this message in next Tx interval</string>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 10%; margin-right: 0%</string>
</property>
<property name="text">
<string/>
</property>
<property name="shortcut">
<string>Ctrl+3</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="txb3">
<property name="toolTip">
<string>Switch to this Tx message NOW</string>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;3</string>
</property>
<property name="shortcut">
<string>Alt+3</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="DoubleClickableRadioButton" name="txrb4">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Send this message in next Tx interval&lt;/p&gt;&lt;p&gt;Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)&lt;/p&gt;&lt;p&gt;RR73 messages should only be used when you are reasonably confident that no message repetitions will be required&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 10%; margin-right: 0%</string>
</property>
<property name="text">
<string/>
</property>
<property name="shortcut">
<string>Ctrl+4</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item row="4" column="2">
<widget class="DoubleClickablePushButton" name="txb4">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch to this Tx message NOW&lt;/p&gt;&lt;p&gt;Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)&lt;/p&gt;&lt;p&gt;RR73 messages should only be used when you are reasonably confident that no message repetitions will be required&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;4</string>
</property>
<property name="shortcut">
<string>Alt+4</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="DoubleClickablePushButton" name="txb5">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Switch to this Tx message NOW&lt;/p&gt;&lt;p&gt;Double-click to reset to the standard 73 message&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3%</string>
</property>
<property name="text">
<string>Tx &amp;5</string>
</property>
<property name="shortcut">
<string>Alt+5</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLineEdit" name="tx4"/>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<property name="toolTip">
<string>Switch to this Tx message NOW</string>
</property>
<property name="text">
<string>Now</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="genStdMsgsPushButton">
<property name="toolTip">
<string>Generate standard messages for minimal QSO</string>
</property>
<property name="text">
<string>Generate Std Msgs</string>
</property>
</widget>
</item>
<item row="6" column="2"> <item row="6" column="2">
<widget class="QPushButton" name="txb6"> <widget class="QPushButton" name="txb6">
<property name="toolTip"> <property name="toolTip">
@ -1349,6 +1306,49 @@ list. The list can be maintained in Settings (F2).</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QComboBox" name="tx5">
<property name="toolTip">
<string>Enter a free text message (maximum 13 characters)
or select a predefined macro from the dropdown list.
Press ENTER to add the current text to the predefined
list. The list can be maintained in Settings (F2).</string>
</property>
<property name="editable">
<bool>true</bool>
</property>
<property name="insertPolicy">
<enum>QComboBox::InsertAtBottom</enum>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLineEdit" name="tx6">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLineEdit" name="tx1">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_5">
<property name="toolTip">
<string>Queue up the next Tx message</string>
</property>
<property name="text">
<string>Next</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>
@ -2371,34 +2371,6 @@ list. The list can be maintained in Settings (F2).</string>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="4" rowspan="2">
<widget class="QSlider" name="outAttenuation">
<property name="toolTip">
<string>Adjust Tx audio level</string>
</property>
<property name="maximum">
<number>450</number>
</property>
<property name="value">
<number>0</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="invertedAppearance">
<bool>true</bool>
</property>
<property name="invertedControls">
<bool>true</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>50</number>
</property>
</widget>
</item>
<item row="0" column="4"> <item row="0" column="4">
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
@ -2445,6 +2417,50 @@ QPushButton[state=&quot;ok&quot;] {
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="4" rowspan="2">
<widget class="QSlider" name="outAttenuation">
<property name="toolTip">
<string>Adjust Tx audio level</string>
</property>
<property name="maximum">
<number>450</number>
</property>
<property name="value">
<number>0</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="invertedAppearance">
<bool>true</bool>
</property>
<property name="invertedControls">
<bool>true</bool>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>50</number>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QComboBox" name="bandComboBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select operating band or enter frequency in MHz or enter kHz increment followed by k.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="editable">
<bool>true</bool>
</property>
<property name="insertPolicy">
<enum>QComboBox::NoInsert</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToMinimumContentsLength</enum>
</property>
</widget>
</item>
<item row="2" column="2"> <item row="2" column="2">
<widget class="QLabel" name="labUTC"> <widget class="QLabel" name="labUTC">
<property name="sizePolicy"> <property name="sizePolicy">
@ -2484,22 +2500,6 @@ QPushButton[state=&quot;ok&quot;] {
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QComboBox" name="bandComboBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select operating band or enter frequency in MHz or enter kHz increment followed by k.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="editable">
<bool>true</bool>
</property>
<property name="insertPolicy">
<enum>QComboBox::NoInsert</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToMinimumContentsLength</enum>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>