Commit Graph

108 Commits

Author SHA1 Message Date
Bill Somerville fdd69583ab
Use C++ classic locale for uses outside of Qt 2021-03-28 23:29:57 +01:00
Bill Somerville f31a4efbee
Avoid tight loop on lock file access failure 2021-02-14 13:14:37 +00:00
Bill Somerville 70802f4574
Set C++ global locale as well as C one, so wide to narrow works 2021-01-27 23:24:07 +00:00
Bill Somerville 3967660297
Improved handling of exceptions and logging 2021-01-27 18:02:01 +00:00
Bill Somerville 3352220715
Clean up logging initialization and setup 2020-11-28 13:49:35 +00:00
Bill Somerville ed465e11f2
More Debian 9 backwards compatibility changes (Qt 5.7) 2020-11-20 21:05:59 +00:00
Bill Somerville f44b83038f
Revert "Temporarily remove global Boost::log loggers"
This reverts commit 5a9b56bfc0.
2020-11-13 22:24:34 +00:00
Bill Somerville 8c5e362830
Revert "Another approach to track down a segmentation fault"
This reverts commit 403528e436.
2020-11-13 22:23:58 +00:00
Bill Somerville 403528e436
Another approach to track down a segmentation fault 2020-11-13 19:32:56 +00:00
Bill Somerville 5a9b56bfc0
Temporarily remove global Boost::log loggers 2020-11-13 16:04:17 +00:00
Bill Somerville 9ea903b259
Merge branch 'develop' into feat-boost-log 2020-11-12 13:36:25 +00:00
Bill Somerville ab780a324a
Testing options
Two new environment variables to control special testing behaviour:

    * WSJT_TX_BOTH - set to "1" to force transmission on both periods.

    * WSJT_REVERSE_DOPPLER - set to "1" to transpose Tx and Rx Doppler
      corrections. Use this to test Doppler tracking on a terrestrial
      link.
2020-11-06 18:28:59 +00:00
Bill Somerville b12e9004bb
Make settings trace output human readable 2020-10-11 00:03:10 +01:00
Bill Somerville c551b93cc7
Merge branch 'develop' into feat-boost-log 2020-10-10 14:07:22 +01:00
Bill Somerville 5f2ba00bb8
Add Version Info resources to Windows executables where needed.
Version information  and more  in the  Windows resources  for main
    applications, installer and un-installer.

    Update  CMake   policies  for  new  project()   command,  and  DEB
    dependency changes

    Support  older  libgfortran  packages,  and  other  Linux  package
    dependencies.

    Use new project description file in Debian packaging.

    Linux packaging dependency adjustments  for Debian style packages,
    including  a machine  readable  Debian  copyright format,  project
    description in separate file for  CPack compatibility, and use for
    DEB packaging.

    Configure check for need to link libm Standard C Math Library.

    CMake compatibility for <3.17.
2020-10-10 13:38:15 +01:00
Bill Somerville b9dec43564
Revert "Temporary diagnostic"
This reverts commit f2017ba105.
2020-10-02 20:55:49 +01:00
Bill Somerville e8eadcf0a0
Revert "More temporary diags"
This reverts commit 467c52eb31.
2020-10-02 20:55:44 +01:00
Bill Somerville 5ff39f65ab
Revert "Even more diags"
This reverts commit 37e5b52d40.
2020-10-02 20:55:31 +01:00
Bill Somerville 37e5b52d40
Even more diags 2020-10-02 16:54:38 +01:00
Bill Somerville 467c52eb31
More temporary diags 2020-10-02 15:43:27 +01:00
Bill Somerville f2017ba105
Temporary diagnostic 2020-10-02 15:32:06 +01:00
Bill Somerville d7eac1803d
Move global loggers to the global namespace
Avoiding namespace scope globals as initialization order is less well
defined.
2020-10-01 23:32:33 +01:00
Bill Somerville c5f4c1557b
Merge branch 'develop' into feat-boost-log 2020-09-28 13:06:33 +01:00
Bill Somerville fe4c2b59ee
Revert to narrow character logging 2020-09-27 16:52:19 +01:00
Bill Somerville c572ce8b66
Avoid showing a message box recursively 2020-09-27 14:06:22 +01:00
Bill Somerville 030c8868ab
Dump current settings to trace log at startup 2020-09-26 15:14:51 +01:00
Bill Somerville 1d43ddd38b
Use wide character logging for efficiency as most o/p is QString 2020-09-26 14:56:16 +01:00
Bill Somerville e83b91de95
Move ExceptionCatchingApplication class to its own header 2020-09-24 18:32:58 +01:00
Bill Somerville f66788691d
Set up for Boost logging in WSJT-X
uses a  settings file to  define log  sink back-ends, by  default uses
:/wsjtx_log_config.ini  from  the  resources file-system.   Users  may
override  by placing  their own  wsjtx_log_config.ini into  the WSJT-X
config location. The settings file format is as described in the Boost
log
documentation (https://www.boost.org/doc/libs/1_74_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup.settings_file)
with the additional feature that  allows some pre-defined variables to
be expanded. The  predefined variables refer to  standard locations in
the file-system,  and allow  log files  and rotation  target directory
paths to be specified. The pre-defined variables are:

   DesktopLocation
   DocumentsLocation
   TempLocation
   HomeLocation
   CacheLocation
   GenericCacheLocation
   GenericDataLocation
   AppDataLocation

and  must  be   used  enclosed  on  braces  and  preceded   by  a  '$'
character. E.g. to define the pattern for a sink's log file:

   FileName="${AppLocalDataLocation}/wsjtx_syslog.log"

this would place the log file wsjtx_syslog.log in the WSJT-X log files
directory, on all platforms.
2020-09-18 21:23:11 +01:00
Bill Somerville b420c9f6d3
Basic support for using the Boost log library 2020-09-18 21:12:53 +01:00
Bill Somerville 1b36183057
Reduce debug message length 2020-08-16 03:01:16 +01:00
Bill Somerville 02e19b687f
Status message to report approximate # of dropped Rx audio frames
This is  a first cut  at this to  evaluate buffer size  adjustments on
supported platforms. A final version might limit status bar reports to
>1000 dropped frames or similar.
2020-08-08 17:12:48 +01:00
Bill Somerville 9c22eb321d
Merge branch 'develop' into feat-fst280 2020-07-26 16:20:11 +01:00
Bill Somerville 7bb5a8e009
Merge branch 'develop' into feat-psk-reporter-re-work 2020-07-26 15:52:39 +01:00
Bill Somerville 9e6d31dff3
Debug print of shared memory size 2020-07-18 18:49:20 +01:00
Bill Somerville 0de538c723
Close orphaned jt9 sub-process before restarting 2020-07-18 12:31:35 +01:00
Bill Somerville fe28f48cce
Close orphaned jt9 sub-process before restarting 2020-07-18 12:17:21 +01:00
Bill Somerville a02535d655
Ensure configurations switches start with the right style sheet 2020-06-26 11:39:16 +01:00
Bill Somerville b48b23450d
First iteration of optional TCP/IP client for PSK Reporter 2020-06-21 01:36:30 +01:00
Bill Somerville 9c22b5c3ed
Qt v5.15 compatibility 2020-06-13 16:04:41 +01:00
Bill Somerville 0138bb9a75
Tidy up l10n and allow for override to 'en' with no translations
Passing `--language en', '-l en-US', or `-l en_US` now takes a special
action to  not load  any translations using  the current  locale. This
allows the current system UI language not to influence an translations
loaded via the command line override when the native en-US is wanted.
2020-06-01 11:12:49 +01:00
Bill Somerville 7425f13abc
Add some polish to i18n
package Qt translations so that standard buttons etc. get l10n.
2020-05-25 22:44:05 +01:00
Bill Somerville 9de87fb137
Load language translations only when matching the primary language 2020-05-25 15:02:16 +01:00
Bill Somerville 4d5c865c61
Hierarchical translations lookup
Load  a base  language translation  file  if found.   E.g.  if  locale
language   is   es-AR  then   wsjtx_es.qm   will   be  loaded   before
wsjtx_es_AR.qm. this  allows partial translations for  languages where
variants  or  dialects only  require  some  translated strings  to  be
different from the  base language translations. the aim  is to greatly
simplify the work  of translators, particularly when  doing updates to
translations.
2020-05-19 15:48:48 +01:00
Bill Somerville e43cb59bd0
More translatable strings in the UI 2020-05-19 12:28:58 +01:00
Bill Somerville 9501cdf271
Sorting out how to test translation files
Windows makes this more complex than necessary.

On  all  systems  the  packaged  translation  file  in  the  resources
:/Translations  directory wsjtx_<lang>.qm  will  be  loaded if  <lang>
matches the  current system locale. Otherwise  the native translatable
strings will be used (en_US is assumed for the native language).

On  all systems  a wsjtx_<lang>.qm  compiled translation  file in  the
current working directory will be loaded if <lang> matches the current
system locale  language and  country (wsjtx_en_GB.qm  for a  locale of
en-GB).

On non-Windows systems  the locale used above can be  set for just the
wsjtx instance being tested by  setting the LANG environment variable,
e.g.

LANG=ca-ES wsjtx

On  Windows  systems  the  current  locale  can  only  be  changed  by
installing  the  relevant  Windows  Language Pack,  selecting  the  UI
language     either      as     the      default     or      as     an
override (Set-WinUILanguageOverride  -Language ca-ES) and  the signing
out and back in.

The two translations file sources above  cam be overridden using a new
command line option:

[-l | -language] <language-code>[-<country-code>]

e.g. -language  ca-ES which will  load the first  readable translation
file as  found in the following  order: :/Translations/wsjtx_ca_ES.qm,
:/Translation/wsjtx_ca.qm,  :/Translations/wsjtx.qm. This  search will
be  preceded  by  the  normal translation  file  load  from  resources
described above. Following  that and the normal load  from the current
working directory described above, the first readable translation file
as    found    in    the   following    order:    $cwd/wsjtx_ca_ES.qm,
$cwd/wsjtx_ca.qm, $cwd/wsjtx.qm.

This allows Windows  testers to change the WSJT-X  UI language without
having to  change the system  UI language and installing  the relevant
language  pack.  Note  that using  this  method will  only change  the
translated  strings,  number  and  date formatting  will  not  change.
Because of this it should only be used for basic testing.
2020-05-19 00:14:10 +01:00
Bill Somerville 46638f6f07
Add shared memory synchronization to make access safe 2020-03-15 00:25:35 +00:00
Bill Somerville 45b12e6028
Preparation for UI i18n
Re-enabling the WSJT-X i18n  facilities. This allows translation files
to  be created  for languages  that are  automatically used  to lookup
translatable strings. To enable a  new language the language name must
be added to the CMakeLists.txt LANGUAGES list variable in BCP47 format
(i.e. en_US,  en_GB, pt_PT, ...). Do  one build with the  CMake option
UPDATE_TRANSLATIONS enabled  (do not  leave it enabled  as there  is a
danger of loosing existing translated texts), that will create a fresh
translations/wsjtx_<lang>.ts file which  should be immediately checked
in with the  CMakeLists.txt change. The .ts should then  be updated by
the translator using  the Qt Linguist tool to  add translations. Check
in the  updated .ts file  to complete the initial  translation process
for that language.

To  aid translators  their WIP  .ts file  may be  tested by  releasing
(using the  lrelease tool or  from the Linguist  menu) a .qm  file and
placing  that  .qm  file  in the  current  directory  before  starting
WSJT-X. The translations will be used if the system locale matches the
file name.   If the system  locale does not  match the file  name; the
language may be  overridden by setting the  LANG environment variable.
For  example if  a wsjtx_pt_PT.qm  file  is in  the current  directory
WSJT-X will use it for  translation lookups, regardless of the current
system locale setting, if the LANG variable is set to pt_PT or pt-PT.

On MS Windows from a command prompt:

 set LANG=pt_PT
 C:\WSJT\wsjtx\bin\wsjtx

elsewhere:

 LANG=pt_PT wsjtx
2019-06-06 12:56:25 +01:00
Bill Somerville 19c46774b4
Moving toward multiplier and dupe detection for contest modes
There's not  much to show  for this so far  but some of  the necessary
infrastructure is in place.
2019-05-30 22:20:09 +01:00
Joe Taylor e9a999cda1 Use the "TU; ..." message when starting another FT4 QSO almost right away. 2019-03-12 11:09:49 -04:00