Merged from trunk:

------------------------------------------------------------------------
r8052 | k1jt | 2017-08-31 16:04:12 +0100 (Thu, 31 Aug 2017) | 1 line

Additions and corrections to User Guide.
------------------------------------------------------------------------
r8053 | k1jt | 2017-08-31 20:22:44 +0100 (Thu, 31 Aug 2017) | 2 lines

Update the text for some keyboard shortcuts.

------------------------------------------------------------------------
r8054 | k1jt | 2017-08-31 21:16:38 +0100 (Thu, 31 Aug 2017) | 2 lines

Fix a comment in ft8_decode.f90.

------------------------------------------------------------------------
r8055 | k1jt | 2017-08-31 21:23:18 +0100 (Thu, 31 Aug 2017) | 2 lines

A few more User-Guide updates.

------------------------------------------------------------------------
r8056 | bsomervi | 2017-09-01 06:11:57 +0100 (Fri, 01 Sep 2017) | 15 lines

Many improvements to decode double click and auoto-sequencing behaviour

Double-clicks on 73 messages fixed.  Fixed issue with incorrect decode
being  selected  by  double-click. Refined  auto-sequencing  sign  off
handling, any 73 or rr73 free text  near Rx or Tx frequency taken as a
73 from QSO  partner but if a  standard message then must  be from QSO
partner.

Moved functionality from MainWindow to DecodedText class.

More  efficient  picking of  messages  from  decoded text  windows  by
extracting the text block directly.

Tighten up  use of RR73 and  skipping Tx1, these are  now disabled for
relevant compound calls where they would break the QSO exchange.
------------------------------------------------------------------------



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx-1.8@8057 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville
2017-09-01 05:23:32 +00:00
parent 2a87df0338
commit f67ed2006e
13 changed files with 296 additions and 249 deletions
+66 -61
View File
@@ -85,77 +85,82 @@ QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign
QColor color_DXCC,
QColor color_NewCall)
{
QString call = callsign;
QString countryName;
bool callWorkedBefore;
bool countryWorkedBefore;
// allow for seconds
unsigned padding {message.indexOf (" ") > 4 ? 2U : 0U};
QString call = callsign;
QString countryName;
bool callWorkedBefore;
bool countryWorkedBefore;
if(call.length()==2) {
int i0=message.indexOf("CQ "+call);
call=message.mid(i0+6,-1);
i0=call.indexOf(" ");
call=call.mid(0,i0);
}
if(call.length()<3) return message;
if(!call.contains(QRegExp("[0-9]|[A-Z]"))) return message;
if(call.length()==2) {
int i0=message.indexOf("CQ "+call);
call=message.mid(i0+6,-1);
i0=call.indexOf(" ");
call=call.mid(0,i0);
}
if(call.length()<3) return message;
if(!call.contains(QRegExp("[0-9]|[A-Z]"))) return message;
logBook.match(/*in*/call,/*out*/countryName,callWorkedBefore,countryWorkedBefore);
int charsAvail = 48;
logBook.match(/*in*/call,/*out*/countryName,callWorkedBefore,countryWorkedBefore);
int charsAvail = 52 + padding;
// the decoder (seems) to always generate 41 chars. For a normal CQ call, the last five are spaces
// TODO this magic 37 characters is also referenced in MainWindow::doubleClickOnCall()
int nmin=37;
int i=message.indexOf(" CQ ");
int k=message.mid(i+4,3).toInt();
if(k>0 and k<999) nmin += 4;
int s3 = message.indexOf(" ",nmin);
if (s3 < nmin) s3 = nmin; // always want at least the characters to position 35
s3 += 1; // convert the index into a character count
message = message.left(s3); // reduce trailing white space
charsAvail -= s3;
if (charsAvail > 4)
// the decoder (seems) to always generate 41 chars. For a normal CQ
// call, the last five are spaces
//
// A maximum length call is "QRZ VP2X/GM4WJS IO91" "CQ AA ..." or CQ
// nnn ..." don't allow grid squares so are not longer. Here we align
// the added info at least after the longest CQ/QRZ message plus one
// space so that it can be stripped off algorithmically later.
//
int nmin = 46 + padding;
int s3 = message.indexOf (" ", nmin);
if (s3 < nmin) s3 = nmin; // always want at least the characters to position 45
s3 += 1; // convert the index into a character count
message = message.left(s3); // reduce trailing white space
charsAvail -= s3;
if (charsAvail > 4)
{
if (!countryWorkedBefore) // therefore not worked call either
if (!countryWorkedBefore) // therefore not worked call either
{
message += "!";
*bg = color_DXCC;
message += "!";
*bg = color_DXCC;
}
else
if (!callWorkedBefore) // but have worked the country
{
message += "~";
*bg = color_NewCall;
}
else
if (!callWorkedBefore) // but have worked the country
{
message += "~";
*bg = color_NewCall;
}
else
{
message += " "; // have worked this call before
*bg = color_CQ;
}
charsAvail -= 1;
{
message += " "; // have worked this call before
*bg = color_CQ;
}
charsAvail -= 1;
// do some obvious abbreviations
countryName.replace ("Islands", "Is.");
countryName.replace ("Island", "Is.");
countryName.replace ("North ", "N. ");
countryName.replace ("Northern ", "N. ");
countryName.replace ("South ", "S. ");
countryName.replace ("East ", "E. ");
countryName.replace ("Eastern ", "E. ");
countryName.replace ("West ", "W. ");
countryName.replace ("Western ", "W. ");
countryName.replace ("Central ", "C. ");
countryName.replace (" and ", " & ");
countryName.replace ("Republic", "Rep.");
countryName.replace ("United States", "U.S.A.");
countryName.replace ("Fed. Rep. of ", "");
countryName.replace ("French ", "Fr.");
countryName.replace ("Asiatic", "AS");
countryName.replace ("European", "EU");
countryName.replace ("African", "AF");
// do some obvious abbreviations
countryName.replace ("Islands", "Is.");
countryName.replace ("Island", "Is.");
countryName.replace ("North ", "N. ");
countryName.replace ("Northern ", "N. ");
countryName.replace ("South ", "S. ");
countryName.replace ("East ", "E. ");
countryName.replace ("Eastern ", "E. ");
countryName.replace ("West ", "W. ");
countryName.replace ("Western ", "W. ");
countryName.replace ("Central ", "C. ");
countryName.replace (" and ", " & ");
countryName.replace ("Republic", "Rep.");
countryName.replace ("United States", "U.S.A.");
countryName.replace ("Fed. Rep. of ", "");
countryName.replace ("French ", "Fr.");
countryName.replace ("Asiatic", "AS");
countryName.replace ("European", "EU");
countryName.replace ("African", "AF");
message += countryName;
message += countryName;
}
return message;
return message;
}
void DisplayText::displayDecodedText(DecodedText const& decodedText, QString const& myCall,