Merge branch 'develop' into feat-map65-integration

This commit is contained in:
Bill Somerville 2021-05-30 14:45:56 +01:00
commit a3c2eec1cd
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
6 changed files with 819 additions and 723 deletions

37
NEWS
View File

@ -12,6 +12,43 @@
Copyright 2001 - 2021 by Joe Taylor, K1JT. Copyright 2001 - 2021 by Joe Taylor, K1JT.
Release: WSJT-X 2.4.0
May 24, 2021
---------------------
WSJT-X 2.4.0 General Availability Release adds new Q65 mode
functionality and decoder optimizations and repairs several defects
and regressions discovered in the RC4 and v2.3.1 GA releases. Since
the release candidates documented below this final release includes
the following enhancements and defect repairs.
- On MS Windows WSJT-X now ships with a DLL version of the Hamlib
library, specifically Hamlib version 4.2. This should allow Hamlib
bug fixes to resolved by the user replacing the DLL with an updated
version.
- Repair a defect with own call decode highlighting when callsigns
with a common root are decoded.
- Q65 message averaging correctly disabled as be menu option.
- Repair a regression with missing timestamps in AlL.TXT for the
MSK144 mode.
- Repair a defect in the selection of working frequencies matching
the current band and mode combination.
- WSPR band hopping mode now generates a tune up tone for bands where
it is scheduled to transmit.
- Repair a long standing defect per band tune and Tx power level
memories.
- More flexibility for inputting calls into the DX Call field,
leading and trailing white space characters are allowed but
ignored.
Release: WSJT-X 2.4.0-rc4 Release: WSJT-X 2.4.0-rc4
Mar 26, 2021 Mar 26, 2021
------------------------- -------------------------

View File

@ -12,6 +12,43 @@
Copyright 2001 - 2021 by Joe Taylor, K1JT. Copyright 2001 - 2021 by Joe Taylor, K1JT.
Release: WSJT-X 2.4.0
May 24, 2021
---------------------
WSJT-X 2.4.0 General Availability Release adds new Q65 mode
functionality and decoder optimizations and repairs several defects
and regressions discovered in the RC4 and v2.3.1 GA releases. Since
the release candidates documented below this final release includes
the following enhancements and defect repairs.
- On MS Windows WSJT-X now ships with a DLL version of the Hamlib
library, specifically Hamlib version 4.2. This should allow Hamlib
bug fixes to resolved by the user replacing the DLL with an updated
version.
- Repair a defect with own call decode highlighting when callsigns
with a common root are decoded.
- Q65 message averaging correctly disabled as be menu option.
- Repair a regression with missing timestamps in AlL.TXT for the
MSK144 mode.
- Repair a defect in the selection of working frequencies matching
the current band and mode combination.
- WSPR band hopping mode now generates a tune up tone for bands where
it is scheduled to transmit.
- Repair a long standing defect per band tune and Tx power level
memories.
- More flexibility for inputting calls into the DX Call field,
leading and trailing white space characters are allowed but
ignored.
Release: WSJT-X 2.4.0-rc4 Release: WSJT-X 2.4.0-rc4
Mar 26, 2021 Mar 26, 2021
------------------------- -------------------------

1420
cty.dat

File diff suppressed because it is too large Load Diff

View File

@ -18,13 +18,13 @@ Here is an overview list, details are filled out below:
* MSYS2 *nix like command line environment * MSYS2 *nix like command line environment
* Hamlib rig control library * Hamlib rig control library
* Pkg Config Lite * Pkg Config Lite
* Boost C++ libraries * Boost C++ libraries (see separate document)
* portaudio library (used by map65) * portaudio library (used by map65)
Qt Framework Qt Framework
------------ ------------
At the time of writing I recommend using Qt v5.15.0 64-bit, v5.15.1 At the time of writing I recommend using Qt v5.15.2 64-bit, v5.15.1
has a defect that affects us so is best avoided. You need the MinGW has a defect that affects us so is best avoided. You need the MinGW
version as we do not support the MSVC version due to lack of a version as we do not support the MSVC version due to lack of a
suitable FOSS Fortran complier. To install the Qt developer SDK you suitable FOSS Fortran complier. To install the Qt developer SDK you
@ -32,7 +32,7 @@ should download the official Qt on-line installer, this allows you to
install one or more variants of the Qt SDK and also to maintain and install one or more variants of the Qt SDK and also to maintain and
update the installation at a later date. There are many versions and update the installation at a later date. There are many versions and
components within versions available, you only need the base 64-bit components within versions available, you only need the base 64-bit
MinGW framework for Qt v5.15.0 and the matching MinGW 8.1.0 64-bit MinGW framework for Qt v5.15.2 and the matching MinGW 8.1.0 64-bit
developer tools, other components can be unchecked within the on-line developer tools, other components can be unchecked within the on-line
installer. The default install location is C:\Qt which is fine, do installer. The default install location is C:\Qt which is fine, do
not attempt to move the location of the installed libraries if you not attempt to move the location of the installed libraries if you
@ -86,14 +86,10 @@ Hamlib from sources.
Hamlib Hamlib
------ ------
Currently we statically link Hamlib to avoid clashes with There is a fork of the official Hamlib project which we keep up to
pre-installed DLLs that may be older versions than we support. Once date with the official project master branch, we recommend building
Hamlib v1.4 is officially released and commonly available we will move from the 'integration' branch, or a suitable tag on that fork. The
to dynamic linking. Until then Hamlib must be built from fork is a git repository which can be cloned with this command:
sources. There is a fork of the official Hamlib project which we keep
up to date with the official project master branch, we recommend
building from the 'integration' branch of that fork. The fork is a git
repository which can be cloned with this command:
mkdir -p ~/src/sf/bsomervi mkdir -p ~/src/sf/bsomervi
cd !$ cd !$
@ -106,7 +102,7 @@ Qt. As you will build Hamlib again when there are updates you should
set up you MSYS2 command line environment for this. I use a set up you MSYS2 command line environment for this. I use a
$HOME/.bash_profile file containing these lines: $HOME/.bash_profile file containing these lines:
dll_paths_64bit=/c/Tools/libusb-1.0.23/MinGW64/dll dll_paths_64bit=/c/Tools/libusb-1.0.23/MinGW64/dll:$HOME/local/hamlib/mingw64/release/bin
export PATH=/c/Qt/Tools/mingw810_64/bin:$dll_paths_64bit:$PATH export PATH=/c/Qt/Tools/mingw810_64/bin:$dll_paths_64bit:$PATH
Test the amended ~/.bash_profile file by opening a new MSYS2 shell and Test the amended ~/.bash_profile file by opening a new MSYS2 shell and
@ -128,7 +124,7 @@ then change working directory to that build directory.
mkdir -p ~/build/hamlib/release mkdir -p ~/build/hamlib/release
cd !$ cd !$
~/src/sf/bsomervi/hamlib/configure --disable-shared \ ~/src/sf/bsomervi/hamlib/configure --enable-shared --disable-static \
--prefix=$HOME/local/hamlib/mingw64/release \ --prefix=$HOME/local/hamlib/mingw64/release \
CFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections -I/c/Tools/libusb-1.0.23/include" \ CFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections -I/c/Tools/libusb-1.0.23/include" \
CXXFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections" \ CXXFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections" \
@ -145,7 +141,7 @@ for tracking down issues:
mkdir -p ~/build/hamlib/debug mkdir -p ~/build/hamlib/debug
cd !$ cd !$
~/src/sf/bsomervi/hamlib/configure --disable-shared \ ~/src/sf/bsomervi/hamlib/configure --enable-shared --disable-static \
--prefix=$HOME/local/hamlib/mingw64/debug \ --prefix=$HOME/local/hamlib/mingw64/debug \
CFLAGS="-g -O0 -I/c/Tools/libusb-1.0.23/include" \ CFLAGS="-g -O0 -I/c/Tools/libusb-1.0.23/include" \
CXXFLAGS="-g -O0" \ CXXFLAGS="-g -O0" \
@ -161,6 +157,12 @@ To update the Hamlib sources to the latest commit and rebuild:
cd ~/build/hamlib/debug cd ~/build/hamlib/debug
make && make install make && make install
Note that the WSJT-X CMake build script will not detect an updated
build of the Hamlib DLL, so to avoid using an out-of-date Hamlib DLL
you should delete the Hamlib DLL (libhamlib-4.dll) from your WSJT-X
release configuration install tree before rebuilding and installing
WSJT-X after a Hamlib update.
Pkg Config Lite Pkg Config Lite
--------------- ---------------

View File

@ -2,14 +2,24 @@
CallsignValidator::CallsignValidator (QObject * parent, bool allow_compound) CallsignValidator::CallsignValidator (QObject * parent, bool allow_compound)
: QValidator {parent} : QValidator {parent}
, re_ {allow_compound ? R"(^[A-Za-z0-9/]+$)" : R"(^[A-Za-z0-9]+$)"} , re_ {allow_compound ? R"(^[A-Z0-9/]+$)" : R"(^[A-Z0-9]+$)"}
{ {
} }
auto CallsignValidator::validate (QString& input, int& pos) const -> State auto CallsignValidator::validate (QString& input, int& pos) const -> State
{ {
auto match = re_.match (input, 0, QRegularExpression::PartialPreferCompleteMatch);
input = input.toUpper (); input = input.toUpper ();
while (input.size () && input[0].isSpace ())
{
input.remove (0, 1);
if (pos > 0) --pos;
}
while (input.size () && input[input.size ()].isSpace ())
{
if (pos > input.size ()) --pos;
input.chop (1);
}
auto match = re_.match (input, 0, QRegularExpression::PartialPreferCompleteMatch);
if (match.hasMatch ()) return Acceptable; if (match.hasMatch ()) return Acceptable;
if (!input.size () || match.hasPartialMatch ()) return Intermediate; if (!input.size () || match.hasPartialMatch ()) return Intermediate;
pos = input.size (); pos = input.size ();

View File

@ -1034,9 +1034,9 @@ void MainWindow::not_GA_warning_message ()
// MessageBox::critical_message (this, // MessageBox::critical_message (this,
// "This is a pre-release version of WSJT-X 2.4.0 made\n" // "This is a pre-release version of WSJT-X 2.4.0 made\n"
// "available for testing purposes. By design it will\n" // "available for testing purposes. By design it will\n"
// "be nonfunctional after May 25, 2021."); // "be nonfunctional after May 30, 2021.");
// auto now = QDateTime::currentDateTimeUtc (); // auto now = QDateTime::currentDateTimeUtc ();
// if (now >= QDateTime {{2021, 5, 25}, {23, 59, 59, 999}, Qt::UTC}) { // if (now >= QDateTime {{2021, 5, 30}, {23, 59, 59, 999}, Qt::UTC}) {
// Q_EMIT finished (); // Q_EMIT finished ();
// } // }
} }