Merge branch 'hotfix-2.0.1-rc1' of bitbucket.org:k1jt/wsjtx into hotfix-2.0.1-rc1

This commit is contained in:
Joe Taylor 2018-12-28 16:32:23 -05:00
commit b63c9a5078
7 changed files with 75 additions and 59 deletions

View File

@ -607,6 +607,7 @@ private:
bool miles_; bool miles_;
bool quick_call_; bool quick_call_;
bool disable_TX_on_73_; bool disable_TX_on_73_;
bool alternate_bindings_;
int watchdog_; int watchdog_;
bool TX_messages_; bool TX_messages_;
bool enable_VHF_features_; bool enable_VHF_features_;
@ -700,6 +701,7 @@ bool Configuration::clear_DX () const {return m_->clear_DX_;}
bool Configuration::miles () const {return m_->miles_;} bool Configuration::miles () const {return m_->miles_;}
bool Configuration::quick_call () const {return m_->quick_call_;} bool Configuration::quick_call () const {return m_->quick_call_;}
bool Configuration::disable_TX_on_73 () const {return m_->disable_TX_on_73_;} bool Configuration::disable_TX_on_73 () const {return m_->disable_TX_on_73_;}
bool Configuration::alternate_bindings() const {return m_->alternate_bindings_;}
int Configuration::watchdog () const {return m_->watchdog_;} int Configuration::watchdog () const {return m_->watchdog_;}
bool Configuration::TX_messages () const {return m_->TX_messages_;} bool Configuration::TX_messages () const {return m_->TX_messages_;}
bool Configuration::enable_VHF_features () const {return m_->enable_VHF_features_;} bool Configuration::enable_VHF_features () const {return m_->enable_VHF_features_;}
@ -1232,6 +1234,7 @@ void Configuration::impl::initialize_models ()
ui_->miles_check_box->setChecked (miles_); ui_->miles_check_box->setChecked (miles_);
ui_->quick_call_check_box->setChecked (quick_call_); ui_->quick_call_check_box->setChecked (quick_call_);
ui_->disable_TX_on_73_check_box->setChecked (disable_TX_on_73_); ui_->disable_TX_on_73_check_box->setChecked (disable_TX_on_73_);
ui_->alternate_bindings_check_box->setChecked (alternate_bindings_);
ui_->tx_watchdog_spin_box->setValue (watchdog_); ui_->tx_watchdog_spin_box->setValue (watchdog_);
ui_->TX_messages_check_box->setChecked (TX_messages_); ui_->TX_messages_check_box->setChecked (TX_messages_);
ui_->enable_VHF_features_check_box->setChecked(enable_VHF_features_); ui_->enable_VHF_features_check_box->setChecked(enable_VHF_features_);
@ -1481,6 +1484,7 @@ void Configuration::impl::read_settings ()
miles_ = settings_->value ("Miles", false).toBool (); miles_ = settings_->value ("Miles", false).toBool ();
quick_call_ = settings_->value ("QuickCall", false).toBool (); quick_call_ = settings_->value ("QuickCall", false).toBool ();
disable_TX_on_73_ = settings_->value ("73TxDisable", false).toBool (); disable_TX_on_73_ = settings_->value ("73TxDisable", false).toBool ();
alternate_bindings_ = settings_->value ("AlternateBindings", false).toBool ();
watchdog_ = settings_->value ("TxWatchdog", 6).toInt (); watchdog_ = settings_->value ("TxWatchdog", 6).toInt ();
TX_messages_ = settings_->value ("Tx2QSO", true).toBool (); TX_messages_ = settings_->value ("Tx2QSO", true).toBool ();
enable_VHF_features_ = settings_->value("VHFUHF",false).toBool (); enable_VHF_features_ = settings_->value("VHFUHF",false).toBool ();
@ -1580,6 +1584,7 @@ void Configuration::impl::write_settings ()
settings_->setValue ("Miles", miles_); settings_->setValue ("Miles", miles_);
settings_->setValue ("QuickCall", quick_call_); settings_->setValue ("QuickCall", quick_call_);
settings_->setValue ("73TxDisable", disable_TX_on_73_); settings_->setValue ("73TxDisable", disable_TX_on_73_);
settings_->setValue ("AlternateBindings", alternate_bindings_);
settings_->setValue ("TxWatchdog", watchdog_); settings_->setValue ("TxWatchdog", watchdog_);
settings_->setValue ("Tx2QSO", TX_messages_); settings_->setValue ("Tx2QSO", TX_messages_);
settings_->setValue ("CATForceDTR", rig_params_.force_dtr); settings_->setValue ("CATForceDTR", rig_params_.force_dtr);
@ -2022,6 +2027,7 @@ void Configuration::impl::accept ()
miles_ = ui_->miles_check_box->isChecked (); miles_ = ui_->miles_check_box->isChecked ();
quick_call_ = ui_->quick_call_check_box->isChecked (); quick_call_ = ui_->quick_call_check_box->isChecked ();
disable_TX_on_73_ = ui_->disable_TX_on_73_check_box->isChecked (); disable_TX_on_73_ = ui_->disable_TX_on_73_check_box->isChecked ();
alternate_bindings_ = ui_->alternate_bindings_check_box->isChecked ();
watchdog_ = ui_->tx_watchdog_spin_box->value (); watchdog_ = ui_->tx_watchdog_spin_box->value ();
TX_messages_ = ui_->TX_messages_check_box->isChecked (); TX_messages_ = ui_->TX_messages_check_box->isChecked ();
data_mode_ = static_cast<DataMode> (ui_->TX_mode_button_group->checkedId ()); data_mode_ = static_cast<DataMode> (ui_->TX_mode_button_group->checkedId ());

View File

@ -126,6 +126,7 @@ public:
bool miles () const; bool miles () const;
bool quick_call () const; bool quick_call () const;
bool disable_TX_on_73 () const; bool disable_TX_on_73 () const;
bool alternate_bindings() const;
int watchdog () const; int watchdog () const;
bool TX_messages () const; bool TX_messages () const;
bool split_mode () const; bool split_mode () const;

View File

@ -461,6 +461,13 @@ text message.</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0">
<widget class="QCheckBox" name="alternate_bindings_check_box">
<property name="text">
<string>Alternate F1-F5 bindings</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -3018,13 +3025,13 @@ Right click for insert and delete options.</string>
</connection> </connection>
</connections> </connections>
<buttongroups> <buttongroups>
<buttongroup name="CAT_handshake_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="CAT_data_bits_button_group"/>
<buttongroup name="PTT_method_button_group"/>
<buttongroup name="TX_mode_button_group"/> <buttongroup name="TX_mode_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/> <buttongroup name="CAT_data_bits_button_group"/>
<buttongroup name="special_op_activity_button_group"/>
<buttongroup name="TX_audio_source_button_group"/> <buttongroup name="TX_audio_source_button_group"/>
<buttongroup name="CAT_handshake_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/>
<buttongroup name="PTT_method_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="special_op_activity_button_group"/>
</buttongroups> </buttongroups>
</ui> </ui>

View File

@ -65,7 +65,7 @@ QStringList DecodedText::messageWords () const
QString DecodedText::CQersCall() const QString DecodedText::CQersCall() const
{ {
QRegularExpression callsign_re {R"(^(CQ|DE|QRZ)(\s?DX|\s([A-Z]{2,4}|\d{3}))?\s(?<callsign>[A-Z0-9/]{2,})(\s[A-R]{2}[0-9]{2})?)"}; QRegularExpression callsign_re {R"(^(CQ|DE|QRZ)(\s?DX|\s([A-Z]{1,4}|\d{3}))?\s(?<callsign>[A-Z0-9/]{2,})(\s[A-R]{2}[0-9]{2})?)"};
return callsign_re.match (message_).captured ("callsign"); return callsign_re.match (message_).captured ("callsign");
} }
@ -167,9 +167,8 @@ void DecodedText::deCallAndGrid(/*out*/QString& call, QString& grid) const
call = match.captured ("word2"); call = match.captured ("word2");
grid = match.captured ("word3"); grid = match.captured ("word3");
if ("R" == grid) grid = match.captured ("word4"); if ("R" == grid) grid = match.captured ("word4");
if(match.captured("word1")=="CQ" and call.length()>=3 and call.length()<=4 if(match.captured("word1")=="CQ" and call.length()<=4 and !call.contains(QRegExp("[0-9]"))) {
and !call.contains(QRegExp("[0-9]"))) { //Second word has length 1-4 and contains no digits
//Second word has length 3 or 4 and contains no digits
call = match.captured ("word3"); call = match.captured ("word3");
grid = match.captured ("word4"); grid = match.captured ("word4");
} }

View File

@ -1,13 +1,13 @@
<table cellspacing=1> <table cellspacing=1>
<tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr> <tr><td><b>Esc </b></td><td>Stop Tx, abort QSO, clear next-call queue</td></tr>
<tr><td><b>F1 </b></td><td>Online User's Guide</td></tr> <tr><td><b>F1 </b></td><td>Online User's Guide (Alt: transmit Tx6)</td></tr>
<tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr> <tr><td><b>Shift+F1 </b></td><td>Copyright Notice</td></tr>
<tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr> <tr><td><b>Ctrl+F1 </b></td><td>About WSJT-X</td></tr>
<tr><td><b>F2 </b></td><td>Open settings window</td></tr> <tr><td><b>F2 </b></td><td>Open settings window (Alt: transmit Tx2)</td></tr>
<tr><td><b>F3 </b></td><td>Display keyboard shortcuts</td></tr> <tr><td><b>F3 </b></td><td>Display keyboard shortcuts (Alt: transmit Tx3)</td></tr>
<tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4</td></tr> <tr><td><b>F4 </b></td><td>Clear DX Call, DX Grid, Tx messages 1-4 (Alt: transmit Tx4)</td></tr>
<tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr> <tr><td><b>Alt+F4 </b></td><td>Exit program</td></tr>
<tr><td><b>F5 </b></td><td>Display special mouse commands</td></tr> <tr><td><b>F5 </b></td><td>Display special mouse commands (Alt: transmit Tx5)</td></tr>
<tr><td><b>F6 </b></td><td>Open next file in directory</td></tr> <tr><td><b>F6 </b></td><td>Open next file in directory</td></tr>
<tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr> <tr><td><b>Shift+F6 </b></td><td>Decode all remaining files in directrory</td></tr>
<tr><td><b>F7 </b></td><td>Display Message Averaging window</td></tr> <tr><td><b>F7 </b></td><td>Display Message Averaging window</td></tr>

View File

@ -1863,6 +1863,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e)
} }
int n; int n;
bool bAltF1F5=m_config.alternate_bindings();
switch(e->key()) switch(e->key())
{ {
case Qt::Key_D: case Qt::Key_D:
@ -1876,21 +1877,51 @@ void MainWindow::keyPressEvent (QKeyEvent * e)
} }
break; break;
case Qt::Key_F1: case Qt::Key_F1:
if(bAltF1F5) {
auto_tx_mode(true);
on_txb6_clicked();
return;
} else {
on_actionOnline_User_Guide_triggered(); on_actionOnline_User_Guide_triggered();
return; return;
}
case Qt::Key_F2: case Qt::Key_F2:
if(bAltF1F5) {
auto_tx_mode(true);
on_txb2_clicked();
return;
} else {
on_actionSettings_triggered(); on_actionSettings_triggered();
return; return;
}
case Qt::Key_F3: case Qt::Key_F3:
if(bAltF1F5) {
auto_tx_mode(true);
on_txb3_clicked();
return;
} else {
on_actionKeyboard_shortcuts_triggered(); on_actionKeyboard_shortcuts_triggered();
return; return;
}
case Qt::Key_F4: case Qt::Key_F4:
if(bAltF1F5) {
auto_tx_mode(true);
on_txb4_clicked();
return;
} else {
clearDX (); clearDX ();
ui->dxCallEntry->setFocus(); ui->dxCallEntry->setFocus();
return; return;
}
case Qt::Key_F5: case Qt::Key_F5:
if(bAltF1F5) {
auto_tx_mode(true);
on_txb5_clicked();
return;
} else {
on_actionSpecial_mouse_commands_triggered(); on_actionSpecial_mouse_commands_triggered();
return; return;
}
case Qt::Key_F6: case Qt::Key_F6:
if(e->modifiers() & Qt::ShiftModifier) { if(e->modifiers() & Qt::ShiftModifier) {
on_actionDecode_remaining_files_in_directory_triggered(); on_actionDecode_remaining_files_in_directory_triggered();
@ -4013,6 +4044,7 @@ void MainWindow::ba2msg(QByteArray ba, char message[]) //ba2msg()
int iz=ba.length(); int iz=ba.length();
for(int i=0; i<37; i++) { for(int i=0; i<37; i++) {
if(i<iz) { if(i<iz) {
if(int(ba[i])>=97 and int(ba[i])<=122) ba[i]=int(ba[i])-32;
message[i]=ba[i]; message[i]=ba[i];
} else { } else {
message[i]=32; message[i]=32;
@ -5274,8 +5306,11 @@ void MainWindow::on_tx6_editingFinished() //tx6 edited
QString t=ui->tx6->text().toUpper(); QString t=ui->tx6->text().toUpper();
if(t.indexOf(" ")>0) { if(t.indexOf(" ")>0) {
QString t1=t.split(" ").at(1); QString t1=t.split(" ").at(1);
QRegExp AZ4("^[A-Z]{1,4}$");
QRegExp NN3("^[0-9]{1,3}$");
m_CQtype="CQ"; m_CQtype="CQ";
if(t1.size()==2) m_CQtype="CQ " + t1; if(t1.size()<=4 and t1.contains(AZ4)) m_CQtype="CQ " + t1;
if(t1.size()<=3 and t1.contains(NN3)) m_CQtype="CQ " + t1;
} }
msgtype(t, ui->tx6); msgtype(t, ui->tx6);
} }

View File

@ -1523,9 +1523,6 @@ QPushButton[state=&quot;ok&quot;] {
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+2</string> <string>Ctrl+2</string>
</property> </property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
@ -1542,9 +1539,6 @@ QPushButton[state=&quot;ok&quot;] {
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+1</string> <string>Ctrl+1</string>
</property> </property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget> </widget>
</item> </item>
<item row="2" column="2"> <item row="2" column="2">
@ -1602,9 +1596,6 @@ QPushButton[state=&quot;ok&quot;] {
<property name="checked"> <property name="checked">
<bool>true</bool> <bool>true</bool>
</property> </property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
@ -1624,9 +1615,6 @@ QPushButton[state=&quot;ok&quot;] {
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+5</string> <string>Ctrl+5</string>
</property> </property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="3" column="1">
@ -1643,9 +1631,6 @@ QPushButton[state=&quot;ok&quot;] {
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+3</string> <string>Ctrl+3</string>
</property> </property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget> </widget>
</item> </item>
<item row="3" column="2"> <item row="3" column="2">
@ -1678,9 +1663,6 @@ QPushButton[state=&quot;ok&quot;] {
<property name="shortcut"> <property name="shortcut">
<string>Ctrl+4</string> <string>Ctrl+4</string>
</property> </property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget> </widget>
</item> </item>
<item row="4" column="2"> <item row="4" column="2">
@ -2862,25 +2844,16 @@ list. The list can be maintained in Settings (F2).</string>
<property name="text"> <property name="text">
<string>Online User Guide</string> <string>Online User Guide</string>
</property> </property>
<property name="shortcut">
<string>F1</string>
</property>
</action> </action>
<action name="actionKeyboard_shortcuts"> <action name="actionKeyboard_shortcuts">
<property name="text"> <property name="text">
<string>Keyboard shortcuts</string> <string>Keyboard shortcuts</string>
</property> </property>
<property name="shortcut">
<string>F3</string>
</property>
</action> </action>
<action name="actionSpecial_mouse_commands"> <action name="actionSpecial_mouse_commands">
<property name="text"> <property name="text">
<string>Special mouse commands</string> <string>Special mouse commands</string>
</property> </property>
<property name="shortcut">
<string>F5</string>
</property>
</action> </action>
<action name="actionJT9"> <action name="actionJT9">
<property name="checkable"> <property name="checkable">
@ -3092,9 +3065,6 @@ list. The list can be maintained in Settings (F2).</string>
<property name="text"> <property name="text">
<string>Settings...</string> <string>Settings...</string>
</property> </property>
<property name="shortcut">
<string>F2</string>
</property>
</action> </action>
<action name="actionLocal_User_Guide"> <action name="actionLocal_User_Guide">
<property name="text"> <property name="text">
@ -3475,6 +3445,4 @@ list. The list can be maintained in Settings (F2).</string>
</tabstops> </tabstops>
<resources/> <resources/>
<connections/> <connections/>
<buttongroups>
</buttongroups>
</ui> </ui>