Commit Graph

95 Commits

Author SHA1 Message Date
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
Bill Somerville
b8e4517718 Improve performance of Fox and contest log view windows
This include inverting  the order of table view rows  so the newest is
at the top, without that the Qt MVC interactions when using a database
table based model is too slow and complex to manage.

The table views  now have sort by column capability  in the normal way
(click column  header to  reverse sort order)  for timely  logging and
non-disruption  of  Tx  starts  the  log  view  should  be  sorted  in
descending time order and scrolled to the last row added. Without that
Fox and  contest logging will work  but serious delays may  be invoked
that disrupt operation.
2018-12-06 05:41:16 +00:00
Bill Somerville
179e093262 Improve handling of uncaught exceptions by catching them early and displaying in a message box 2018-11-20 23:43:18 +00:00
Bill Somerville
ff7c2743b4 Open database outside of multi-settings loop to avoid reconnection warnings 2018-11-12 01:46:16 +00:00
Bill Somerville
947b429723 Start implememntation of database based Fox log model and a new Fox log window widget
This change incorporates a reorganization of the GUI code with
widgets, validators, models, and item delegates being moved to
sub-directories.

Relax  the   requirements  of   the  ForeignKeyDelegate   and  related
CandidateKeyFilter classes to  allow them to work  with constant model
pointers for both referenced and referencing models.
2018-11-07 17:49:45 +00:00
Bill Somerville
873b1d1c43 Updated decode highlighting and LotW user's data file management
Includes a new settings facility  with the highlighting being contrled
by a new model class and a  modified QListView to display the data for
editing. Edits  include enable and  disable check boxes,  a contextual
pop-up menu to adjust backkground and foreground colours.

Still   to   be   implemented    are   priorities   for   highlighting
categories. This  will be adjustable  by drag  and drop in  the Colors
settings panel, it is already implemented by the priority order has no
effect on highlighting of decodes yet.

The LotW  users data file fetch  and time since user's  last upload is
now controled from the settings dialog.

This change also drops support for Qt versions before 5.5 so that many
workarounds for earlier versions can be removed.

Debug trace is slightly modified to make better use of the Qt built in
facilities to format and synchronize cross thread messaging.
2018-10-17 00:26:04 +01:00
Bill Somerville
3d5b07173c User guide and help text updates
Details  of --config  command line  option. Note  that low  confidence
decodes '?'  are not spotted and  more generic text for  --help command
line option now derived from CMakeLists description strings.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8005 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-08-05 13:29:55 +00:00
Bill Somerville
b4ea0194f1 Support for a startup configuration
The --config <configuration> (-c for short) command line option can be
used  to  select  an  existing  configuration  at  start  up.  If  the
configuration does not exist the last configuration used is selected.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7567 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-02-17 12:32:47 +00:00
Bill Somerville
bae3b94fd6 Build a cache of allowed SSL exceptions and use them on future network requests
The   class  NetworkAccessManager   sub-classes  QNetworkAccessManager
adding  a  message  box  to  ask   the  user  if  SSL  errors  may  be
ignored. Ignored errors  are ignored in future server  replies so that
the user is not asked about he same peer certificate chain repeatedly.
The cache is currently per process only and not persistent.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7361 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-04 14:17:01 +00:00
Bill Somerville
e61f5fa38f Make it possible to ignore SSL errors from network communications
It seems  that the OpenSSL version  on some systems is  not capable of
correctly handling  intermediate certificates  for some  sites.  These
sites include SourceForge which we  use for serving sample files. This
change adds  a global handler for  QNAM SSL errors with  the option to
ignore them at the users discretion.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7359 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-12-04 11:17:34 +00:00
Bill Somerville
d8a2c1239c Make the splash screen less annoying with a permanent disable check box
The  change also  includes  a new  MultiSettings  feature that  allows
settings keys common to all configurations.  The splash screen disable
is the first of those to be used.

The MultiSettings  class has  been made  safer to  use by  ensuring it
saves  and re-enables  the current  QSettings group  when doing  multi
settings actions. This allows  access to common, across configuration,
items  while  within a  normal  settings  group without  breaking  the
MultiSettings internal implementation.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7073 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-09-11 01:09:28 +00:00
Steven Franke
ca19e977c0 Add early termination code to the msk144 long-message decoder. Remove references to Radford Neal's ldpc code, which served us well but is no longer needed.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7051 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-09-01 21:50:52 +00:00
Bill Somerville
3975e79c30 Ensure that splash screen is raosed to the top after startup
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7029 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-08-13 23:33:35 +00:00
Bill Somerville
cc178ab6fa Create the splash screen before assigning the application name
Even  though the  splash screen  does  not have  a title  it seems  to
interfere  with JTAlert  which  enumerates window  titles to  identify
WSJT-X instances. I'm not sure why  this is necessary, but if it helps
it should be benign.

Ensure that the  splash screen is hidden before any  message boxes are
shown, this is essential  at startup if there is a  stale lock file or
rig control error.

Be far less aggressive about bringing  the splash screen to the top of
the application window  stack. This may cause the splash  screen to be
obscured on some platforms.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7025 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-08-12 16:12:52 +00:00