1. Erase button: click once to erase QSO window, twice to erase both.

2. New Setup options: "Tx disabled after sending 73" and "Runaway Tx watchdog".
3. Keyboard shortcuts:
   Alt-D: decode again at QSO frequency (same as Decode() button)
   Shift-D: full decode again, both windows
   Alt-E: Erase()
   Ctrl-F: Edit free text message
   Alt-H: Halt Tx()
   Alt M: Monitor()
   Alt-N: Enable Tx()
   Alt-Q: Log QSO
   Alt-S: Stop()


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3155 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2013-04-11 16:51:57 +00:00
parent 524cc7f705
commit f9747c91b3
4 changed files with 83 additions and 10 deletions

View File

@ -172,6 +172,8 @@ MainWindow::MainWindow(QWidget *parent) :
m_bMiles=false; m_bMiles=false;
m_decodedText2=false; m_decodedText2=false;
m_freeText=false; m_freeText=false;
m_msErase=0;
m_sent73=false;
decodeBusy(false); decodeBusy(false);
ui->xThermo->setFillBrush(Qt::green); ui->xThermo->setFillBrush(Qt::green);
@ -384,6 +386,8 @@ void MainWindow::writeSettings()
settings.setValue("GUItab",ui->tabWidget->currentIndex()); settings.setValue("GUItab",ui->tabWidget->currentIndex());
settings.setValue("QuickCall",m_quickCall); settings.setValue("QuickCall",m_quickCall);
settings.setValue("LeftColor",m_leftColor); settings.setValue("LeftColor",m_leftColor);
settings.setValue("73TxDisable",m_73TxDisable);
settings.setValue("Runaway",m_runaway);
settings.endGroup(); settings.endGroup();
} }
@ -488,6 +492,11 @@ void MainWindow::readSettings()
ui->actionDouble_click_on_call_sets_Tx_Enable->setChecked(m_quickCall); ui->actionDouble_click_on_call_sets_Tx_Enable->setChecked(m_quickCall);
m_leftColor=settings.value("LeftColor",false).toBool(); m_leftColor=settings.value("LeftColor",false).toBool();
ui->actionColor_highlighting_in_left_window->setChecked(m_leftColor); ui->actionColor_highlighting_in_left_window->setChecked(m_leftColor);
m_73TxDisable=settings.value("73TxDisable",false).toBool();
ui->action_73TxDisable->setChecked(m_73TxDisable);
m_runaway=settings.value("Runaway",false).toBool();
ui->actionRunaway_Tx_watchdog->setChecked(m_runaway);
if(!ui->actionLinrad->isChecked() && !ui->actionCuteSDR->isChecked() && if(!ui->actionLinrad->isChecked() && !ui->actionCuteSDR->isChecked() &&
!ui->actionAFMHot->isChecked() && !ui->actionBlue->isChecked()) { !ui->actionAFMHot->isChecked() && !ui->actionBlue->isChecked()) {
on_actionLinrad_triggered(); on_actionLinrad_triggered();
@ -713,6 +722,15 @@ void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent
int n; int n;
switch(e->key()) switch(e->key())
{ {
case Qt::Key_D:
if(e->modifiers() & Qt::ShiftModifier) {
if(!m_decoderBusy) {
jt9com_.newdat=0;
jt9com_.nagain=0;
decode();
}
}
break;
case Qt::Key_F3: case Qt::Key_F3:
btxMute=!btxMute; btxMute=!btxMute;
break; break;
@ -738,11 +756,27 @@ void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent
if(e->modifiers() & Qt::ControlModifier) n+=100; if(e->modifiers() & Qt::ControlModifier) n+=100;
bumpFqso(n); bumpFqso(n);
break; break;
case Qt::Key_F:
if(e->modifiers() & Qt::ControlModifier) {
if(ui->tabWidget->currentIndex()==0) {
ui->tx5->clear();
ui->tx5->setFocus();
} else {
ui->freeTextMsg->clear();
ui->freeTextMsg->setFocus();
}
break;
}
case Qt::Key_G: case Qt::Key_G:
if(e->modifiers() & Qt::AltModifier) { if(e->modifiers() & Qt::AltModifier) {
genStdMsgs(m_rpt); genStdMsgs(m_rpt);
break; break;
} }
case Qt::Key_H:
if(e->modifiers() & Qt::AltModifier) {
on_stopTxButton_clicked();
break;
}
case Qt::Key_L: case Qt::Key_L:
if(e->modifiers() & Qt::ControlModifier) { if(e->modifiers() & Qt::ControlModifier) {
lookup(); lookup();
@ -1250,7 +1284,6 @@ void MainWindow::readFromStdout() //readFromStdout
} }
} }
} }
qDebug() << b << w[0] << w[1] << w[2] << tt << i1 << ok << m_rptRcvd;
} }
#ifdef WIN32 #ifdef WIN32
@ -1298,8 +1331,10 @@ void MainWindow::readFromStdout() //readFromStdout
void MainWindow::on_EraseButton_clicked() //Erase void MainWindow::on_EraseButton_clicked() //Erase
{ {
qint64 ms=QDateTime::currentMSecsSinceEpoch();
ui->decodedTextBrowser->clear(); ui->decodedTextBrowser->clear();
ui->decodedTextBrowser2->clear(); if((ms-m_msErase)<500) ui->decodedTextBrowser2->clear();
m_msErase=ms;
} }
void MainWindow::decodeBusy(bool b) //decodeBusy() void MainWindow::decodeBusy(bool b) //decodeBusy()
@ -1400,7 +1435,8 @@ void MainWindow::guiUpdate()
t=""; t="";
if(w.length()==3) t=w[2]; if(w.length()==3) t=w[2];
icw[0]=0; icw[0]=0;
if(m_After73 and (t=="73" or itext!=0)) { m_sent73=(t=="73" or itext!=0);
if(m_sent73 and m_After73) {
icw[0]=m_ncw; icw[0]=m_ncw;
// if(m_promptToLog) on_logQSOButton_clicked(); // if(m_promptToLog) on_logQSOButton_clicked();
if(m_promptToLog) logQSOTimer->start(200); if(m_promptToLog) logQSOTimer->start(200);
@ -1448,8 +1484,10 @@ void MainWindow::guiUpdate()
QString t=QString::fromAscii(msgsent); QString t=QString::fromAscii(msgsent);
if(t==m_msgSent0) { if(t==m_msgSent0) {
m_repeatMsg++; m_repeatMsg++;
if(m_repeatMsg>5) { if(m_runaway and m_repeatMsg>0) {
msgBox("Runaway Tx watchdog"); on_stopTxButton_clicked();
msgBox0.setText("Runaway Tx watchdog");
msgBox0.show();
m_repeatMsg=0; m_repeatMsg=0;
} }
} else { } else {
@ -1601,6 +1639,7 @@ void MainWindow::stopTx2()
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { if(m_pttMethodIndex==1 or m_pttMethodIndex==2) {
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen); ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
} }
if(m_73TxDisable and m_sent73) on_stopTxButton_clicked();
} }
void MainWindow::ba2msg(QByteArray ba, char message[]) //ba2msg() void MainWindow::ba2msg(QByteArray ba, char message[]) //ba2msg()
@ -2440,3 +2479,13 @@ void MainWindow::on_actionColor_highlighting_in_left_window_triggered(bool check
{ {
m_leftColor=checked; m_leftColor=checked;
} }
void MainWindow::on_action_73TxDisable_triggered(bool checked)
{
m_73TxDisable=checked;
}
void MainWindow::on_actionRunaway_Tx_watchdog_triggered(bool checked)
{
m_runaway=checked;
}

View File

@ -145,14 +145,17 @@ private slots:
void on_freeTextMsg_editingFinished(); void on_freeTextMsg_editingFinished();
void on_actionDouble_click_on_call_sets_Tx_Enable_triggered(bool checked); void on_actionDouble_click_on_call_sets_Tx_Enable_triggered(bool checked);
void on_rptSpinBox_valueChanged(int n); void on_rptSpinBox_valueChanged(int n);
void on_actionColor_highlighting_in_left_window_triggered(bool checked); void on_actionColor_highlighting_in_left_window_triggered(bool checked);
void on_action_73TxDisable_triggered(bool checked);
void on_actionRunaway_Tx_watchdog_triggered(bool checked);
private: private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
double m_dialFreq; double m_dialFreq;
qint64 m_msErase;
qint32 m_nDevIn; qint32 m_nDevIn;
qint32 m_nDevOut; qint32 m_nDevOut;
qint32 m_idInt; qint32 m_idInt;
@ -235,6 +238,9 @@ private:
bool m_freeText; bool m_freeText;
bool m_quickCall; bool m_quickCall;
bool m_leftColor; bool m_leftColor;
bool m_73TxDisable;
bool m_sent73;
bool m_runaway;
char m_decoded[80]; char m_decoded[80];

View File

@ -473,7 +473,7 @@ p, li { white-space: pre-wrap; }
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>Enable Tx</string> <string>E&amp;nable Tx</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -492,7 +492,7 @@ p, li { white-space: pre-wrap; }
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>Halt Tx</string> <string>&amp;Halt Tx</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1312,7 +1312,7 @@ p, li { white-space: pre-wrap; }
<enum>QTabWidget::Triangular</enum> <enum>QTabWidget::Triangular</enum>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>1</number>
</property> </property>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tab">
<attribute name="title"> <attribute name="title">
@ -1996,6 +1996,8 @@ p, li { white-space: pre-wrap; }
<addaction name="actionDisplay_distance_in_miles"/> <addaction name="actionDisplay_distance_in_miles"/>
<addaction name="actionDouble_click_on_call_sets_Tx_Enable"/> <addaction name="actionDouble_click_on_call_sets_Tx_Enable"/>
<addaction name="actionColor_highlighting_in_left_window"/> <addaction name="actionColor_highlighting_in_left_window"/>
<addaction name="action_73TxDisable"/>
<addaction name="actionRunaway_Tx_watchdog"/>
</widget> </widget>
<widget class="QMenu" name="menuView"> <widget class="QMenu" name="menuView">
<property name="title"> <property name="title">
@ -2529,6 +2531,22 @@ p, li { white-space: pre-wrap; }
<string>Color highlighting in left window</string> <string>Color highlighting in left window</string>
</property> </property>
</action> </action>
<action name="action_73TxDisable">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Tx disabled after sending 73</string>
</property>
</action>
<action name="actionRunaway_Tx_watchdog">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Runaway Tx watchdog</string>
</property>
</action>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets> <customwidgets>

View File

@ -1,6 +1,6 @@
[Setup] [Setup]
AppName=wsjtx AppName=wsjtx
AppVerName=wsjtx Version 0.9 r3148 AppVerName=wsjtx Version 0.9 r3151
AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT
DefaultDirName=c:\wsjtx DefaultDirName=c:\wsjtx
DefaultGroupName=wsjtx DefaultGroupName=wsjtx