Commit Graph

16 Commits

Author SHA1 Message Date
Bill Somerville 4e07c9abc1
Qt v5.15 compatibility 2020-06-21 20:35:26 +01:00
Bill Somerville 32c36f566d
Use DB date time field item delegate to imbue editing in log windows 2019-12-08 18:37:35 +00:00
Bill Somerville 5e769f3e85
Log FT8 DXpedition mode dupe contacts
Not logging dupes seems to cuase  problems with QSL matching where the
Hound  fails  to   log  when  an  RR73  message   is  not  succesfully
received. By logging dupes a later retry  by a Hound to complete a QSO
will be recorded in the Fox's log.
2019-11-18 16:45:16 +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 b79cf0df99 Improvements to accessibiity
Where  tool  tips are  defined  in  rich  text, equivalent  pain  test
accessible descriptions have been added  so that screen readers do not
announce HTML tags.

Refactored date time  delegates to use a simpler default  editor via a
default  item editor  factory for  QDateTime values,  the editor  is a
standard QDateTimeEdit with a format that includes seconds and renders
assuming the time is UTC.

Modified the Cabrillo log and Fox log database table models to provide
QDateTime items  for the edit role  of date time fields,  and formated
date time strings including seconds and assumed as UTC for the display
role.
2019-05-03 10:21:50 +01:00
Bill Somerville 12b6efb189 Make sure database models are synchronized before using QSqlTableModel::rowCount()
This is necessary  as the cached model will not  reflect a correct row
count if there are un-fetched rows.
2019-01-21 13:35:18 +00:00
Bill Somerville 12299957d7 Add Fox log ADIF export to the Fox Log window log table contextual pop up menu 2018-12-30 12:35:41 +00: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 d5c59e51c1 Ensure that pending log table edits do not lock out adding new QSOs
Pending edits are  now discarded when adding a new  log contest or Fox
log record.  Also switch to commit  on fields change edit  strategy so
there should be no pending edits now anyway.
2018-12-02 02:30:32 +00:00
Bill Somerville db51726da2 Move Fox log reset action to Fox log window context menu and allow deletes of QSOs
Move to OnRowChange edit strategy for log tables so that deletes from
view can be implemented cleanly.

Improve layout of log view tables by resizing to contents.
2018-11-25 22:19:41 +00:00
Bill Somerville c81b3c8e65 Validate contest QSO details before allowing logging
Basic  validation, must  have  non-empty exchange  sent and  received.
Abstracted log view window widget  behaviour into a base class. Turned
on  auto  resize  to  row  height in  log  view  windows  and  enabled
alternating colours. Convert  empty fields to NULL  when inserting new
log table  rows to signify missing  data. Trap insert row  errors when
adding  to contest  log table  so  that logging  can be  held back  if
constraints are not met. Re-factored  log QSO processing to try insert
row into log table  first and pop up a message  box if constraints are
not met, this pops  up the Log QSO window in case  it was initiated by
an auto log event.
2018-11-23 01:18:39 +00:00
Bill Somerville 018a1218ce Fix swapped sent and received reports in Fox log window 2018-11-12 18:26:05 +00:00
Bill Somerville c2ec277cfc Fix assert when resetting empty Fox log table 2018-11-12 04:00:55 +00:00
Bill Somerville 0d6f6612d7 Improved FoxLog model, has dupe check query and better error checking
Now uses factored out helpers in qt_db_helpers.hpp .
2018-11-12 02:06:44 +00:00
Bill Somerville f9151ee3f2 Fix typos that break the build on non-Windows machines 2018-11-07 23:55:15 +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