Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop

This commit is contained in:
Joe Taylor 2022-11-01 11:53:44 -04:00
commit cb19944508
6 changed files with 291 additions and 207 deletions

View File

@ -1388,7 +1388,9 @@ void Configuration::impl::initialize_models ()
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_->opCallEntry->setText (opCall_);
ui_->udp_server_line_edit->setEnabled(false);
ui_->udp_server_line_edit->setText (udp_server_name_);
ui_->udp_server_line_edit->setEnabled(true);
on_udp_server_line_edit_editingFinished ();
ui_->udp_server_port_spin_box->setValue (udp_server_port_);
load_network_interfaces (ui_->udp_interfaces_combo_box, udp_interface_names_);
@ -2449,6 +2451,27 @@ void Configuration::impl::on_udp_server_line_edit_textChanged (QString const&)
void Configuration::impl::on_udp_server_line_edit_editingFinished ()
{
if (this->isVisible())
{
int q1,q2,q3,q4;
char tmpbuf[2];
int n = sscanf(ui_->udp_server_line_edit->text ().trimmed ().toLatin1(), "%d.%d.%d.%d.%1s", &q1, &q2, &q3, &q4, tmpbuf);
const char *iperr;
switch(n)
{
case 0: iperr = "Error before first number";break;
case 1: iperr = "Error between first and second number";break;
case 2: iperr = "Error between second and third number";break;
case 3: iperr = "Error between third and fourth number";break;
case 4: iperr = ""; break;
default: iperr = "Unknown error n=" + n;
}
if (n != 4)
{
MessageBox::warning_message (this, tr ("Error in network address"), tr (iperr));
return;
}
if (udp_server_name_edited_)
{
auto const& server = ui_->udp_server_line_edit->text ().trimmed ();
@ -2468,6 +2491,7 @@ void Configuration::impl::on_udp_server_line_edit_editingFinished ()
check_multicast (ha);
}
}
}
}
void Configuration::impl::host_info_results (QHostInfo host_info)

View File

@ -137,6 +137,7 @@ void MessageClient::impl::host_info_results (QHostInfo host_info)
if (QHostInfo::NoError != host_info.error ())
{
Q_EMIT self_->error ("UDP server DNS lookup failed: " + host_info.errorString ());
return;
}
else
{

View File

@ -444,8 +444,12 @@ QString DXLabSuiteCommanderTransceiver::command_with_reply (QString const& cmd)
// qDebug () << i << ":" << hex << int (result[i]);
// }
if (result != NULL)
{
CAT_TRACE (cmd << " -> " << QString {result});
return result; // converting raw UTF-8 bytes to QString
}
return "";
}
bool DXLabSuiteCommanderTransceiver::write_to_port (QString const& s)

View File

@ -90,6 +90,7 @@
#include "ExportCabrillo.h"
#include "ui_mainwindow.h"
#include "moc_mainwindow.cpp"
#include "Logger.hpp"
#define FCL fortran_charlen_t
@ -1385,7 +1386,9 @@ void MainWindow::set_application_font (QFont const& font)
QFile sf {sheet};
if (sf.open (QFile::ReadOnly | QFile::Text))
{
ss = sf.readAll () + ss;
QString tmp = sf.readAll();
if (tmp != NULL) ss = sf.readAll () + tmp;
else qDebug() << "tmp==NULL at sf.readAll";
}
}
qApp->setStyleSheet (ss + "* {" + font_as_stylesheet (font) + '}');
@ -4023,7 +4026,8 @@ void MainWindow::readFromStdout() //readFromStdout
if(f.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream s(&f);
QString t=s.readAll();
m_msgAvgWidget->displayAvg(t);
if (t != NULL) m_msgAvgWidget->displayAvg(t);
else qDebug() << "tmp==NULL at s.readAll";
}
}
}
@ -6152,7 +6156,9 @@ void MainWindow::on_addButton_clicked() //Add button
// preserve symlinks
f1.open (QFile::WriteOnly | QFile::Text); // truncates
f2.seek (0);
f1.write (f2.readAll ()); // copy contents
QByteArray tmp = f2.readAll();
if (tmp != (const char*)NULL) f1.write (tmp); // copy contents
else qDebug() << "tmp==NULL at f1.write";
f2.remove ();
}
}
@ -7999,7 +8005,7 @@ void MainWindow::on_outAttenuation_valueChanged (int a)
tt_str = tr ("Transmit digital gain ");
}
tt_str += (a ? QString::number (-dBAttn, 'f', 1) : "0") + "dB";
if (!m_block_pwr_tooltip) {
if (ui->outAttenuation->hasFocus() && !m_block_pwr_tooltip) {
QToolTip::showText (QCursor::pos (), tt_str, ui->outAttenuation);
}
QString curBand = ui->bandComboBox->currentText();

View File

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>893</width>
<width>901</width>
<height>665</height>
</rect>
</property>
@ -36,7 +36,6 @@
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
@ -180,7 +179,6 @@
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
@ -576,75 +574,8 @@
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_5" rowstretch="1,0,0" columnstretch="0,0,0,0,0,0">
<item row="1" column="5" 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="2" column="2" colspan="2">
<widget class="QLabel" name="labUTC">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QLabel {
font-family: MS Shell Dlg 2;
font-size: 16pt;
background-color : black;
color : yellow;
}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt; 2015 Jun 17 &lt;/p&gt;&lt;p align=&quot;center&quot;&gt; 01:23:45 &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="2" colspan="2">
<layout class="QGridLayout" name="gridLayout_5" rowstretch="1,0,0" columnstretch="0,0,0,0,1,1,5,0">
<item row="1" column="4" colspan="2">
<widget class="QWidget" name="DX_controls_widget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
@ -921,43 +852,54 @@
</layout>
</widget>
</item>
<item row="0" column="2" colspan="2">
<widget class="QLabel" name="labDialFreq">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item row="1" column="7" rowspan="2">
<widget class="QSlider" name="outAttenuation">
<property name="toolTip">
<string>USB dial frequency</string>
<string>Adjust Tx audio level</string>
</property>
<property name="styleSheet">
<string notr="true">QLabel {
font-family: MS Shell Dlg 2;
font-size: 16pt;
color : yellow;
background-color : black;
}
QLabel[oob=&quot;true&quot;] {
background-color: red;
}</string>
<property name="maximum">
<number>450</number>
</property>
<property name="text">
<string>14.078 000</string>
<property name="value">
<number>0</number>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="margin">
<number>5</number>
<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="1" column="0" rowspan="2">
<item row="0" column="7">
<widget class="QLabel" name="label">
<property name="text">
<string> Pwr</string>
</property>
</widget>
</item>
<item row="1" column="2" rowspan="2">
<layout class="QVBoxLayout" name="verticalLayout_11">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QSpinBox" name="sbNB">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>100</width>
@ -982,84 +924,68 @@ QLabel[oob=&quot;true&quot;] {
</widget>
</item>
<item>
<widget class="SignalMeter" name="signal_meter_widget">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="maximumSize">
<size>
<width>50</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;30dB recommended when only noise present&lt;br/&gt;Green when good&lt;br/&gt;Red when clipping may occur&lt;br/&gt;Yellow when too low&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="accessibleName">
<string>Rx Signal</string>
</property>
<property name="accessibleDescription">
<string>30dB recommended when only noise present
<item>
<widget class="SignalMeter" name="signal_meter_widget">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;30dB recommended when only noise present&lt;br/&gt;Green when good&lt;br/&gt;Red when clipping may occur&lt;br/&gt;Yellow when too low&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="accessibleName">
<string>Rx Signal</string>
</property>
<property name="accessibleDescription">
<string>30dB recommended when only noise present
Green when good
Red when clipping may occur
Yellow when too low</string>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
</widget>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item row="0" column="1" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
<widget class="QPushButton" name="readFreq">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="accessibleDescription">
<string>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
font-family: helvetica;
font-size: 9pt;
font-weight: bold;
background-color: white;
color: black;
border-style: solid;
border-width:1px;
border-radius:10px;
border-color: gray;
max-width:20px;
max-height:20px;
min-width:20px;
min-height:20px;
}
QPushButton[state=&quot;error&quot;] {
background-color: red;
}
QPushButton[state=&quot;warning&quot;] {
background-color: orange;
}
QPushButton[state=&quot;ok&quot;] {
background-color: #00ff00;
}</string>
</property>
<property name="text">
<string>?</string>
</property>
</widget>
</item>
<item row="0" column="4" rowspan="3">
<item row="0" column="6" rowspan="3">
<widget class="QStackedWidget" name="controls_stack_widget">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
@ -2048,9 +1974,6 @@ list. The list can be maintained in Settings (F2).</string>
<property name="insertPolicy">
<enum>QComboBox::InsertAtBottom</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToMinimumContentsLength</enum>
</property>
</widget>
</item>
<item row="5" column="1">
@ -2844,35 +2767,40 @@ Double-click to reset to the standard 73 message</string>
</widget>
</widget>
</item>
<item row="0" column="0">
<widget class="BandComboBox" name="bandComboBox">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
<item row="0" column="4" colspan="2">
<widget class="QLabel" name="labDialFreq">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<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>
<string>USB dial frequency</string>
</property>
<property name="accessibleName">
<string>Frequency entry</string>
<property name="styleSheet">
<string notr="true">QLabel {
font-family: MS Shell Dlg 2;
font-size: 16pt;
color : yellow;
background-color : black;
}
QLabel[oob=&quot;true&quot;] {
background-color: red;
}</string>
</property>
<property name="accessibleDescription">
<string>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</string>
<property name="text">
<string>14.078 000</string>
</property>
<property name="editable">
<bool>true</bool>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="insertPolicy">
<enum>QComboBox::NoInsert</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="1" rowspan="2">
<item row="1" column="3" rowspan="2">
<layout class="QVBoxLayout" name="verticalLayout_15">
<item>
<widget class="QPushButton" name="houndButton">
@ -3011,13 +2939,131 @@ Double-click to reset to the standard 73 message</string>
</item>
</layout>
</item>
<item row="0" column="5">
<widget class="QLabel" name="label">
<item row="2" column="4" colspan="2">
<widget class="QLabel" name="labUTC">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QLabel {
font-family: MS Shell Dlg 2;
font-size: 16pt;
background-color : black;
color : yellow;
}</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<property name="text">
<string> Pwr</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt; 2015 Jun 17 &lt;/p&gt;&lt;p align=&quot;center&quot;&gt; 01:23:45 &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_16" stretch="1,0">
<item>
<widget class="BandComboBox" name="bandComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<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="accessibleName">
<string>Frequency entry</string>
</property>
<property name="accessibleDescription">
<string>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</string>
</property>
<property name="editable">
<bool>true</bool>
</property>
<property name="insertPolicy">
<enum>QComboBox::NoInsert</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="readFreq">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="accessibleDescription">
<string>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
font-family: helvetica;
font-size: 9pt;
font-weight: bold;
background-color: white;
color: black;
border-style: solid;
border-width:1px;
border-radius:10px;
border-color: gray;
max-width:20px;
max-height:20px;
min-width:20px;
min-height:20px;
}
QPushButton[state=&quot;error&quot;] {
background-color: red;
}
QPushButton[state=&quot;warning&quot;] {
background-color: orange;
}
QPushButton[state=&quot;ok&quot;] {
background-color: #00ff00;
}</string>
</property>
<property name="text">
<string>?</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
@ -3030,8 +3076,8 @@ Double-click to reset to the standard 73 message</string>
<rect>
<x>0</x>
<y>0</y>
<width>893</width>
<height>21</height>
<width>901</width>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@ -3744,7 +3790,6 @@ Double-click to reset to the standard 73 message</string>
<tabstop>stopTxButton</tabstop>
<tabstop>tuneButton</tabstop>
<tabstop>cbMenus</tabstop>
<tabstop>bandComboBox</tabstop>
<tabstop>sbNB</tabstop>
<tabstop>dxCallEntry</tabstop>
<tabstop>dxGridEntry</tabstop>

View File

@ -402,7 +402,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
float xx0=float(m_startFreq)/float(m_freqPerDiv);
xx0=xx0-int(xx0);
int x0=xx0*pixperdiv+0.5;
for( int i=1; i<m_hdivs; i++) { //draw vertical grids
for( int i=1; i<m_hdivs; i++) { //draw vertical grids
x = (int)((float)i*pixperdiv ) - x0;
if(x >= 0 and x<=m_w) {
painter.setPen(QPen(Qt::white, 1,Qt::DotLine));
@ -413,14 +413,18 @@ void CPlotter::DrawOverlay() //DrawOverlay()
painter.setPen(QPen(Qt::white, 1,Qt::DotLine));
if(m_bTotalPower) painter.setPen(QPen(Qt::white, 1,Qt::DashLine));
for( int i=1; i<VERT_DIVS; i++) { //draw horizontal grids
for( int i=1; i<VERT_DIVS; i++) { //draw horizontal grids
y = int(i*m_vpixperdiv);
painter.drawLine(15, y, w, y);
if(m_bTotalPower) {
painter.drawLine(15, y, w, y);
} else {
painter.drawLine(0, y, w, y);
}
}
if(m_bTotalPower) {
painter.setPen(QPen(Qt::white));
for( int i=1; i<VERT_DIVS; i++) { //draw horizontal grids
for( int i=1; i<VERT_DIVS; i++) { //draw horizontal grids
y = int(i*m_vpixperdiv);
painter.drawText(0,y+5,QString::number(10*(VERT_DIVS-i) + 20));
}
@ -428,7 +432,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
if(m_bTotalPower and m_h2>100) {
painter.setPen(QPen(Qt::white, 1,Qt::DotLine));
for( int i=1; i<5*VERT_DIVS; i++) { //draw horizontal 2 dB grids
for( int i=1; i<5*VERT_DIVS; i++) { //draw horizontal 2 dB grids
if(i%5 > 0) {
y = int(0.2*i*m_vpixperdiv);
painter.drawLine(0, y, w, y);