Merge branch 'release-2.2.0'
@ -58,7 +58,7 @@ set (PROJECT_MANUAL wsjtx-main)
|
||||
set (PROJECT_MANUAL_DIRECTORY_URL http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/)
|
||||
set (PROJECT_SAMPLES_URL http://downloads.sourceforge.net/project/wsjt/)
|
||||
set (PROJECT_SAMPLES_UPLOAD_DEST frs.sourceforge.net:/home/frs/project/wsjt/)
|
||||
set (PROJECT_SUMMARY_DESCRIPTION "${PROJECT_NAME} - Digital Modes for Weak Signal Communicaitons in Amateur Radio.")
|
||||
set (PROJECT_SUMMARY_DESCRIPTION "${PROJECT_NAME} - Digital Modes for Weak Signal Communications in Amateur Radio.")
|
||||
set (PROJECT_DESCRIPTION "${PROJECT_SUMMARY_DESCRIPTION}
|
||||
${PROJECT_NAME} is a computer program designed to facilitate basic amateur
|
||||
radio communication using very weak signals. The first four letters in
|
||||
@ -1094,8 +1094,10 @@ add_custom_target (etags COMMAND ${ETAGS} -o ${CMAKE_SOURCE_DIR}/TAGS -R ${sourc
|
||||
|
||||
# Qt i18n
|
||||
set (LANGUAGES
|
||||
en_GB
|
||||
pt_PT
|
||||
en_GB # English UK
|
||||
pt_PT # Poutuguese
|
||||
es_ES # Spanish
|
||||
ca # Catalan
|
||||
)
|
||||
foreach (lang_ ${LANGUAGES})
|
||||
file (TO_NATIVE_PATH translations/wsjtx_${lang_}.ts ts_)
|
||||
@ -1304,9 +1306,6 @@ target_link_libraries (jt4code wsjt_fort wsjt_cxx)
|
||||
add_executable (msk144code lib/msk144code.f90 wsjtx.rc)
|
||||
target_link_libraries (msk144code wsjt_fort wsjt_cxx)
|
||||
|
||||
add_executable (jt65 lib/jt65.f90 lib/jt65_test.f90 wsjtx.rc)
|
||||
target_link_libraries (jt65 wsjt_fort wsjt_cxx)
|
||||
|
||||
add_executable (ft8code lib/ft8/ft8code.f90 wsjtx.rc)
|
||||
target_link_libraries (ft8code wsjt_fort wsjt_cxx)
|
||||
|
||||
@ -1625,6 +1624,7 @@ if (NOT is_debug_build)
|
||||
${QT_PLUGINS_DIR}/audio
|
||||
${QT_PLUGINS_DIR}/accessible
|
||||
${QT_PLUGINS_DIR}/imageformats
|
||||
${QT_PLUGINS_DIR}/styles
|
||||
DESTINATION ${WSJT_PLUGIN_DESTINATION}
|
||||
CONFIGURATIONS Release MinSizeRel
|
||||
#COMPONENT runtime
|
||||
|
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>670</width>
|
||||
<height>617</height>
|
||||
<width>557</width>
|
||||
<height>561</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -559,7 +559,7 @@ quiet period when decoding is done.</string>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="currentText" stdset="0">
|
||||
<property name="currentText">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="insertPolicy">
|
||||
@ -929,7 +929,7 @@ a few, particularly some Kenwood rigs, require it).</string>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>How this program activates the PTT on your radio</string>
|
||||
<string>How this program activates the PTT on your radio?</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>PTT Method</string>
|
||||
@ -1021,7 +1021,7 @@ other hardware interface for PTT.</string>
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="currentText" stdset="0">
|
||||
<property name="currentText">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
@ -3108,13 +3108,13 @@ Right click for insert and delete options.</string>
|
||||
</connection>
|
||||
</connections>
|
||||
<buttongroups>
|
||||
<buttongroup name="split_mode_button_group"/>
|
||||
<buttongroup name="TX_audio_source_button_group"/>
|
||||
<buttongroup name="TX_mode_button_group"/>
|
||||
<buttongroup name="PTT_method_button_group"/>
|
||||
<buttongroup name="special_op_activity_button_group"/>
|
||||
<buttongroup name="CAT_handshake_button_group"/>
|
||||
<buttongroup name="TX_audio_source_button_group"/>
|
||||
<buttongroup name="special_op_activity_button_group"/>
|
||||
<buttongroup name="TX_mode_button_group"/>
|
||||
<buttongroup name="CAT_data_bits_button_group"/>
|
||||
<buttongroup name="PTT_method_button_group"/>
|
||||
<buttongroup name="CAT_stop_bits_button_group"/>
|
||||
<buttongroup name="split_mode_button_group"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
60
NEWS
@ -13,6 +13,66 @@
|
||||
Copyright 2001 - 2019 by Joe Taylor, K1JT.
|
||||
|
||||
|
||||
Release: WSJT-X 2.2.0-rc2
|
||||
May 25, 2020
|
||||
-------------------------
|
||||
|
||||
WSJT-X 2.2.0-rc2 is a release candidate for WSJT-X 2.2.0. The
|
||||
following bugs present in the -rc1 version have been fixed:
|
||||
|
||||
- Missing blank line between some decode sequences.
|
||||
- Improper functioning of "Start new period decodes at top".
|
||||
- Font selection caused crash on some macOS systems.
|
||||
- Mouse action in band selector box not right in some macOS systems.
|
||||
- Incorrect recall of Tx power setting in WSPR mode.
|
||||
- Many fixes to hamlib library and executables (rigctld, etc.).
|
||||
- Some regional settings did not allow WSJT-X to start.
|
||||
- Main window "looked like old Windows" in macOS.
|
||||
- Crash when "Ref Spec" is selected and no refspec.dat available.
|
||||
- Improper decoding of some FT4 messages with hashed "MyCall".
|
||||
- Crash after warning message about double-clicking in ISCAT mode.
|
||||
|
||||
In addition, we have made the following improvements:
|
||||
|
||||
- Updated some figures and text in User Guide.
|
||||
- Corrected some formatting issues in the pdf version of User Guide.
|
||||
- Added some new sample files.
|
||||
- Improved shape and position of "green goal post" in Wide Graph.
|
||||
- Significantly reduced the rate of false decodes in FT4 and FT8.
|
||||
- Allow FT4 to use NA VHF Contest message formats.
|
||||
- Hold Tx frequency no longer cleared when switching between modes.
|
||||
- Added capability for translations of the user interface into
|
||||
languages other than English. First working example (special
|
||||
thanks to Xavi Perez, EA3W!), is Catalan. Spanish will be next.
|
||||
- Performance improvements to decode highlighting via UDP messages.
|
||||
|
||||
And finally:
|
||||
|
||||
Increasing FT8 usage on the popular bands 40, 30, and 20m means that
|
||||
the default 3 kHz sub-bands are often wall-to-wall with signals.
|
||||
Overcrowding encourages some to turn on their amplifiers, which only
|
||||
makes things worse. We are trying to coordinate the suggested
|
||||
frequencies in WSJT-X with updated band plans being considered by
|
||||
IARU, ARRL, and other amateur radio societies.
|
||||
|
||||
On a trial basis, and in response to numerous suggestions from around
|
||||
the world, we have added a second set of suggested dial frequencies
|
||||
for FT8 on three HF bands and also on 6 meters. The new suggested dial
|
||||
frequencies are 7.071, 10.133, 14.071, and 50.310 MHz. These
|
||||
frequencies will appear in your drop-down band-selector list after you
|
||||
go to the "Settings | Frequencies" tab, right-click on the frequency
|
||||
table, and select "Reset". Alternatively, you can add the new FT8
|
||||
frequencies manually.
|
||||
|
||||
When the conventional FT8 sub-band on 6, 20, 30, or 40 m seems too
|
||||
full, please try moving your dial frequency down 3 kHz! Be aware that
|
||||
as currently implemented, WSJT-X will set your dial to the lowest
|
||||
frequency for the selected mode and band, when you switch bands.
|
||||
|
||||
See the next section for a list of other program improvements since
|
||||
WSJT-X 2.1.2.
|
||||
|
||||
|
||||
Release: WSJT-X 2.2.0-rc1
|
||||
May 10, 2020
|
||||
-------------------------
|
||||
|
@ -447,16 +447,20 @@
|
||||
* The server may send this message at any time. The message
|
||||
* specifies the background and foreground color that will be
|
||||
* used to highlight the specified callsign in the decoded
|
||||
* messages printed in the Band Activity panel. The WSJT-X
|
||||
* messages printed in the Band Activity panel. The WSJT-X
|
||||
* clients maintain a list of such instructions and apply them to
|
||||
* all decoded messages in the band activity window. To clear
|
||||
* highlighting send an invalid QColor value for either or both
|
||||
* of the background and foreground fields.
|
||||
* and cancel highlighting send an invalid QColor value for
|
||||
* either or both of the background and foreground fields. When
|
||||
* using this mode the total number of callsign highlighting
|
||||
* requests should be limited otherwise the performance of WSJT-X
|
||||
* decoding may be impacted. A rough rule of thumb might be too
|
||||
* limit the number of active highlighting requests to no more
|
||||
* than 100.
|
||||
*
|
||||
* The "Highlight last" field allows the sender to request that
|
||||
* the last instance only instead of all instances of the
|
||||
* specified call be highlighted or have it's highlighting
|
||||
* cleared.
|
||||
* all instances of "Callsign" in the last period only, instead
|
||||
* of all instances in all periods, be highlighted.
|
||||
*
|
||||
*
|
||||
* SwitchConfiguration In 14 quint32
|
||||
|
@ -12,6 +12,65 @@
|
||||
|
||||
Copyright 2001 - 2020 by Joe Taylor, K1JT.
|
||||
|
||||
Release: WSJT-X 2.2.0-rc2
|
||||
May 25, 2020
|
||||
-------------------------
|
||||
|
||||
WSJT-X 2.2.0-rc2 is a release candidate for WSJT-X 2.2.0. The
|
||||
following bugs present in the -rc1 version have been fixed:
|
||||
|
||||
- Missing blank line between some decode sequences.
|
||||
- Improper functioning of "Start new period decodes at top".
|
||||
- Font selection caused crash on some macOS systems.
|
||||
- Mouse action in band selector box not right in some macOS systems.
|
||||
- Incorrect recall of Tx power setting in WSPR mode.
|
||||
- Many fixes to hamlib library and executables (rigctld, etc.).
|
||||
- Some regional settings did not allow WSJT-X to start.
|
||||
- Main window "looked like old Windows" in macOS.
|
||||
- Crash when "Ref Spec" is selected and no refspec.dat available.
|
||||
- Improper decoding of some FT4 messages with hashed "MyCall".
|
||||
- Crash after warning message about double-clicking in ISCAT mode.
|
||||
|
||||
In addition, we have made the following improvements:
|
||||
|
||||
- Updated some figures and text in User Guide.
|
||||
- Corrected some formatting issues in the pdf version of User Guide.
|
||||
- Added some new sample files.
|
||||
- Improved shape and position of "green goal post" in Wide Graph.
|
||||
- Significantly reduced the rate of false decodes in FT4 and FT8.
|
||||
- Allow FT4 to use NA VHF Contest message formats.
|
||||
- Hold Tx frequency no longer cleared when switching between modes.
|
||||
- Added capability for translations of the user interface into
|
||||
languages other than English. First working example (special
|
||||
thanks to Xavi Perez, EA3W!), is Catalan. Spanish will be next.
|
||||
- Performance improvements to decode highlighting via UDP messages.
|
||||
|
||||
And finally:
|
||||
|
||||
Increasing FT8 usage on the popular bands 40, 30, and 20m means that
|
||||
the default 3 kHz sub-bands are often wall-to-wall with signals.
|
||||
Overcrowding encourages some to turn on their amplifiers, which only
|
||||
makes things worse. We are trying to coordinate the suggested
|
||||
frequencies in WSJT-X with updated band plans being considered by
|
||||
IARU, ARRL, and other amateur radio societies.
|
||||
|
||||
On a trial basis, and in response to numerous suggestions from around
|
||||
the world, we have added a second set of suggested dial frequencies
|
||||
for FT8 on three HF bands and also on 6 meters. The new suggested dial
|
||||
frequencies are 7.071, 10.133, 14.071, and 50.310 MHz. These
|
||||
frequencies will appear in your drop-down band-selector list after you
|
||||
go to the "Settings | Frequencies" tab, right-click on the frequency
|
||||
table, and select "Reset". Alternatively, you can add the new FT8
|
||||
frequencies manually.
|
||||
|
||||
When the conventional FT8 sub-band on 6, 20, 30, or 40 m seems too
|
||||
full, please try moving your dial frequency down 3 kHz! Be aware that
|
||||
as currently implemented, WSJT-X will set your dial to the lowest
|
||||
frequency for the selected mode and band, when you switch bands.
|
||||
|
||||
See the next section for a list of other program improvements since
|
||||
WSJT-X 2.1.2.
|
||||
|
||||
|
||||
Release: WSJT-X 2.2.0-rc1
|
||||
May 10, 2020
|
||||
|
@ -2,5 +2,5 @@
|
||||
set (WSJTX_VERSION_MAJOR 2)
|
||||
set (WSJTX_VERSION_MINOR 2)
|
||||
set (WSJTX_VERSION_PATCH 0)
|
||||
set (WSJTX_RC 1) # release candidate number, comment out or zero for development versions
|
||||
set (WSJTX_RC 2) # release candidate number, comment out or zero for development versions
|
||||
set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build
|
||||
|
@ -125,7 +125,7 @@ set (UG_IMGS
|
||||
images/VHF_controls.png
|
||||
images/view-menu.png
|
||||
images/wide-graph-controls.png
|
||||
|
||||
images/Windows_Dark.png
|
||||
)
|
||||
|
||||
find_program (ASCIIDOCTOR_EXECUTABLE NAMES asciidoctor)
|
||||
|
@ -29,7 +29,7 @@ the following copyright notice prominently:
|
||||
*The algorithms, source code, look-and-feel of _{prog}_ and related
|
||||
programs, and protocol specifications for the modes FSK441, FT4, FT8,
|
||||
JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, and MSK144 are Copyright (C)
|
||||
2001-2019 by one or more of the following authors: Joseph Taylor,
|
||||
2001-2020 by one or more of the following authors: Joseph Taylor,
|
||||
K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo,
|
||||
IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR;
|
||||
Philip Karn, KA9Q; and other members of the WSJT Development Group.*
|
||||
|
@ -68,6 +68,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes.
|
||||
:fmt_k5cm: http://www.k5cm.com/[FMT Event Info]
|
||||
:fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup]
|
||||
:ft4_protocol: http://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting]
|
||||
:ft4_ft8_protocols: http://physics.princeton.edu/pulsar/k1jt/FT4_FT8_QEX.pdf[The FT4 and FT8 Communication Protocols]
|
||||
:ft8_tips: http://www.g4ifb.com/FT8_Hinson_tips_for_HF_DXers.pdf[FT8 Operating Guide]
|
||||
:ft8_DXped: http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode]
|
||||
:gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License]
|
||||
@ -75,7 +76,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes.
|
||||
:hrd: http://www.hrdsoftwarellc.com/[Ham Radio Deluxe]
|
||||
:jt4eme: http://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation]
|
||||
:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX]
|
||||
:jtalert: http://hamapps.com/[JT-Alert]
|
||||
:jtalert: http://hamapps.com/[JTAlert]
|
||||
:launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's]
|
||||
:log4om: http://www.log4om.com[Log4OM]
|
||||
:lunarEchoes: http://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX]
|
||||
|
@ -1,19 +1,21 @@
|
||||
// Status=review
|
||||
|
||||
The _WSJT_ project was started in 2001. Since 2005 it has been an
|
||||
Open Source project, and it now includes programs _WSJT_, _MAP65_,
|
||||
_WSPR_, _WSJT-X_, and _WSPR-X_. All code is licensed under the
|
||||
GNU Public License (GPL). Many users of these programs, too numerous
|
||||
to mention here individually, have contributed suggestions and advice
|
||||
that have greatly aided the development of _WSJT_ and its sister
|
||||
programs.
|
||||
The _WSJT_ project was started by *K1JT* in 2001. Since 2005 it has
|
||||
been an Open Source project, which now includes the programs _WSJT_,
|
||||
_MAP65_, _WSPR_, _WSJT-X_, and _WSPR-X_. *G4WJS* (since 2013) and
|
||||
*K9AN* (since 2015) have made major contributions to _WSJT-X_.
|
||||
Together with K1JT they now form the core development team.
|
||||
|
||||
For _WSJT-X_ in particular, we acknowledge contributions from *AC6SL,
|
||||
AE4JY, DJ0OT, G3WDG, G4KLA, G4WJS, IV3NWV, IW3RAB, K3WYC, K9AN,
|
||||
KA6MAL, KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF,
|
||||
VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB*. Each of these amateurs has helped to
|
||||
bring the program’s design, code, testing, and/or documentation to
|
||||
its present state.
|
||||
All code in the _WSJT_ project is licensed under the GNU Public
|
||||
License (GPL). Many users of these programs, too numerous to mention
|
||||
here individually, have contributed suggestions and advice that have
|
||||
greatly aided the development of _WSJT_ and its sister programs. For
|
||||
_WSJT-X_ in particular, we acknowledge contributions from *AC6SL,
|
||||
AE4JY, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL, KA9Q,
|
||||
KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF, VK4BDJ,
|
||||
VK7MO, W4TI, W4TV, and W9MDB*. Each of these amateurs has helped to
|
||||
bring the program’s design, code, testing, and/or documentation to its
|
||||
present state.
|
||||
|
||||
Most of the color palettes for the _WSJT-X_ waterfall were copied from
|
||||
the excellent, well documented, open-source program _fldigi_, by *W1HKJ*
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Status=review The following controls appear just under the decoded
|
||||
The following controls appear just under the decoded
|
||||
text windows on the main screen. Some controls appear only in certain
|
||||
operating modes.
|
||||
|
||||
|
@ -20,11 +20,18 @@ image::file-menu.png[align="left",alt="File Menu"]
|
||||
==== Configuration Menu
|
||||
image::config-menu.png[align="left",alt="File Menu"]
|
||||
|
||||
Many users prefer to create and use entries on the *Configurations*
|
||||
menu for switching between modes. Simply *Clone* the *Default* entry,
|
||||
*Rename* it as desired, and then make all desired settings for that
|
||||
configuration. These settings will be restored whenever you select
|
||||
that configuration.
|
||||
Most users of more than one mode prefer to create and use entries on
|
||||
the *Configurations* menu for switching between modes. You can
|
||||
*Clone* the configuration currently in use, *Rename* the clone as
|
||||
desired, and then make all desired settings for the new configuration.
|
||||
The easiest way is to start with a working setup for some mode, say
|
||||
*FT8*. *Clone* it, then select *Configurations | FT8 - Copy | Rename
|
||||
...*, enter a new name, say *FT4*, and click *OK*. Then select the
|
||||
new name from the *Configurations* menu and choose *Switch To*. When
|
||||
the new configuration comes up you can change any desired settings:
|
||||
for example, select *FT4* from the *Mode* menu. Configurations save
|
||||
all settings that are normally restored after a program restart,
|
||||
including which of the defined configurations is currently active.
|
||||
|
||||
As well as switching between configurations while running _WSJT-X_ you
|
||||
can also start the application from the command line in any desired
|
||||
|
@ -98,5 +98,5 @@ color and line width for the plots.
|
||||
Most windows can be resized as desired. If you are short of screen
|
||||
space you can make the Main Window and Wide Graph smaller by hiding
|
||||
some controls and labels. To enable this feature uncheck the box
|
||||
labales *Controls* at top left of the *Wide Graph* window, or the box
|
||||
labeled *Controls* at top left of the *Wide Graph* window, or the box
|
||||
*Menus* to the right of the *Tune* button on the Main Window.
|
||||
|
@ -26,7 +26,7 @@ hypothetically known information.
|
||||
|
||||
[[FT8_AP_INFO_TABLE]]
|
||||
.FT4 and FT8 AP information types
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===============================================
|
||||
|aP | Message components
|
||||
|a1 | CQ     ?     ?
|
||||
@ -49,7 +49,7 @@ be attempted in each state.
|
||||
|
||||
[[FT8_AP_DECODING_TYPES_TABLE]]
|
||||
.FT4 and FT8 AP decoding types for each QSO state
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===========================================
|
||||
|State |AP type
|
||||
|CALLING STN | 2, 3
|
||||
@ -67,7 +67,7 @@ averaged to obtain the decode.
|
||||
|
||||
[[JT65_AP_INFO_TABLE]]
|
||||
.JT65 AP information types
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===============================================
|
||||
|aP | Message components
|
||||
|a1 | CQ     ?     ?
|
||||
@ -81,7 +81,7 @@ averaged to obtain the decode.
|
||||
|
||||
[[JT65_AP_DECODING_TYPES_TABLE]]
|
||||
.JT65 AP decoding types for each QSO state
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===========================================
|
||||
|State |AP type
|
||||
|CALLING STN | 2, 3, 6, 7
|
||||
@ -140,7 +140,7 @@ Table 6 below shows the meaning of the return codes R in QRA64 mode.
|
||||
|
||||
[[QRA64_AP_INFO_TABLE]]
|
||||
.QRA64 AP return codes
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===============================================
|
||||
|rc | Message components
|
||||
|0 | ?     ?     ?
|
||||
|
Before ![]() (image error) Size: 56 KiB After ![]() (image error) Size: 42 KiB ![]() ![]() |
Before ![]() (image error) Size: 20 KiB After ![]() (image error) Size: 22 KiB ![]() ![]() |
BIN
doc/user_guide/en/images/Windows_Dark.png
Normal file
After ![]() (image error) Size: 52 KiB |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 9.3 KiB ![]() ![]() |
Before ![]() (image error) Size: 23 KiB After ![]() (image error) Size: 24 KiB ![]() ![]() |
Before ![]() (image error) Size: 35 KiB After ![]() (image error) Size: 40 KiB ![]() ![]() |
Before ![]() (image error) Size: 25 KiB After ![]() (image error) Size: 28 KiB ![]() ![]() |
Before ![]() (image error) Size: 18 KiB After ![]() (image error) Size: 20 KiB ![]() ![]() |
Before ![]() (image error) Size: 21 KiB After ![]() (image error) Size: 22 KiB ![]() ![]() |
@ -3,7 +3,7 @@
|
||||
Debian, Ubuntu, and other Debian-based systems including Raspbian:
|
||||
|
||||
NOTE: The project team release binary installer packages for Linux
|
||||
when a new _WSJT-X_ release is announced, note that these are built to
|
||||
when a new _WSJT-X_ release is announced. These are built to
|
||||
target one contemporary version of a Linux distribution. Although
|
||||
these may work on newer Linux versions or even different
|
||||
distributions, it is unlikely that they will work on older
|
||||
|
@ -1,6 +1,6 @@
|
||||
// These instructions are up-to-date for WSJT-X v1.9
|
||||
// These instructions are up-to-date for WSJT-X v2.2
|
||||
|
||||
*OS X 10.10* and later: Download the file {osx} to your desktop,
|
||||
*OS X 10.13* and later: Download the file {osx} to your desktop,
|
||||
double-click on it and consult its `ReadMe` file for important
|
||||
installation notes.
|
||||
|
||||
|
@ -30,20 +30,22 @@ TIP: Your computer may be configured so that this directory is
|
||||
|
||||
[[OPENSSL]]
|
||||
|
||||
* image:LoTW_TLS_error.png[_WSJT-X_ LoTW download TLS error,
|
||||
role="right"] _WSJT-X_ requires the _OpenSSL_ libraries to be
|
||||
installed. Suitable libraries may already be installed on your
|
||||
system, if they are not you will see this error shortly after
|
||||
requesting a fetch of the latest LoTW users database. To fix this
|
||||
you need to install the _OpenSSL_ libraries.
|
||||
* _WSJT-X_ requires the _OpenSSL_ libraries to be installed, and
|
||||
suitable libraries may already be installed on your system. If they
|
||||
are not you will see this error shortly after requesting a fetch of
|
||||
the latest LoTW users database. To fix this you need to install the
|
||||
_OpenSSL_ libraries.
|
||||
|
||||
** You can download a suitable _OpenSSL_ package for from
|
||||
{win_openssl_packages}, you need the latest *Windows Light*
|
||||
image::LoTW_TLS_error.png[align="center"]
|
||||
|
||||
|
||||
* You can download a suitable _OpenSSL_ package from
|
||||
{win_openssl_packages}. You need the latest *Windows Light*
|
||||
version. For the 32-bit _WSJT-X_ build use the latest Win32 v1.1.x
|
||||
version of the _OpenSSL_ libraries, for the 64-bit _WSJT-X_ use the
|
||||
latest Win64 v1.1.x version of the _OpenSSL_ libraries (Note it is
|
||||
OK to install both versions on a 64-bit system) which at the time
|
||||
of writing were {win32_openssl} and {win64_openssl} respectively.
|
||||
latest Win64 v1.1.x version of the _OpenSSL_ libraries which at the
|
||||
time of writing were {win32_openssl} and {win64_openssl}. It is OK
|
||||
to install both versions on a 64-bit system.
|
||||
|
||||
** Install the package and accept the default options, including the
|
||||
option to copy the _OpenSSL_ DLLs to the Windows system
|
||||
|
@ -6,7 +6,7 @@ the program name stand for "`**W**eak **S**ignal communication by
|
||||
K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as
|
||||
an e**Xt**ended and e**X**perimental branch of the program _WSJT_,
|
||||
first released in 2001. Bill Somerville, G4WJS, and Steve Franke,
|
||||
K9AN, have been major contibutors to program development since 2013
|
||||
K9AN, have been major contributors to program development since 2013
|
||||
and 2015, respectively.
|
||||
|
||||
_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers ten different
|
||||
@ -16,15 +16,14 @@ making reliable QSOs under weak-signal conditions. They use nearly
|
||||
identical message structure and source encoding. JT65 and QRA64 were
|
||||
designed for EME ("`moonbounce`") on the VHF/UHF bands and have also
|
||||
proven very effective for worldwide QRP communication on the HF bands.
|
||||
QRA64 has a number of advantages over JT65, including better
|
||||
performance on the very weakest signals. We imagine that over time it
|
||||
may replace JT65 for EME use. JT9 was originally designed for the LF,
|
||||
MF, and lower HF bands. Its submode JT9A is 2 dB more sensitive than
|
||||
JT65 while using less than 10% of the bandwidth. JT4 offers a wide
|
||||
variety of tone spacings and has proven highly effective for EME on
|
||||
microwave bands up to 24 GHz. These four "`slow`" modes use
|
||||
one-minute timed sequences of alternating transmission and reception,
|
||||
so a minimal QSO takes four to six minutes — two or three
|
||||
QRA64 has a some advantages over JT65, including better performance
|
||||
for EME on the higher microwave bands. JT9 was originally designed
|
||||
for the LF, MF, and lower HF bands. Its submode JT9A is 2 dB more
|
||||
sensitive than JT65 while using less than 10% of the bandwidth. JT4
|
||||
offers a wide variety of tone spacings and has proven highly effective
|
||||
for EME on microwave bands up to 24 GHz. These four "`slow`" modes
|
||||
use one-minute timed sequences of alternating transmission and
|
||||
reception, so a minimal QSO takes four to six minutes — two or three
|
||||
transmissions by each station, one sending in odd UTC minutes and the
|
||||
other even. FT8 is operationally similar but four times faster
|
||||
(15-second T/R sequences) and less sensitive by a few dB. FT4 is
|
||||
|
@ -35,9 +35,7 @@ from another logging program. Turning *Show DXCC entity and worked
|
||||
before status* off and then on again will cause _WSJT-X_ to re-read
|
||||
the log file. Very large log files may cause _WSJT-X_ to slow down
|
||||
when searching for calls. If the ADIF log file has been changed
|
||||
outside of _WSJT-X_ you can force _WSJT-X_ to relaod the file from the
|
||||
outside of _WSJT-X_ you can force _WSJT-X_ to reload the file from the
|
||||
*Settings | Colors* tab using the *Rescan ADIF Log* button, see
|
||||
<<COLORS,Decode Highlighting>>.
|
||||
|
||||
Additional features are provided for *Contest* and *Fox* logging.
|
||||
(more to come, here ...)
|
||||
|
@ -93,7 +93,7 @@ tab. Model QSOs then proceed as follows, for each event type:
|
||||
|
||||
*NA VHF Contest*
|
||||
|
||||
CQ K1ABC FN42
|
||||
CQ TEST K1ABC FN42
|
||||
K1ABC W9XYZ EN37
|
||||
W9XYZ K1ABC R FN42
|
||||
K1ABC W9XYZ RRR
|
||||
@ -134,7 +134,7 @@ to upgrade _WSJT-X_ if you will use *EU VHF Contest* messages.
|
||||
|
||||
*WW Digi Contest*
|
||||
|
||||
CQ K1ABC FN42
|
||||
CQ WW K1ABC FN42
|
||||
K1ABC S52XYZ JN76
|
||||
S52XYZ K1ABC R FN42
|
||||
K1ABC S52XYZ RR73
|
||||
|
@ -104,9 +104,9 @@ shape of your receiver's passband. Disconnect your antenna or tune to
|
||||
a quiet frequency with no signals. With _WSJT-X_ running in one of
|
||||
the slow modes, select *Measure reference spectrum* from the *Tools*
|
||||
menu. Wait for about a minute and then hit the *Stop* button. A file
|
||||
named `refspec.dat` will appear in your log directory.
|
||||
|
||||
[ ... more to come ... ]
|
||||
named `refspec.dat` will appear in your log directory. When you check
|
||||
*Ref Spec* on the *Wide Graph*, the recorded reference spectrum will
|
||||
then be used to flatten your overall effective passband.
|
||||
|
||||
=== Phase Equalization
|
||||
|
||||
|
@ -48,7 +48,7 @@ Tx3 messages -- those conveying signal report, serial number, and
|
||||
6-character locator -- now use hashcodes for both callsigns. This
|
||||
change is *not* backward compatible with earlier versions of _WSJT-X_, so
|
||||
all users of *EU VHF Contest* messages should be sure to upgrade to
|
||||
versiion 2.2.0. See <<CONTEST_MSGS,Contest Messages>> for details.
|
||||
version 2.2.0. See <<CONTEST_MSGS,Contest Messages>> for details.
|
||||
|
||||
*Minor enhancements and bug fixes*
|
||||
|
||||
@ -83,14 +83,25 @@ overlooked.
|
||||
IMPORTANT: *Warnings* about usage that could lead to undesired
|
||||
consequences.
|
||||
|
||||
=== User Interface in Other Languages
|
||||
|
||||
Thanks to Xavi Perez, EA3W, in cooperation with G4WJS, the _WSJT-X_
|
||||
user interface is now available the Catalan language. Spanish will
|
||||
follow soon, and other languages when translations are made. When a
|
||||
translated user interface is available for the computer's default
|
||||
System Language, it will appear automatically on program startup.
|
||||
|
||||
=== How You Can Contribute
|
||||
|
||||
_WSJT-X_ is part of an open-source project released under the
|
||||
{gnu_gpl} (GPLv3). If you have programming or documentation skills or
|
||||
would like to contribute to the project in other ways, please make
|
||||
your interests known to the development team. The project's
|
||||
source-code repository can be found at {devrepo}, and communication
|
||||
among the developers takes place on the email reflector {devmail}.
|
||||
Bug reports and suggestions for new features, improvements to the
|
||||
_WSJT-X_ User Guide, etc., may be sent there as well. You must join
|
||||
the group before posting to the email list.
|
||||
your interests known to the development team. We especially encourage
|
||||
those with translation skills to volunteer their help, either for
|
||||
this _User Guide_ or for the program's user interface.
|
||||
|
||||
The project's source-code repository can be found at {devrepo}, and
|
||||
communication among the developers takes place on the email reflector
|
||||
{devmail}. Bug reports and suggestions for new features, improvements
|
||||
to the _WSJT-X_ User Guide, etc., may be sent there as well. You must
|
||||
join the group before posting to the email list.
|
||||
|
@ -3,7 +3,8 @@
|
||||
A few _WSJT-X_ features behave differently in Windows, Linux, or OS X,
|
||||
or may not be relevant to all operating platforms.
|
||||
|
||||
.File locations
|
||||
=== File locations
|
||||
|
||||
* *Windows*
|
||||
|
||||
- *Settings:* %LOCALAPPDATA%\WSJT-X\WSJT-X.ini
|
||||
|
@ -52,10 +52,10 @@ were the callsigns `E9AA` through `E9ZZ`. Upon reception they are
|
||||
converted back to the form `CQ AA` through `CQ ZZ`, for display to the
|
||||
user.
|
||||
|
||||
The new FT4, FT8, and MSK144 protocols use a different lossless
|
||||
compression algorithm with features to generate and recognize the
|
||||
special messages used for contesting and the like. (More to come,
|
||||
here ...)
|
||||
The FT4, FT8, and MSK144 protocols use different lossless compression
|
||||
algorithms with features that generate and recognize special messages
|
||||
used for contesting and other special purposes. Full details have
|
||||
been published in QEX, see {ft4_ft8_protocols}.
|
||||
|
||||
To be useful on channels with low signal-to-noise ratio, this kind of
|
||||
lossless message compression requires use of a strong forward error
|
||||
|
@ -1,6 +1,6 @@
|
||||
image::settings-advanced.png[align="center",alt="Settings Advanced"]
|
||||
|
||||
_JT65 decoding parameters_
|
||||
_JT65 VHF/UHF/Microwave decoding parameters_
|
||||
|
||||
- *Random erasure patterns* logarithmically scales the number of
|
||||
pseudo-random trials used by the Franke-Taylor JT65 decoder. Larger
|
||||
|
@ -1,9 +1,9 @@
|
||||
// Status=review
|
||||
|
||||
image::settings-audio.png[align="center",alt="_WSJT-X_ Audio Configuration Screen"]
|
||||
|
||||
Select the *Audio* tab to configure your sound system.
|
||||
|
||||
image::settings-audio.png[align="center",alt="_WSJT-X_ Audio Configuration Screen"]
|
||||
|
||||
* _Soundcard_: Select the audio devices to be used for *Input* and
|
||||
*Output*. Usually the *Mono* settings will suffice, but in special
|
||||
cases you can choose *Left*, *Right*, or *Both* stereo channels.
|
||||
@ -19,7 +19,7 @@ to prevent inadvertently transmitting them over the air.
|
||||
|
||||
+
|
||||
|
||||
NOTE: Windows Vista and later may configure audio devices using
|
||||
NOTE: Windows 7 and later may configure audio devices using
|
||||
the Texas Instruments PCM2900 series CODEC for microphone input rather
|
||||
line input. (This chip is used in many radios with built-in USB
|
||||
CODECs, as well as various other audio interfaces.) If you are using
|
||||
|
@ -1,12 +1,13 @@
|
||||
// Status=review
|
||||
|
||||
[[FIG_BAND_SETTINGS]]
|
||||
image::settings-frequencies.png[align="center",alt="Frequency Screen"]
|
||||
|
||||
_Working Frequencies_: By default, the *Working Frequencies* table
|
||||
contains a list of frequencies conventionally used for modes FT8, JT4,
|
||||
JT9, JT65, MSK144, WSPR, and Echo. Conventions may change with time
|
||||
or by user preference; you can modify the frequency table as desired.
|
||||
_By default, the *Working Frequencies* table contains a list of
|
||||
frequencies conventionally used for modes FT8, JT4, JT9, JT65, MSK144,
|
||||
WSPR, and Echo. Conventions may change with time or by user
|
||||
preference; you can modify the frequency table as desired.
|
||||
|
||||
image::settings-frequencies.png[align="center",alt="Frequency Screen"]
|
||||
|
||||
- To change an existing entry, double-click to edit it, type a desired
|
||||
frequency in MHz or select from the drop down list of options, then
|
||||
|
@ -1,6 +1,5 @@
|
||||
// Status=review
|
||||
[[FIG_CONFIG_STATION]]
|
||||
image::settings-general.png[align="center",alt="Settings Window"]
|
||||
|
||||
Select the *General* tab on the *Settings* window. Under _Station
|
||||
Details_ enter your callsign, grid locator (preferably the 6-character
|
||||
@ -9,6 +8,8 @@ Middle East, and Northern Asia; Region 2 the Americas; and Region 3
|
||||
Southern Asia and the Pacific. This information will be sufficient
|
||||
for initial tests.
|
||||
|
||||
image::settings-general.png[align="center",alt="Settings Window"]
|
||||
|
||||
Meanings of remaining options on the *General* tab should be
|
||||
self-explanatory after you have made some QSOs using _WSJT-X_. You
|
||||
may return to set these options to your preferences later.
|
||||
|
@ -1,11 +1,11 @@
|
||||
// Status=review
|
||||
|
||||
image::RadioTab.png[align="center",alt="Radio Tab"]
|
||||
|
||||
_WSJT-X_ offers CAT (Computer Aided Transceiver) control of relevant
|
||||
features of most modern transceivers. To configure the program for
|
||||
your radio, select the *Radio* tab.
|
||||
|
||||
image::RadioTab.png[align="center",alt="Radio Tab"]
|
||||
|
||||
* Select your radio type from the drop-down list labeled *Rig*, or
|
||||
*None* if you do not wish to use CAT control.
|
||||
|
||||
@ -26,8 +26,6 @@ your radio, select the *Radio* tab.
|
||||
|
||||
+
|
||||
|
||||
NOTE: _Omni-Rig_ is available only under Windows.
|
||||
|
||||
* Set *Poll Interval* to the desired interval for _WSJT-X_ to query
|
||||
your radio. For most radios a small number (say, 1 – 3 s) is
|
||||
suitable.
|
||||
|
@ -1,11 +1,12 @@
|
||||
// Status=review
|
||||
|
||||
[[FigTxMacros]]
|
||||
image::tx-macros.png[align="center",alt="Tx Macros Screen"]
|
||||
|
||||
*Tx Macros* are an aid for sending brief, frequently used free-text
|
||||
messages such as the examples shown above.
|
||||
|
||||
image::tx-macros.png[align="center",alt="Tx Macros Screen"]
|
||||
|
||||
- To add a new message to the list, enter the desired text (up to 13
|
||||
characters) in the entry field at top, then click *Add*.
|
||||
|
||||
|
@ -39,12 +39,6 @@ TIP: The PC audio mixer normally has two sliders, one for each
|
||||
frequency setting, on HF bands you can display the full sub-band
|
||||
generally used for one mode.
|
||||
|
||||
- Of course, you might prefer to concentrate on one mode at a time,
|
||||
setting your dial frequency to (say) 14.074 for FT8, 14.076 for
|
||||
JT65, or 14.078 for JT9. Present conventions have the nominal JT9
|
||||
dial frequency 2 kHz higher than the JT65 dial frequency on most
|
||||
bands, and the FT8 frequency 2 kHz lower.
|
||||
|
||||
.Transmitter Audio Level
|
||||
|
||||
* Click the *Tune* button on the main screen to switch the radio into
|
||||
|
@ -1,14 +1,13 @@
|
||||
// Status=review
|
||||
.Main Window:
|
||||
- Select *FT8* on the *Mode* menu.
|
||||
- Set Tx frequency to 1600 Hz, Rx to 1442 Hz.
|
||||
- Double-click on *Erase* to clear both text windows.
|
||||
|
||||
.Wide Graph Settings:
|
||||
|
||||
- *Bins/Pixel* = 4, *Start* = 200 Hz, *N Avg* = 2
|
||||
- *Bins/Pixel* = 5, *Start* = 100 Hz, *N Avg* = 2
|
||||
- Adjust the width of the Wide Graph window so that the upper
|
||||
frequency limit is approximately 2600 Hz.
|
||||
frequency limit is approximately 3300 Hz.
|
||||
|
||||
.Open a Wave File:
|
||||
|
||||
@ -31,7 +30,7 @@ frequency control on the main window will be updated accordingly.
|
||||
frequency marker and its associated control on the main window will
|
||||
follow your frequency selections.
|
||||
|
||||
- Do the same thing with the *Ctrl* key held down. Now the both colored
|
||||
- Do the same thing with the *Ctrl* key held down. Now both colored
|
||||
markers and both spinner controls will follow your selections.
|
||||
|
||||
- Double-clicking at any frequency on the waterfall does all the
|
||||
@ -45,7 +44,7 @@ Rx frequency to that of the selected message and leaving Tx frequency
|
||||
unchanged. To change both Rx and Tx frequencies, hold *Ctrl* down
|
||||
when double-clicking.
|
||||
|
||||
TIP: To avoid QRM from competing callers, it is frequently desirable
|
||||
TIP: To avoid QRM from competing callers, it is usually best
|
||||
to answer a CQ on a different frequency from that of the CQing
|
||||
station. The same is true when you tail-end another QSO. Choose a Tx
|
||||
frequency that appears to be not in use. You might want to check the
|
||||
@ -54,7 +53,7 @@ box *Hold Tx Freq*.
|
||||
TIP: Keyboard shortcuts *Shift+F11* and *Shift+F12* provide an easy
|
||||
way to move your Tx frequency down or up in 60 Hz steps.
|
||||
|
||||
TIP: An online {ft8_tips} by ZL2IFB offers many helpful tips on
|
||||
TIP: An online {ft8_tips} by ZL2IFB offers many additional tips on
|
||||
operating procedures.
|
||||
|
||||
.FT8 DXpedition Mode:
|
||||
|
@ -1,6 +1,7 @@
|
||||
FT4 is designed for contesting, particularly on the HF bands.
|
||||
Compared with FT8 it is 3.5 dB less sensitive and requires 1.6 times
|
||||
the bandwidth, but it offers the potential for twice the QSO rate.
|
||||
FT4 is designed for contesting, particularly on the HF bands and 6
|
||||
meters. Compared with FT8 it is 3.5 dB less sensitive and requires
|
||||
1.6 times the bandwidth, but it offers the potential for twice the QSO
|
||||
rate.
|
||||
|
||||
.Main Window:
|
||||
- Select *FT4* on the *Mode* menu.
|
||||
@ -8,14 +9,14 @@ the bandwidth, but it offers the potential for twice the QSO rate.
|
||||
|
||||
.Wide Graph Settings:
|
||||
|
||||
- *Bins/Pixel* = 7, *Start* = 100 Hz, *N Avg* = 1
|
||||
- *Bins/Pixel* = 5, *Start* = 100 Hz, *N Avg* = 1
|
||||
- Adjust the width of the Wide Graph window so that the upper
|
||||
frequency limit is approximately 4000 Hz.
|
||||
frequency limit is approximately 3300 Hz.
|
||||
|
||||
.Open a Wave File:
|
||||
|
||||
- Select *File | Open* and navigate to
|
||||
+...\save\samples\FT4\000000_000002.wav+. The waterfall and Band
|
||||
+...\save\samples\FT4\200514_182053.wav+. The waterfall and Band
|
||||
Activity window should look something like the following screen shots.
|
||||
This sample file was recorded during a practice contest test session, so
|
||||
most of the decoded messages use the *RTTY Roundup* message formats.
|
||||
|
@ -343,7 +343,7 @@ MHz. On higher microwave bands typical choices are JT65C or one of
|
||||
the wider QRA64 or JT4 submodes, depending on the expected amount of
|
||||
Doppler spread. JT4 and JT65 offer message *Averaging* -- the
|
||||
summation of subsequent transmissions that convey the same message --
|
||||
to enable decodes at signal-to-noise ratios several dB below below the
|
||||
to enable decodes at signal-to-noise ratios several dB below the
|
||||
threshold for single transmissions. These modes also allow *Deep
|
||||
Search* decoding, in which the decoder hypothesizes messages
|
||||
containing known or previously decoded callsigns and tests them for
|
||||
@ -412,7 +412,7 @@ image::EME_Deep_1.png[align="center",alt="EME_Deep_1"]
|
||||
The message `CQ K1ABC FN42` appears in the _Average Decodes_ panel,
|
||||
flagged with the <<Decoded_Lines,end-of line label>> `f3`. The label
|
||||
means that decoding was accomplished with the Franke-Taylor
|
||||
algorithm, using the average or 3 transmissions.
|
||||
algorithm, using the average of 3 transmissions.
|
||||
|
||||
The _Message Averaging_ window now looks like this:
|
||||
|
||||
@ -436,4 +436,6 @@ Decoding>>), and is based on the average of 2 transmissions.
|
||||
|
||||
You might wish to experiment with other combinations of entries for
|
||||
*My Call*, *DX Call*, and *DX Grid*, and with toggling the various
|
||||
options of the *Decode* menu on and off.
|
||||
options of the *Decode* menu on and off. For best sensitivity, most
|
||||
users will want to use *Deep* decoding with *Enable averaging*,
|
||||
*Enable deep search*, and *Enable AP* all turned on.
|
||||
|
@ -68,8 +68,7 @@ include::install-from-source.adoc[]
|
||||
Select *Settings* from the *File* menu or by typing *F2*. (On
|
||||
Macintosh select *Preferences* from the _WSJT-X_ menu, or use the
|
||||
keyboard shortcut *Cmd+,*). The following sections describe setup
|
||||
options available on each of eight tabs selectable near the top of the
|
||||
window.
|
||||
options available on eight tabs selectable near the top of the window.
|
||||
|
||||
[[GENERAL]]
|
||||
=== General
|
||||
@ -103,6 +102,25 @@ include::settings-colors.adoc[]
|
||||
=== Advanced
|
||||
include::settings-advanced.adoc[]
|
||||
|
||||
[[DARK_STYLE]]
|
||||
=== Dark Style
|
||||
|
||||
An optional *Dark* style is available. To make it effective you will
|
||||
probably want to redefine your color settings. In Windows or Linux,
|
||||
start the program from a command-prompt window using the following
|
||||
command, or modify the _WSJT-X_ desktop shortcut accordingly:
|
||||
|
||||
wsjtx --stylesheet :/qdarkstyle/style.qss
|
||||
|
||||
In macOS, enter the following command from a terminal:
|
||||
|
||||
open /Applications/wsjtx.app --args -stylesheet :/qdarkstyle/style.qss
|
||||
|
||||
Depending on your operating system, the main _WSJT-X_ window will look
|
||||
something like this:
|
||||
|
||||
image::Windows_Dark.png[align="center"]
|
||||
|
||||
[[TRANSCEIVER]]
|
||||
== Transceiver Setup
|
||||
include::transceiver-setup.adoc[]
|
||||
|
@ -533,7 +533,12 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
||||
! EU VHF contest
|
||||
read(c77,1060) n12,n22,ir,irpt,iserial,igrid6
|
||||
1060 format(b12,b22,b1,b3,b11,b25)
|
||||
if(igrid6.lt.0 .or. igrid6.gt.18662399) then
|
||||
unpk77_success=.false.
|
||||
return
|
||||
endif
|
||||
call hash12(n12,call_1)
|
||||
if(n12.eq.hashmy12) call_1='<'//trim(mycall13)//'>'
|
||||
call hash22(n22,call_2)
|
||||
nrs=52+irpt
|
||||
write(cexch,1022) nrs,iserial
|
||||
@ -545,7 +550,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
||||
else if(i3.ge.6) then ! i3 values 6 and 7 are not yet defined
|
||||
unpk77_success=.false.
|
||||
endif
|
||||
! if(msg(1:4).eq.'CQ <') unpk77_success=.false.
|
||||
if(msg(1:4).eq.'CQ <') unpk77_success=.false.
|
||||
|
||||
return
|
||||
end subroutine unpack77
|
||||
@ -1157,6 +1162,7 @@ subroutine pack77_3(nwords,w,i3,n3,c77)
|
||||
"NB ","NS ","QC ","ON ","MB ","SK ","AB ","BC ","NWT","NF ", &
|
||||
"LB ","NU ","YT ","PEI","DC "/
|
||||
|
||||
if(w(1)(1:1).eq.'<' .and. w(2)(1:1).eq.'<') go to 900
|
||||
if(nwords.eq.4 .or. nwords.eq.5 .or. nwords.eq.6) then
|
||||
i1=1
|
||||
if(trim(w(1)).eq.'TU;') i1=2
|
||||
|
@ -87,6 +87,9 @@ contains
|
||||
|
||||
this%callback => callback
|
||||
hhmmss=cdatetime0(8:13)
|
||||
dxcall13=hiscall ! initialize for use in packjt77
|
||||
mycall13=mycall
|
||||
|
||||
smax1=0.
|
||||
nd1=0
|
||||
|
||||
|
@ -7,12 +7,10 @@ subroutine encode174_91_nocrc(message,codeword)
|
||||
use crc
|
||||
|
||||
integer, parameter:: N=174, K=91, M=N-K
|
||||
character*91 tmpchar
|
||||
integer*1 codeword(N)
|
||||
integer*1 gen(M,K)
|
||||
integer*1 message(K)
|
||||
integer*1 pchecks(M)
|
||||
integer*1, target :: i1MsgBytes(12)
|
||||
include "ldpc_174_91_c_generator.f90"
|
||||
logical first
|
||||
data first/.true./
|
||||
|
@ -454,7 +454,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, &
|
||||
if(.not.nagain) then
|
||||
xsnr=xsnr2
|
||||
endif
|
||||
if(nsync.le.7 .and. xsnr.lt.-24.0) then !bail out, likely false decode
|
||||
if(nsync.le.10 .and. xsnr.lt.-24.0) then !bail out, likely false decode
|
||||
nbadcrc=1
|
||||
return
|
||||
endif
|
||||
|
@ -167,7 +167,7 @@ subroutine osd174_91(llr,k,apmask,ndeep,message91,cw,nhardmin,dmin)
|
||||
nt=40
|
||||
ntheta=12
|
||||
ntau=15
|
||||
elseif(ndeep.eq.6) then
|
||||
else !ndeep=6
|
||||
nord=4
|
||||
npre1=1
|
||||
npre2=1
|
||||
|
@ -61,6 +61,7 @@ program jt49sim
|
||||
nsym=0
|
||||
dnsps=0.
|
||||
baud=0.
|
||||
sig=0.
|
||||
|
||||
if(imode.eq.4) then
|
||||
nsym=206 !Number of channel symbols (JT4)
|
||||
|
@ -124,12 +124,12 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
|
||||
if(buseref) then
|
||||
if(blastuse.neqv.buseref) then !just enabled so read filter
|
||||
fil=1.0
|
||||
open(16,file=fname,status='old',err=110)
|
||||
read(16,1003,err=20,end=100) ndummy,ndummy,nterms,a
|
||||
open(16,file=fname,status='old',err=999)
|
||||
read(16,1003,err=20,end=999) ndummy,ndummy,nterms,a
|
||||
goto 30
|
||||
20 rewind(16) !allow for old style refspec.dat with no header
|
||||
30 do i=1,NH
|
||||
read(16,1005,err=100,end=100) freq,s(i),ref(i),fil(i),filter(i)
|
||||
read(16,1005,err=999,end=999) freq,s(i),ref(i),fil(i),filter(i)
|
||||
enddo
|
||||
! Make the filter causal for overlap and add.
|
||||
cx(0)=0.0
|
||||
@ -139,8 +139,7 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
|
||||
x(800:NH)=0.0
|
||||
call four2a(cx,NFFT,1,-1,0)
|
||||
cfil=cx
|
||||
100 close(16)
|
||||
110 continue
|
||||
close(16)
|
||||
endif
|
||||
! Use overlap and add method to apply causal reference filter.
|
||||
x(0:NH-1)=id2(1:NH)
|
||||
@ -154,6 +153,6 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
|
||||
id2(1:NH)=nint(x(0:NH-1))
|
||||
endif
|
||||
blastuse=buseref
|
||||
|
||||
return
|
||||
|
||||
999 return
|
||||
end subroutine refspectrum
|
||||
|
@ -243,7 +243,7 @@ int floatcomp(const void* elem1, const void* elem2)
|
||||
int unpk_(signed char *message, char *hashtab, char *loctab, char *call_loc_pow, char *callsign)
|
||||
{
|
||||
int n1,n2,n3,ndbm,ihash,nadd,noprint=0;
|
||||
char grid[5],grid6[7],cdbm[3];
|
||||
char grid[5],grid6[7],cdbm[4];
|
||||
|
||||
unpack50(message,&n1,&n2);
|
||||
if( !unpackcall(n1,callsign) ) return 1;
|
||||
|
148
main.cpp
@ -107,10 +107,23 @@ int main(int argc, char *argv[])
|
||||
ExceptionCatchingApplication a(argc, argv);
|
||||
try
|
||||
{
|
||||
QLocale locale; // get the current system locale
|
||||
qDebug () << "locale: language:" << locale.language () << "script:" << locale.script ()
|
||||
<< "country:" << locale.country () << "ui-languages:" << locale.uiLanguages ();
|
||||
setlocale (LC_NUMERIC, "C"); // ensure number forms are in
|
||||
// consistent format, do this after
|
||||
// instantiating QApplication so
|
||||
// that GUI has correct l18n
|
||||
|
||||
// Override programs executable basename as application name.
|
||||
a.setApplicationName ("WSJT-X");
|
||||
a.setApplicationVersion (version ());
|
||||
|
||||
//
|
||||
// Enable i18n
|
||||
// Enable base i18n
|
||||
//
|
||||
QTranslator translator_from_resources;
|
||||
QTranslator base_translator_from_resources;
|
||||
// Default translations for releases use translations stored in
|
||||
// the resources file system under the Translations
|
||||
// directory. These are built by the CMake build system from .ts
|
||||
@ -121,28 +134,25 @@ int main(int argc, char *argv[])
|
||||
// translations but should only be set when adding new
|
||||
// languages. The resulting .ts files should be checked info
|
||||
// source control for translators to access and update.
|
||||
translator_from_resources.load (QLocale::system (), "wsjtx", "_", ":/Translations");
|
||||
a.installTranslator (&translator_from_resources);
|
||||
|
||||
QTranslator translator_from_files;
|
||||
// Load any matching translation from the current directory
|
||||
// using the locale name. This allows translators to easily test
|
||||
// their translations by releasing (lrelease) a .qm file into
|
||||
// the current directory with a suitable name
|
||||
// (e.g. wsjtx_en_GB.qm), then running wsjtx to view the
|
||||
// results. Either the system locale setting or the environment
|
||||
// variable LANG can be used to select the target language.
|
||||
translator_from_files.load (QString {"wsjtx_"} + QLocale::system ().name ());
|
||||
a.installTranslator (&translator_from_files);
|
||||
|
||||
setlocale (LC_NUMERIC, "C"); // ensure number forms are in
|
||||
// consistent format, do this after
|
||||
// instantiating QApplication so
|
||||
// that GUI has correct l18n
|
||||
|
||||
// Override programs executable basename as application name.
|
||||
a.setApplicationName ("WSJT-X");
|
||||
a.setApplicationVersion (version ());
|
||||
// try and load the base translation
|
||||
for (QString locale_name : locale.uiLanguages ())
|
||||
{
|
||||
auto language = locale_name.left (2);
|
||||
if (base_translator_from_resources.load ("wsjtx_" + language, ":/Translations"))
|
||||
{
|
||||
qDebug () << QString {"Loaded base translation file from :/Translations based on language %1"}.arg (language);
|
||||
a.installTranslator (&base_translator_from_resources);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// now try and load the most specific translations (may be a
|
||||
// duplicate but we shouldn't care)
|
||||
if (translator_from_resources.load (locale, "wsjtx", "_", ":/Translations"))
|
||||
{
|
||||
qDebug () << "Loaded translations for current locale from resources";
|
||||
a.installTranslator (&translator_from_resources);
|
||||
}
|
||||
|
||||
QCommandLineParser parser;
|
||||
parser.setApplicationDescription ("\n" PROJECT_SUMMARY_DESCRIPTION);
|
||||
@ -161,6 +171,12 @@ int main(int argc, char *argv[])
|
||||
, a.translate ("main", "configuration"));
|
||||
parser.addOption (cfg_option);
|
||||
|
||||
// support for UI language override (useful on Windows)
|
||||
QCommandLineOption lang_option (QStringList {} << "l" << "language"
|
||||
, a.translate ("main", "Where <language> is <lang-code>[-<country-code>].")
|
||||
, a.translate ("main", "language"));
|
||||
parser.addOption (lang_option);
|
||||
|
||||
QCommandLineOption test_option (QStringList {} << "test-mode"
|
||||
, a.translate ("main", "Writable files in test location. Use with caution, for testing only."));
|
||||
parser.addOption (test_option);
|
||||
@ -184,6 +200,94 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Complete i18n
|
||||
//
|
||||
|
||||
QTranslator translation_override_from_resources;
|
||||
QTranslator base_translation_override_from_resources;
|
||||
// Load any matching translation from the current directory
|
||||
// using the command line option language override. This allows
|
||||
// translators to easily test their translations by releasing
|
||||
// (lrelease) a .qm file into the current directory with a
|
||||
// suitable name (e.g. wsjtx_en_GB.qm), then running wsjtx to
|
||||
// view the results.
|
||||
if (parser.isSet (lang_option))
|
||||
{
|
||||
auto language = parser.value (lang_option).replace ('-', '_');
|
||||
// try and load the base translation
|
||||
auto base_language = language.left (2);
|
||||
if (base_translation_override_from_resources.load ("wsjtx_" + base_language, ":/Translations"))
|
||||
{
|
||||
qDebug () << QString {"Loaded base translation file from :/Translations based on language %1"}.arg (base_language);
|
||||
a.installTranslator (&base_translation_override_from_resources);
|
||||
}
|
||||
// now load the requested translations (may be a duplicate
|
||||
// but we shouldn't care)
|
||||
if (translation_override_from_resources.load ("wsjtx_" + language , ":/Translations"))
|
||||
{
|
||||
qDebug () << QString {"Loaded translation file from :/Translations based on language %1"}.arg (language);
|
||||
a.installTranslator (&translation_override_from_resources);
|
||||
}
|
||||
}
|
||||
|
||||
QTranslator translator_from_cwd;
|
||||
QTranslator base_translator_from_cwd;
|
||||
// Load any matching translation from the current directory
|
||||
// using the current locale. This allows translators to easily
|
||||
// test their translations by releasing (lrelease) a .qm file
|
||||
// into the current directory with a suitable name (e.g.
|
||||
// wsjtx_en_GB.qm), then running wsjtx to view the results. The
|
||||
// system locale setting will be used to select the translation
|
||||
// file which can be overridden by the LANG environment variable
|
||||
// on non-Windows system.
|
||||
|
||||
// try and load the base translation
|
||||
for (QString locale_name : locale.uiLanguages ())
|
||||
{
|
||||
auto language = locale_name.left (2);
|
||||
if (base_translator_from_cwd.load ("wsjtx_" + language))
|
||||
{
|
||||
qDebug () << QString {"Loaded base translation file from $cwd based on language %1"}.arg (language);
|
||||
a.installTranslator (&base_translator_from_cwd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// now try and load the most specific translations (may be a
|
||||
// duplicate but we shouldn't care)
|
||||
if (translator_from_cwd.load (locale, "wsjtx", "_"))
|
||||
{
|
||||
qDebug () << "loaded translations for current locale from a file";
|
||||
a.installTranslator (&translator_from_cwd);
|
||||
}
|
||||
|
||||
QTranslator translation_override_from_cwd;
|
||||
QTranslator base_translation_override_from_cwd;
|
||||
// Load any matching translation from the current directory
|
||||
// using the command line option language override. This allows
|
||||
// translators to easily test their translations on Windows by
|
||||
// releasing (lrelease) a .qm file into the current directory
|
||||
// with a suitable name (e.g. wsjtx_en_GB.qm), then running
|
||||
// wsjtx to view the results.
|
||||
if (parser.isSet (lang_option))
|
||||
{
|
||||
auto language = parser.value (lang_option).replace ('-', '_');
|
||||
// try and load the base translation
|
||||
auto base_language = language.left (2);
|
||||
if (base_translation_override_from_cwd.load ("wsjtx_" + base_language))
|
||||
{
|
||||
qDebug () << QString {"Loaded base translation file from $cwd based on language %1"}.arg (base_language);
|
||||
a.installTranslator (&base_translation_override_from_cwd);
|
||||
}
|
||||
// now load the requested translations (may be a duplicate
|
||||
// but we shouldn't care)
|
||||
if (translation_override_from_cwd.load ("wsjtx_" + language))
|
||||
{
|
||||
qDebug () << QString {"loaded translation file from $cwd based on language %1"}.arg (language);
|
||||
a.installTranslator (&translation_override_from_cwd);
|
||||
}
|
||||
}
|
||||
|
||||
QStandardPaths::setTestModeEnabled (parser.isSet (test_option));
|
||||
|
||||
// support for multiple instances running from a single installation
|
||||
|
@ -101,22 +101,22 @@ QString DecodeHighlightingModel::highlight_name (Highlight h)
|
||||
{
|
||||
switch (h)
|
||||
{
|
||||
case Highlight::CQ: return "CQ in message";
|
||||
case Highlight::MyCall: return "My Call in message";
|
||||
case Highlight::Tx: return "Transmitted message";
|
||||
case Highlight::DXCC: return "New DXCC";
|
||||
case Highlight::DXCCBand: return "New DXCC on Band";
|
||||
case Highlight::Grid: return "New Grid";
|
||||
case Highlight::GridBand: return "New Grid on Band";
|
||||
case Highlight::Call: return "New Call";
|
||||
case Highlight::CallBand: return "New Call on Band";
|
||||
case Highlight::Continent: return "New Continent";
|
||||
case Highlight::ContinentBand: return "New Continent on Band";
|
||||
case Highlight::CQZone: return "New CQ Zone";
|
||||
case Highlight::CQZoneBand: return "New CQ Zone on Band";
|
||||
case Highlight::ITUZone: return "New ITU Zone";
|
||||
case Highlight::ITUZoneBand: return "New ITU Zone on Band";
|
||||
case Highlight::LotW: return "LotW User";
|
||||
case Highlight::CQ: return tr ("CQ in message");
|
||||
case Highlight::MyCall: return tr ("My Call in message");
|
||||
case Highlight::Tx: return tr ("Transmitted message");
|
||||
case Highlight::DXCC: return tr ("New DXCC");
|
||||
case Highlight::DXCCBand: return tr ("New DXCC on Band");
|
||||
case Highlight::Grid: return tr ("New Grid");
|
||||
case Highlight::GridBand: return tr ("New Grid on Band");
|
||||
case Highlight::Call: return tr ("New Call");
|
||||
case Highlight::CallBand: return tr ("New Call on Band");
|
||||
case Highlight::Continent: return tr ("New Continent");
|
||||
case Highlight::ContinentBand: return tr ("New Continent on Band");
|
||||
case Highlight::CQZone: return tr ("New CQ Zone");
|
||||
case Highlight::CQZoneBand: return tr ("New CQ Zone on Band");
|
||||
case Highlight::ITUZone: return tr ("New ITU Zone");
|
||||
case Highlight::ITUZoneBand: return tr ("New ITU Zone on Band");
|
||||
case Highlight::LotW: return tr ("LoTW User");
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
@ -166,9 +166,9 @@ QVariant DecodeHighlightingModel::data (const QModelIndex& index, int role) cons
|
||||
return QString {"%1%2%3%4%4%5%6"}
|
||||
.arg (highlight_name (item.type_))
|
||||
.arg (fg_unset || bg_unset ? QString {" ["} : QString {})
|
||||
.arg (fg_unset ? QString {"f/g unset"} : QString {})
|
||||
.arg (fg_unset ? tr ("f/g unset") : QString {})
|
||||
.arg (fg_unset && bg_unset ? QString {" "} : QString {})
|
||||
.arg (bg_unset ? QString {"b/g unset"} : QString {})
|
||||
.arg (bg_unset ? tr ("b/g unset") : QString {})
|
||||
.arg (fg_unset || bg_unset ? QString {"]"} : QString {});
|
||||
break;
|
||||
case Qt::ForegroundRole:
|
||||
|
@ -124,6 +124,7 @@ namespace
|
||||
// 7110 LSB EMCOMM
|
||||
//
|
||||
{7038600, Modes::WSPR, IARURegions::ALL},
|
||||
{7071000, Modes::FT8, IARURegions::ALL},
|
||||
{7074000, Modes::FT8, IARURegions::ALL},
|
||||
{7076000, Modes::JT65, IARURegions::ALL},
|
||||
{7078000, Modes::JT9, IARURegions::ALL},
|
||||
@ -157,6 +158,7 @@ namespace
|
||||
// 10142.25 OLIVIA, Contestia, etc.
|
||||
// 10143.25 OLIVIA, Contestia, etc. (main QRQ)
|
||||
//
|
||||
{10133000, Modes::FT8, IARURegions::ALL},
|
||||
{10136000, Modes::FT8, IARURegions::ALL},
|
||||
{10138000, Modes::JT65, IARURegions::ALL},
|
||||
{10138700, Modes::WSPR, IARURegions::ALL},
|
||||
@ -201,6 +203,7 @@ namespace
|
||||
// 14106.5 OLIVIA 1000 (main QRG)
|
||||
//
|
||||
{14095600, Modes::WSPR, IARURegions::ALL},
|
||||
{14071000, Modes::FT8, IARURegions::ALL},
|
||||
{14074000, Modes::FT8, IARURegions::ALL},
|
||||
{14076000, Modes::JT65, IARURegions::ALL},
|
||||
{14078000, Modes::JT9, IARURegions::ALL},
|
||||
@ -267,6 +270,7 @@ namespace
|
||||
{50293000, Modes::WSPR, IARURegions::R3},
|
||||
{50310000, Modes::JT65, IARURegions::ALL},
|
||||
{50312000, Modes::JT9, IARURegions::ALL},
|
||||
{50310000, Modes::FT8, IARURegions::ALL},
|
||||
{50313000, Modes::FT8, IARURegions::ALL},
|
||||
{50318000, Modes::FT4, IARURegions::ALL}, // provisional
|
||||
{50323000, Modes::FT8, IARURegions::ALL},
|
||||
|
@ -37,8 +37,9 @@
|
||||
<tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr>
|
||||
<tr><td><b>Alt+O </b></td><td>Change operator</td></tr>
|
||||
<tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr>
|
||||
<tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR</td></tr>
|
||||
<tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr>
|
||||
<tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr>
|
||||
<tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr>
|
||||
<tr><td><b>Alt+T </b></td><td>Tune</td></tr>
|
||||
<tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr>
|
||||
<tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr>
|
||||
</table>
|
||||
|
6324
translations/wsjtx_ca.ts
Normal file
@ -18,7 +18,7 @@
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../widgets/AbstractLogWindow.cpp" line="65"/>
|
||||
<source>Are you sure you want to delete the %n selected QSO(s) from the log</source>
|
||||
<source>Are you sure you want to delete the %n selected QSO(s) from the log?</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
@ -692,7 +692,7 @@ Format:
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../DXLabSuiteCommanderTransceiver.cpp" line="503"/>
|
||||
<location filename="../Transceiver/DXLabSuiteCommanderTransceiver.cpp" line="503"/>
|
||||
<source>DX Lab Suite Commander sent an unrecognized frequency</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -737,6 +737,96 @@ Format:
|
||||
</context>
|
||||
<context>
|
||||
<name>DecodeHighlightingModel</name>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="104"/>
|
||||
<source>CQ in message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="105"/>
|
||||
<source>My Call in message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="106"/>
|
||||
<source>Transmitted message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="107"/>
|
||||
<source>New DXCC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="108"/>
|
||||
<source>New DXCC on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="109"/>
|
||||
<source>New Grid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="110"/>
|
||||
<source>New Grid on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="111"/>
|
||||
<source>New Call</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="112"/>
|
||||
<source>New Call on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="113"/>
|
||||
<source>New Continent</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="114"/>
|
||||
<source>New Continent on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="115"/>
|
||||
<source>New CQ Zone</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="116"/>
|
||||
<source>New CQ Zone on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="117"/>
|
||||
<source>New ITU Zone</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="118"/>
|
||||
<source>New ITU Zone on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="119"/>
|
||||
<source>LoTW User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="169"/>
|
||||
<source>f/g unset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="171"/>
|
||||
<source>b/g unset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="244"/>
|
||||
<source>Highlight Type</source>
|
||||
@ -1822,6 +1912,12 @@ Error(%2): %3</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="50"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5797"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5845"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6003"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6043"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6091"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6216"/>
|
||||
<source>Band Activity</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1833,6 +1929,11 @@ Error(%2): %3</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="194"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5796"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5840"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6004"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6044"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6092"/>
|
||||
<source>Rx Frequency</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2290,6 +2391,7 @@ Not available to nonstandard callsign holders.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1394"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5867"/>
|
||||
<source>Fox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3130,6 +3232,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3125"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8103"/>
|
||||
<source>Runaway Tx watchdog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3405,7 +3508,14 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="434"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="329"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4120"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7634"/>
|
||||
<source>Receiving</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="437"/>
|
||||
<source>Do you want to reconfigure the radio interface?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3435,7 +3545,27 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="819"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="828"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5792"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5798"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5836"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5846"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5943"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5944"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5992"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5993"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5997"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5998"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6045"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6046"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6211"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6212"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6397"/>
|
||||
<source>Message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="842"/>
|
||||
<source>Error Killing jt9.exe Process</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3455,23 +3585,23 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1254"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6063"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1258"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6186"/>
|
||||
<source>Improper mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1405"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8591"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1409"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8730"/>
|
||||
<source>File Open Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1406"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7620"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8039"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8592"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8712"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1410"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7748"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8177"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8731"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8857"/>
|
||||
<source>Cannot open "%1" for append: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3491,7 +3621,21 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2072"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1787"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5941"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6087"/>
|
||||
<source>Single-Period Decodes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1788"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5942"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6088"/>
|
||||
<source>Average Decodes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2089"/>
|
||||
<source>Change Operator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3506,8 +3650,8 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2175"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5296"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2200"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5405"/>
|
||||
<source>Cannot open "%1" for writing: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3625,161 +3769,194 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4546"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4224"/>
|
||||
<source>Last Tx: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4624"/>
|
||||
<source>Should you switch to EU VHF Contest mode?
|
||||
|
||||
To do so, check 'Special operating activity' and
|
||||
'EU VHF Contest' on the Settings | Advanced tab.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4643"/>
|
||||
<source>Should you switch to ARRL Field Day mode?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4553"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4648"/>
|
||||
<source>Should you switch to RTTY contest mode?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5263"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5282"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5295"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5321"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5372"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5391"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5404"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5430"/>
|
||||
<source>Add to CALL3.TXT</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5264"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5373"/>
|
||||
<source>Please enter a valid grid locator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5283"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5392"/>
|
||||
<source>Cannot open "%1" for read/write: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5319"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5428"/>
|
||||
<source>%1
|
||||
is already in CALL3.TXT, do you wish to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5486"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5603"/>
|
||||
<source>Warning: DX Call field is empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5539"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5660"/>
|
||||
<source>Log file error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5540"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5661"/>
|
||||
<source>Cannot open "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5556"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5677"/>
|
||||
<source>Error sending log to N1MM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5557"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5678"/>
|
||||
<source>Write returned "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6345"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6378"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6388"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5842"/>
|
||||
<source>Stations calling DXpedition %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5877"/>
|
||||
<source>Hound</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6217"/>
|
||||
<source>Tx Messages</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6468"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6501"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6511"/>
|
||||
<source>Confirm Erase</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6346"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6469"/>
|
||||
<source>Are you sure you want to erase file ALL.TXT?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6356"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8084"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6479"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8222"/>
|
||||
<source>Confirm Reset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6357"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6480"/>
|
||||
<source>Are you sure you want to erase your contest log?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6358"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6481"/>
|
||||
<source>Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6371"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6494"/>
|
||||
<source>Cabrillo Log saved</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6379"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6502"/>
|
||||
<source>Are you sure you want to erase file wsjtx_log.adi?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6389"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6512"/>
|
||||
<source>Are you sure you want to erase the WSPR hashtable?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6483"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6606"/>
|
||||
<source>VHF features warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7082"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7211"/>
|
||||
<source>Tune digital gain </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7084"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7213"/>
|
||||
<source>Transmit digital gain </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7103"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7232"/>
|
||||
<source>Prefixes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7472"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7601"/>
|
||||
<source>Network Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7473"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7602"/>
|
||||
<source>Error: %1
|
||||
UDP server %2:%3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7619"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7747"/>
|
||||
<source>File Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7854"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7981"/>
|
||||
<source>Phase Training Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7857"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7984"/>
|
||||
<source>Phase Training Enabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8042"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8715"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8118"/>
|
||||
<source>WD:%1m</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8180"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8860"/>
|
||||
<source>Log File Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8085"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8223"/>
|
||||
<source>Are you sure you want to clear the QSO queues?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3937,7 +4114,7 @@ UDP server %2:%3</source>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="198"/>
|
||||
<location filename="../main.cpp" line="252"/>
|
||||
<source>Invalid rig name - \ & / not allowed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -4951,11 +5128,6 @@ a few, particularly some Kenwood rigs, require it).</source>
|
||||
<source>RTS:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="932"/>
|
||||
<source>How this program activates the PTT on your radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="935"/>
|
||||
<source>PTT Method</source>
|
||||
@ -5607,7 +5779,27 @@ Right click for insert and delete options.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2291"/>
|
||||
<location filename="../Configuration.ui" line="932"/>
|
||||
<source>How this program activates the PTT on your radio?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="954"/>
|
||||
<source><html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="985"/>
|
||||
<source><html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1083"/>
|
||||
<source>If this is available then it is usually the correct mode for this program.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2231"/>
|
||||
<source>Rescan ADIF Log</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -5889,104 +6081,114 @@ Right click for insert and delete options.</source>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="81"/>
|
||||
<location filename="../main.cpp" line="412"/>
|
||||
<location filename="../main.cpp" line="468"/>
|
||||
<source>Fatal error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="86"/>
|
||||
<location filename="../main.cpp" line="417"/>
|
||||
<location filename="../main.cpp" line="473"/>
|
||||
<source>Unexpected fatal error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="154"/>
|
||||
<location filename="../main.cpp" line="149"/>
|
||||
<source>Where <rig-name> is for multi-instance support.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="155"/>
|
||||
<location filename="../main.cpp" line="150"/>
|
||||
<source>rig-name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="160"/>
|
||||
<location filename="../main.cpp" line="155"/>
|
||||
<source>Where <configuration> is an existing one.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="161"/>
|
||||
<location filename="../main.cpp" line="156"/>
|
||||
<source>configuration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="165"/>
|
||||
<location filename="../main.cpp" line="161"/>
|
||||
<source>Where <language> is <lang-code>[-<country-code>].</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="162"/>
|
||||
<source>language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="166"/>
|
||||
<source>Writable files in test location. Use with caution, for testing only.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="170"/>
|
||||
<location filename="../main.cpp" line="171"/>
|
||||
<source>Command line error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="177"/>
|
||||
<location filename="../main.cpp" line="178"/>
|
||||
<source>Command line help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="182"/>
|
||||
<location filename="../main.cpp" line="183"/>
|
||||
<source>Application version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="229"/>
|
||||
<location filename="../main.cpp" line="283"/>
|
||||
<source>Another instance may be running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="230"/>
|
||||
<location filename="../main.cpp" line="284"/>
|
||||
<source>try to remove stale lock file?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="265"/>
|
||||
<location filename="../main.cpp" line="319"/>
|
||||
<source>Failed to create a temporary directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="266"/>
|
||||
<location filename="../main.cpp" line="274"/>
|
||||
<location filename="../main.cpp" line="320"/>
|
||||
<location filename="../main.cpp" line="328"/>
|
||||
<source>Path: "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="272"/>
|
||||
<location filename="../main.cpp" line="326"/>
|
||||
<source>Failed to create a usable temporary directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="273"/>
|
||||
<location filename="../main.cpp" line="327"/>
|
||||
<source>Another application may be locking the directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="306"/>
|
||||
<location filename="../main.cpp" line="360"/>
|
||||
<source>Failed to create data directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="307"/>
|
||||
<location filename="../main.cpp" line="361"/>
|
||||
<source>path: "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="362"/>
|
||||
<location filename="../main.cpp" line="416"/>
|
||||
<source>Shared memory error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="363"/>
|
||||
<location filename="../main.cpp" line="417"/>
|
||||
<source>Unable to create shared memory segment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
6214
translations/wsjtx_es_ES.ts
Normal file
@ -18,7 +18,7 @@
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../widgets/AbstractLogWindow.cpp" line="65"/>
|
||||
<source>Are you sure you want to delete the %n selected QSO(s) from the log</source>
|
||||
<source>Are you sure you want to delete the %n selected QSO(s) from the log?</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
<numerusform></numerusform>
|
||||
@ -692,7 +692,7 @@ Format:
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../DXLabSuiteCommanderTransceiver.cpp" line="503"/>
|
||||
<location filename="../Transceiver/DXLabSuiteCommanderTransceiver.cpp" line="503"/>
|
||||
<source>DX Lab Suite Commander sent an unrecognized frequency</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -737,6 +737,96 @@ Format:
|
||||
</context>
|
||||
<context>
|
||||
<name>DecodeHighlightingModel</name>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="104"/>
|
||||
<source>CQ in message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="105"/>
|
||||
<source>My Call in message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="106"/>
|
||||
<source>Transmitted message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="107"/>
|
||||
<source>New DXCC</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="108"/>
|
||||
<source>New DXCC on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="109"/>
|
||||
<source>New Grid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="110"/>
|
||||
<source>New Grid on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="111"/>
|
||||
<source>New Call</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="112"/>
|
||||
<source>New Call on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="113"/>
|
||||
<source>New Continent</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="114"/>
|
||||
<source>New Continent on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="115"/>
|
||||
<source>New CQ Zone</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="116"/>
|
||||
<source>New CQ Zone on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="117"/>
|
||||
<source>New ITU Zone</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="118"/>
|
||||
<source>New ITU Zone on Band</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="119"/>
|
||||
<source>LoTW User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="169"/>
|
||||
<source>f/g unset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="171"/>
|
||||
<source>b/g unset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/DecodeHighlightingModel.cpp" line="244"/>
|
||||
<source>Highlight Type</source>
|
||||
@ -1822,6 +1912,12 @@ Error(%2): %3</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="50"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5797"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5845"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6003"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6043"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6091"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6216"/>
|
||||
<source>Band Activity</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1833,6 +1929,11 @@ Error(%2): %3</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="194"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5796"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5840"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6004"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6044"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6092"/>
|
||||
<source>Rx Frequency</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2290,6 +2391,7 @@ Not available to nonstandard callsign holders.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="1394"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5867"/>
|
||||
<source>Fox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3130,6 +3232,7 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.ui" line="3125"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8103"/>
|
||||
<source>Runaway Tx watchdog</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3405,7 +3508,14 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="434"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="329"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4120"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7634"/>
|
||||
<source>Receiving</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="437"/>
|
||||
<source>Do you want to reconfigure the radio interface?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3435,7 +3545,27 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="819"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="828"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5792"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5798"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5836"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5846"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5943"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5944"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5992"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5993"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5997"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5998"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6045"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6046"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6211"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6212"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6397"/>
|
||||
<source>Message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="842"/>
|
||||
<source>Error Killing jt9.exe Process</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3455,23 +3585,23 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1254"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6063"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1258"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6186"/>
|
||||
<source>Improper mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1405"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8591"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1409"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8730"/>
|
||||
<source>File Open Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1406"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7620"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8039"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8592"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8712"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1410"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7748"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8177"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8731"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8857"/>
|
||||
<source>Cannot open "%1" for append: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3491,7 +3621,21 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2072"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1787"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5941"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6087"/>
|
||||
<source>Single-Period Decodes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="1788"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5942"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6088"/>
|
||||
<source>Average Decodes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2089"/>
|
||||
<source>Change Operator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3506,8 +3650,8 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2175"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5296"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="2200"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5405"/>
|
||||
<source>Cannot open "%1" for writing: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3625,161 +3769,194 @@ list. The list can be maintained in Settings (F2).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4546"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4224"/>
|
||||
<source>Last Tx: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4624"/>
|
||||
<source>Should you switch to EU VHF Contest mode?
|
||||
|
||||
To do so, check 'Special operating activity' and
|
||||
'EU VHF Contest' on the Settings | Advanced tab.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4643"/>
|
||||
<source>Should you switch to ARRL Field Day mode?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4553"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="4648"/>
|
||||
<source>Should you switch to RTTY contest mode?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5263"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5282"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5295"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5321"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5372"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5391"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5404"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5430"/>
|
||||
<source>Add to CALL3.TXT</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5264"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5373"/>
|
||||
<source>Please enter a valid grid locator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5283"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5392"/>
|
||||
<source>Cannot open "%1" for read/write: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5319"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5428"/>
|
||||
<source>%1
|
||||
is already in CALL3.TXT, do you wish to replace it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5486"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5603"/>
|
||||
<source>Warning: DX Call field is empty.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5539"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5660"/>
|
||||
<source>Log file error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5540"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5661"/>
|
||||
<source>Cannot open "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5556"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5677"/>
|
||||
<source>Error sending log to N1MM</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5557"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5678"/>
|
||||
<source>Write returned "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6345"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6378"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6388"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5842"/>
|
||||
<source>Stations calling DXpedition %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="5877"/>
|
||||
<source>Hound</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6217"/>
|
||||
<source>Tx Messages</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6468"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6501"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6511"/>
|
||||
<source>Confirm Erase</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6346"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6469"/>
|
||||
<source>Are you sure you want to erase file ALL.TXT?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6356"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8084"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6479"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8222"/>
|
||||
<source>Confirm Reset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6357"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6480"/>
|
||||
<source>Are you sure you want to erase your contest log?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6358"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6481"/>
|
||||
<source>Doing this will remove all QSO records for the current contest. They will be kept in the ADIF log file but will not be available for export in your Cabrillo log.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6371"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6494"/>
|
||||
<source>Cabrillo Log saved</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6379"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6502"/>
|
||||
<source>Are you sure you want to erase file wsjtx_log.adi?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6389"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6512"/>
|
||||
<source>Are you sure you want to erase the WSPR hashtable?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6483"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="6606"/>
|
||||
<source>VHF features warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7082"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7211"/>
|
||||
<source>Tune digital gain </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7084"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7213"/>
|
||||
<source>Transmit digital gain </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7103"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7232"/>
|
||||
<source>Prefixes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7472"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7601"/>
|
||||
<source>Network Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7473"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7602"/>
|
||||
<source>Error: %1
|
||||
UDP server %2:%3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7619"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7747"/>
|
||||
<source>File Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7854"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7981"/>
|
||||
<source>Phase Training Disabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7857"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="7984"/>
|
||||
<source>Phase Training Enabled</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8042"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8715"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8118"/>
|
||||
<source>WD:%1m</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8180"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8860"/>
|
||||
<source>Log File Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8085"/>
|
||||
<location filename="../widgets/mainwindow.cpp" line="8223"/>
|
||||
<source>Are you sure you want to clear the QSO queues?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -3937,7 +4114,7 @@ UDP server %2:%3</source>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="198"/>
|
||||
<location filename="../main.cpp" line="252"/>
|
||||
<source>Invalid rig name - \ & / not allowed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -4951,11 +5128,6 @@ a few, particularly some Kenwood rigs, require it).</source>
|
||||
<source>RTS:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="932"/>
|
||||
<source>How this program activates the PTT on your radio</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="935"/>
|
||||
<source>PTT Method</source>
|
||||
@ -5607,7 +5779,27 @@ Right click for insert and delete options.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2291"/>
|
||||
<location filename="../Configuration.ui" line="932"/>
|
||||
<source>How this program activates the PTT on your radio?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="954"/>
|
||||
<source><html><head/><body><p>Use the RS-232 DTR control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The DTR control line of the CAT serial port may be used for this or a DTR control line on a different serial port may be used.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="985"/>
|
||||
<source><html><head/><body><p>Use the RS-232 RTS control line to toggle your radio's PTT, requires hardware to interface the line.</p><p>Some commercial interface units also use this method.</p><p>The RTS control line of the CAT serial port may be used for this or a RTS control line on a different serial port may be used. Note that this option is not available on the CAT serial port when hardware flow control is used.</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="1083"/>
|
||||
<source>If this is available then it is usually the correct mode for this program.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Configuration.ui" line="2231"/>
|
||||
<source>Rescan ADIF Log</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -5889,104 +6081,114 @@ Right click for insert and delete options.</source>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="81"/>
|
||||
<location filename="../main.cpp" line="412"/>
|
||||
<location filename="../main.cpp" line="468"/>
|
||||
<source>Fatal error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="86"/>
|
||||
<location filename="../main.cpp" line="417"/>
|
||||
<location filename="../main.cpp" line="473"/>
|
||||
<source>Unexpected fatal error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="154"/>
|
||||
<location filename="../main.cpp" line="149"/>
|
||||
<source>Where <rig-name> is for multi-instance support.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="155"/>
|
||||
<location filename="../main.cpp" line="150"/>
|
||||
<source>rig-name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="160"/>
|
||||
<location filename="../main.cpp" line="155"/>
|
||||
<source>Where <configuration> is an existing one.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="161"/>
|
||||
<location filename="../main.cpp" line="156"/>
|
||||
<source>configuration</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="165"/>
|
||||
<location filename="../main.cpp" line="161"/>
|
||||
<source>Where <language> is <lang-code>[-<country-code>].</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="162"/>
|
||||
<source>language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="166"/>
|
||||
<source>Writable files in test location. Use with caution, for testing only.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="170"/>
|
||||
<location filename="../main.cpp" line="171"/>
|
||||
<source>Command line error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="177"/>
|
||||
<location filename="../main.cpp" line="178"/>
|
||||
<source>Command line help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="182"/>
|
||||
<location filename="../main.cpp" line="183"/>
|
||||
<source>Application version</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="229"/>
|
||||
<location filename="../main.cpp" line="283"/>
|
||||
<source>Another instance may be running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="230"/>
|
||||
<location filename="../main.cpp" line="284"/>
|
||||
<source>try to remove stale lock file?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="265"/>
|
||||
<location filename="../main.cpp" line="319"/>
|
||||
<source>Failed to create a temporary directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="266"/>
|
||||
<location filename="../main.cpp" line="274"/>
|
||||
<location filename="../main.cpp" line="320"/>
|
||||
<location filename="../main.cpp" line="328"/>
|
||||
<source>Path: "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="272"/>
|
||||
<location filename="../main.cpp" line="326"/>
|
||||
<source>Failed to create a usable temporary directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="273"/>
|
||||
<location filename="../main.cpp" line="327"/>
|
||||
<source>Another application may be locking the directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="306"/>
|
||||
<location filename="../main.cpp" line="360"/>
|
||||
<source>Failed to create data directory</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="307"/>
|
||||
<location filename="../main.cpp" line="361"/>
|
||||
<source>path: "%1"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="362"/>
|
||||
<location filename="../main.cpp" line="416"/>
|
||||
<source>Shared memory error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="363"/>
|
||||
<location filename="../main.cpp" line="417"/>
|
||||
<source>Unable to create shared memory segment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -63,7 +63,7 @@ void AbstractLogWindow::impl::delete_QSOs ()
|
||||
&& MessageBox::Yes == MessageBox::query_message (self_
|
||||
, tr ("Confirm Delete")
|
||||
, tr ("Are you sure you want to delete the %n "
|
||||
"selected QSO(s) from the log", ""
|
||||
"selected QSO(s) from the log?", ""
|
||||
, row_indexes.size ())))
|
||||
{
|
||||
// We must work with source model indexes because we don't want row
|
||||
|
@ -22,10 +22,11 @@ HelpTextWindow::HelpTextWindow (QString const& title, QString const& file_name,
|
||||
, tr ("Error: %1").arg (source.errorString ()));
|
||||
return;
|
||||
}
|
||||
setText (QTextStream {&source}.readAll ());
|
||||
setWindowTitle(QApplication::applicationName () + " - " + title);
|
||||
setMargin (10);
|
||||
setBackgroundRole (QPalette::Base);
|
||||
setAutoFillBackground (true);
|
||||
setStyleSheet (font_as_stylesheet (font));
|
||||
setText (QTextStream {&source}.readAll ());
|
||||
setMinimumSize (sizeHint ());
|
||||
}
|
||||
|
@ -497,60 +497,92 @@ namespace
|
||||
{
|
||||
void update_selection (QTextCursor& cursor, QColor const& bg, QColor const& fg)
|
||||
{
|
||||
if (!cursor.isNull ())
|
||||
QTextCharFormat format {cursor.charFormat ()};
|
||||
if (bg.isValid ())
|
||||
{
|
||||
QTextCharFormat format {cursor.charFormat ()};
|
||||
if (bg.isValid ())
|
||||
{
|
||||
format.setBackground (bg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearBackground ();
|
||||
}
|
||||
if (fg.isValid ())
|
||||
{
|
||||
format.setForeground (fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearForeground ();
|
||||
}
|
||||
cursor.mergeCharFormat (format);
|
||||
format.setBackground (bg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearBackground ();
|
||||
}
|
||||
if (fg.isValid ())
|
||||
{
|
||||
format.setForeground (fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearForeground ();
|
||||
}
|
||||
cursor.mergeCharFormat (format);
|
||||
}
|
||||
|
||||
void reset_selection (QTextCursor& cursor)
|
||||
{
|
||||
if (!cursor.isNull ())
|
||||
// restore previous text format, we rely on the text
|
||||
// char format at he start of the selection being the
|
||||
// old one which should be the case
|
||||
auto c2 = cursor;
|
||||
c2.setPosition (c2.selectionStart ());
|
||||
cursor.setCharFormat (c2.charFormat ());
|
||||
}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
QString get_timestamp (QTextCursor& cursor)
|
||||
{
|
||||
QString timestamp;
|
||||
if (cursor.movePosition (QTextCursor::PreviousCharacter)
|
||||
&& cursor.movePosition (QTextCursor::StartOfLine)
|
||||
&& cursor.movePosition (QTextCursor::EndOfWord, QTextCursor::KeepAnchor)
|
||||
&& cursor.hasSelection ())
|
||||
{
|
||||
// restore previous text format, we rely on the text
|
||||
// char format at he start of the selection being the
|
||||
// old one which should be the case
|
||||
auto c2 = cursor;
|
||||
c2.setPosition (c2.selectionStart ());
|
||||
cursor.setCharFormat (c2.charFormat ());
|
||||
timestamp = cursor.selectedText ();
|
||||
cursor.movePosition (QTextCursor::StartOfLine);
|
||||
}
|
||||
return timestamp;
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg,
|
||||
QColor const& fg, bool last_only)
|
||||
QColor const& fg, bool last_period_only)
|
||||
{
|
||||
// qDebug () << "DisplayText::highlight_callsign: callsign:" << callsign << "last period:" << last_period_only;
|
||||
if (!callsign.size ())
|
||||
{
|
||||
return;
|
||||
}
|
||||
QRegularExpression target {QString {"<?"} + callsign + QString {">?"}, QRegularExpression::DontCaptureOption};
|
||||
QTextCharFormat old_format {currentCharFormat ()};
|
||||
QTextCursor cursor {document ()};
|
||||
if (last_only)
|
||||
if (last_period_only)
|
||||
{
|
||||
// highlight each instance of the given callsign (word) in the
|
||||
// current period
|
||||
cursor.movePosition (QTextCursor::End);
|
||||
cursor = document ()->find (callsign, cursor
|
||||
, QTextDocument::FindBackward | QTextDocument::FindWholeWords);
|
||||
if (bg.isValid () || fg.isValid ())
|
||||
QTextCursor period_start {cursor};
|
||||
QTextCursor prior {cursor};
|
||||
auto period_timestamp = get_timestamp (period_start);
|
||||
while (period_timestamp.size () && period_timestamp == get_timestamp (prior))
|
||||
{
|
||||
update_selection (cursor, bg, fg);
|
||||
period_start = prior;
|
||||
}
|
||||
else
|
||||
while (!cursor.isNull () && cursor > period_start)
|
||||
{
|
||||
reset_selection (cursor);
|
||||
cursor = document ()->find (target, cursor
|
||||
, QTextDocument::FindBackward | QTextDocument::FindWholeWords);
|
||||
if (!cursor.isNull () && cursor.hasSelection ())
|
||||
{
|
||||
if (bg.isValid () || fg.isValid ())
|
||||
{
|
||||
update_selection (cursor, bg, fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
reset_selection (cursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -569,8 +601,11 @@ void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg,
|
||||
}
|
||||
while (!cursor.isNull ())
|
||||
{
|
||||
cursor = document ()->find (callsign, cursor, QTextDocument::FindWholeWords);
|
||||
update_selection (cursor, bg, fg);
|
||||
cursor = document ()->find (target, cursor, QTextDocument::FindWholeWords);
|
||||
if (!cursor.isNull () && cursor.hasSelection ())
|
||||
{
|
||||
update_selection (cursor, bg, fg);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pos != highlighted_calls_.end ())
|
||||
@ -579,8 +614,11 @@ void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg,
|
||||
QTextCursor cursor {document ()};
|
||||
while (!cursor.isNull ())
|
||||
{
|
||||
cursor = document ()->find (callsign, cursor, QTextDocument::FindWholeWords);
|
||||
reset_selection (cursor);
|
||||
cursor = document ()->find (target, cursor, QTextDocument::FindWholeWords);
|
||||
if (!cursor.isNull () && cursor.hasSelection ())
|
||||
{
|
||||
reset_selection (cursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ public:
|
||||
Q_SLOT void appendText (QString const& text, QColor bg = QColor {}, QColor fg = QColor {}
|
||||
, QString const& call1 = QString {}, QString const& call2 = QString {});
|
||||
Q_SLOT void erase ();
|
||||
Q_SLOT void highlight_callsign (QString const& callsign, QColor const& bg, QColor const& fg, bool last_only);
|
||||
Q_SLOT void highlight_callsign (QString const& callsign, QColor const& bg, QColor const& fg, bool last_period_only);
|
||||
|
||||
private:
|
||||
void mouseDoubleClickEvent (QMouseEvent *) override;
|
||||
|
@ -294,7 +294,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_saveAll {false},
|
||||
m_widebandDecode {false},
|
||||
m_dataAvailable {false},
|
||||
m_blankLine {false},
|
||||
m_decodedText2 {false},
|
||||
m_freeText {false},
|
||||
m_sentFirst73 {false},
|
||||
@ -327,7 +326,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_nsendingsh {0},
|
||||
m_onAirFreq0 {0.0},
|
||||
m_first_error {true},
|
||||
tx_status_label {"Receiving"},
|
||||
tx_status_label {tr ("Receiving")},
|
||||
wsprNet {new WSPRNet {&m_network_manager, this}},
|
||||
m_appDir {QApplication::applicationDirPath ()},
|
||||
m_cqStr {""},
|
||||
@ -802,8 +801,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
SLOT(setFreq4(int,int)));
|
||||
|
||||
decodeBusy(false);
|
||||
QString t1[19]={"1 mW","2 mW","5 mW","10 mW","20 mW","50 mW","100 mW","200 mW","500 mW",
|
||||
"1 W","2 W","5 W","10 W","20 W","50 W","100 W","200 W","500 W","1 kW"};
|
||||
|
||||
m_msg[0][0]=0;
|
||||
ui->labDXped->setVisible(false);
|
||||
@ -812,13 +809,10 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
ui->labNextCall->setVisible(false);
|
||||
ui->labNextCall->setToolTip(""); //### Possibly temporary ? ###
|
||||
|
||||
for(int i=0; i<19; i++) { //Initialize dBm values
|
||||
float dbm=(10.0*i)/3.0;
|
||||
int ndbm=int(dbm+0.5);
|
||||
QString t;
|
||||
t = t.asprintf("%d dBm ",ndbm);
|
||||
t+=t1[i];
|
||||
ui->TxPowerComboBox->addItem(t);
|
||||
char const * const power[] = {"1 mW","2 mW","5 mW","10 mW","20 mW","50 mW","100 mW","200 mW","500 mW",
|
||||
"1 W","2 W","5 W","10 W","20 W","50 W","100 W","200 W","500 W","1 kW"};
|
||||
for(auto i = 0u; i < sizeof power / sizeof power[0]; ++i) { //Initialize dBm values
|
||||
ui->TxPowerComboBox->addItem (QString {"%1 dBm %2"}.arg (int (10. * i / 3.)).arg (power[i]));
|
||||
}
|
||||
|
||||
m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
|
||||
@ -826,7 +820,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
|
||||
ui->labAz->setStyleSheet("border: 0px;");
|
||||
ui->labAz->setText("");
|
||||
auto t = "UTC dB DT Freq Message";
|
||||
auto t = "UTC dB DT Freq " + tr ("Message");
|
||||
ui->decodedTextLabel->setText(t);
|
||||
ui->decodedTextLabel2->setText(t);
|
||||
readSettings(); //Restore user's setup parameters
|
||||
@ -936,7 +930,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_saveDecoded=ui->actionSave_decoded->isChecked();
|
||||
m_saveAll=ui->actionSave_all->isChecked();
|
||||
ui->sbTxPercent->setValue(m_pctx);
|
||||
ui->TxPowerComboBox->setCurrentIndex(int(0.3*(m_dBm + 30.0)+0.2));
|
||||
ui->TxPowerComboBox->setCurrentIndex(int(.3 * m_dBm + .2));
|
||||
ui->cbUploadWSPR_Spots->setChecked(m_uploadSpots);
|
||||
if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true);
|
||||
if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true);
|
||||
@ -1200,7 +1194,7 @@ void MainWindow::readSettings()
|
||||
m_ndepth=m_settings->value("NDepth",3).toInt();
|
||||
m_pctx=m_settings->value("PctTx",20).toInt();
|
||||
m_dBm=m_settings->value("dBm",37).toInt();
|
||||
m_send_RR73=m_settings->value("RR73",37).toBool();
|
||||
m_send_RR73=m_settings->value("RR73",false).toBool();
|
||||
if(m_send_RR73) {
|
||||
m_send_RR73=false;
|
||||
on_txrb4_doubleClicked();
|
||||
@ -1426,15 +1420,9 @@ void MainWindow::dataSink(qint64 frames)
|
||||
if(m_ihsym==40 and m_decoderBusy) {
|
||||
qDebug() << "Clearing hung decoder status";
|
||||
decodeDone(); //Clear a hung decoder status
|
||||
m_blankLine=true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if(m_ihsym==m_hsymStop or (m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) or
|
||||
(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData)) {
|
||||
*/
|
||||
|
||||
bool bCallDecoder=false;
|
||||
if(m_ihsym==m_hsymStop) bCallDecoder=true;
|
||||
if(m_mode=="FT8" and !m_diskData) {
|
||||
@ -1786,8 +1774,8 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog
|
||||
m_config.transceiver_online ();
|
||||
if(!m_bFastMode) setXIT (ui->TxFreqSpinBox->value ());
|
||||
if(m_config.single_decode() or m_mode=="JT4") {
|
||||
ui->label_6->setText("Single-Period Decodes");
|
||||
ui->label_7->setText("Average Decodes");
|
||||
ui->label_6->setText(tr ("Single-Period Decodes"));
|
||||
ui->label_7->setText(tr ("Average Decodes"));
|
||||
}
|
||||
|
||||
update_watchdog_label ();
|
||||
@ -2109,7 +2097,6 @@ void MainWindow::keyPressEvent (QKeyEvent * e)
|
||||
case Qt::Key_Z: //### Recover from hung decode() ?? ###
|
||||
if(e->modifiers() & Qt::AltModifier) {
|
||||
decodeDone();
|
||||
m_blankLine=true;
|
||||
return;
|
||||
}
|
||||
break; case Qt::Key_PageUp:
|
||||
@ -2299,10 +2286,13 @@ void MainWindow::setup_status_bar (bool vhf)
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #99ff33}");
|
||||
} else if ("MSK144" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff6666}");
|
||||
} else if ("FT4" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff0099}");
|
||||
} else if ("FT8" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #6699ff}");
|
||||
} else if ("FreqCal" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); }
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff9933}");
|
||||
}
|
||||
last_tx_label.setText (QString {});
|
||||
if (m_mode.contains (QRegularExpression {R"(^(Echo|ISCAT))"})) {
|
||||
if (band_hopping_label.isVisible ()) statusBar ()->removeWidget (&band_hopping_label);
|
||||
@ -2829,7 +2819,6 @@ void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request
|
||||
if(!m_mode.startsWith ("WSPR") && !m_decoderBusy) {
|
||||
dec_data.params.newdat=0;
|
||||
dec_data.params.nagain=1;
|
||||
m_blankLine=false; // don't insert the separator again
|
||||
decode();
|
||||
}
|
||||
}
|
||||
@ -3120,11 +3109,6 @@ void MainWindow::decodeDone ()
|
||||
ui->DecodeButton->setChecked (false);
|
||||
decodeBusy(false);
|
||||
m_RxLog=0;
|
||||
m_blankLine=true;
|
||||
if(m_mode=="FT8") {
|
||||
if(dec_data.params.nzhsym==m_earlyDecode) m_blankLine=false;
|
||||
if(dec_data.params.nzhsym==m_earlyDecode2) m_blankLine=false;
|
||||
}
|
||||
if(SpecOp::FOX == m_config.special_op_id()) houndCallers();
|
||||
to_jt9(m_ihsym,-1,1); //Tell jt9 we know it has finished
|
||||
|
||||
@ -3180,13 +3164,19 @@ void MainWindow::readFromStdout() //readFromStdout
|
||||
if(navg>=2) bAvgMsg=true;
|
||||
}
|
||||
write_all("Rx",line_read.trimmed());
|
||||
if (m_config.insert_blank () && m_blankLine && SpecOp::FOX != m_config.special_op_id()) {
|
||||
QString band;
|
||||
if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*int(m_TRperiod)/4) {
|
||||
band = ' ' + m_config.bands ()->find (m_freqNominal);
|
||||
}
|
||||
ui->decodedTextBrowser->insertLineSpacer (band.rightJustified (40, '-'));
|
||||
m_blankLine = false;
|
||||
int ntime=6;
|
||||
if(m_TRperiod>=60) ntime=4;
|
||||
if (line_read.left(ntime) != m_tBlankLine) {
|
||||
ui->decodedTextBrowser->new_period ();
|
||||
if (m_config.insert_blank ()
|
||||
&& SpecOp::FOX != m_config.special_op_id()) {
|
||||
QString band;
|
||||
if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*int(m_TRperiod)/4) {
|
||||
band = ' ' + m_config.bands ()->find (m_freqNominal);
|
||||
}
|
||||
ui->decodedTextBrowser->insertLineSpacer (band.rightJustified (40, '-'));
|
||||
}
|
||||
m_tBlankLine = line_read.left(ntime);
|
||||
}
|
||||
|
||||
DecodedText decodedtext0 {QString::fromUtf8(line_read.constData())};
|
||||
@ -3504,11 +3494,6 @@ void MainWindow::decodeBusy(bool b) //decodeBusy()
|
||||
{
|
||||
if (!b) {
|
||||
m_optimizingProgress.reset ();
|
||||
} else {
|
||||
if (!m_decoderBusy)
|
||||
{
|
||||
ui->decodedTextBrowser->new_period ();
|
||||
}
|
||||
}
|
||||
m_decoderBusy=b;
|
||||
ui->DecodeButton->setEnabled(!b);
|
||||
@ -4123,12 +4108,11 @@ void MainWindow::guiUpdate()
|
||||
} else if(m_monitoring) {
|
||||
if (!m_tx_watchdog) {
|
||||
tx_status_label.setStyleSheet("QLabel{background-color: #00ff00}");
|
||||
QString t;
|
||||
t="Receiving";
|
||||
auto t = tr ("Receiving");
|
||||
if(m_mode=="MSK144") {
|
||||
int npct=int(100.0*m_fCPUmskrtd/0.298667);
|
||||
if(npct>90) tx_status_label.setStyleSheet("QLabel{background-color: #ff0000}");
|
||||
t = t.asprintf("Receiving %2d%%",npct);
|
||||
t += QString {" %1%"}.arg (npct, 2);
|
||||
}
|
||||
tx_status_label.setText (t);
|
||||
}
|
||||
@ -4228,7 +4212,7 @@ void MainWindow::stopTx2()
|
||||
WSPR_scheduling ();
|
||||
m_ntr=0;
|
||||
}
|
||||
last_tx_label.setText("Last Tx: " + m_currentMessage.trimmed());
|
||||
last_tx_label.setText(tr ("Last Tx: %1").arg (m_currentMessage.trimmed()));
|
||||
}
|
||||
|
||||
void MainWindow::ba2msg(QByteArray ba, char message[]) //ba2msg()
|
||||
@ -4451,6 +4435,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers)
|
||||
if(m_mode=="ISCAT") {
|
||||
MessageBox::information_message (this,
|
||||
"Double-click not available for ISCAT mode");
|
||||
return;
|
||||
}
|
||||
if(m_decodedText2) {
|
||||
cursor=ui->decodedTextBrowser->textCursor();
|
||||
@ -5147,7 +5132,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
}
|
||||
if(SpecOp::EU_VHF==m_config.special_op_id()) {
|
||||
QString a;
|
||||
t="<" + t0.split(" ").at(0) + "> <" + t0.split(" ").at(1) + "> ";
|
||||
t="<" + t0s.split(" ").at(0) + "> <" + t0s.split(" ").at(1) + "> ";
|
||||
a = a.asprintf("%4.4d ",ui->sbSerialNumber->value());
|
||||
sent=rs + a + m_config.my_grid();
|
||||
}
|
||||
@ -5233,7 +5218,8 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
case Configuration::type_2_msg_1_full:
|
||||
msgtype(t + my_grid, ui->tx1);
|
||||
if (!eme_short_codes) {
|
||||
if((m_mode=="MSK144" || m_mode=="FT8") && SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
if((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") &&
|
||||
SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
msgtype(t + "R " + my_grid, ui->tx3);
|
||||
} else {
|
||||
msgtype(t + "R" + rpt, ui->tx3);
|
||||
@ -5245,7 +5231,8 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
break;
|
||||
|
||||
case Configuration::type_2_msg_3_full:
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8") && SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") &&
|
||||
SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
msgtype(t + "R " + my_grid, ui->tx3);
|
||||
msgtype(t + "RRR", ui->tx4);
|
||||
} else {
|
||||
@ -5260,7 +5247,8 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
case Configuration::type_2_msg_5_only:
|
||||
msgtype(t00 + my_grid, ui->tx1);
|
||||
if (!eme_short_codes) {
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8") && SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") &&
|
||||
SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
msgtype(t + "R " + my_grid, ui->tx3);
|
||||
msgtype(t + "RRR", ui->tx4);
|
||||
} else {
|
||||
@ -5474,7 +5462,8 @@ void MainWindow::msgtype(QString t, QLineEdit* tx) //msgtype()
|
||||
//### Check this stuff ###
|
||||
if(itype==7 and m_config.enable_VHF_features() and m_mode=="JT65") shortMsg=true;
|
||||
if(m_mode=="MSK144" and t.mid(0,1)=="<") text=false;
|
||||
if((m_mode=="MSK144" or m_mode=="FT8") and SpecOp::NA_VHF==m_config.special_op_id()) {
|
||||
if((m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4") and
|
||||
SpecOp::NA_VHF==m_config.special_op_id()) {
|
||||
int i0=t.trimmed().length()-7;
|
||||
if(t.mid(i0,3)==" R ") text=false;
|
||||
}
|
||||
@ -5734,7 +5723,6 @@ void MainWindow::displayWidgets(qint64 n)
|
||||
if(i==12) ui->pbR2T->setVisible(b);
|
||||
if(i==13) ui->pbT2R->setVisible(b);
|
||||
if(i==14) ui->cbHoldTxFreq->setVisible(b);
|
||||
if(i==14 and (!b)) ui->cbHoldTxFreq->setChecked(false);
|
||||
if(i==15) ui->sbSubmode->setVisible(b);
|
||||
if(i==16) ui->syncSpinBox->setVisible(b);
|
||||
if(i==17) ui->WSPR_controls_widget->setVisible(b);
|
||||
@ -5796,13 +5784,13 @@ void MainWindow::on_actionFT4_triggered()
|
||||
// ui->cbAutoSeq->setChecked(false);
|
||||
m_fastGraph->hide();
|
||||
m_wideGraph->show();
|
||||
ui->decodedTextLabel2->setText(" UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message"));
|
||||
m_wideGraph->setPeriod(m_TRperiod,m_nsps);
|
||||
m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
ui->label_7->setText("Rx Frequency");
|
||||
ui->label_6->setText("Band Activity");
|
||||
ui->decodedTextLabel->setText( " UTC dB DT Freq Message");
|
||||
ui->label_7->setText(tr ("Rx Frequency"));
|
||||
ui->label_6->setText(tr ("Band Activity"));
|
||||
ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message"));
|
||||
displayWidgets(nWidgets("111010000100111000010000000110001"));
|
||||
ui->txrb2->setEnabled(true);
|
||||
ui->txrb4->setEnabled(true);
|
||||
@ -5840,17 +5828,17 @@ void MainWindow::on_actionFT8_triggered()
|
||||
m_TRperiod=15.0;
|
||||
m_fastGraph->hide();
|
||||
m_wideGraph->show();
|
||||
ui->decodedTextLabel2->setText(" UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel2->setText(" UTC dB DT Freq " + tr ("Message"));
|
||||
m_wideGraph->setPeriod(m_TRperiod,m_nsps);
|
||||
m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
ui->label_7->setText("Rx Frequency");
|
||||
ui->label_7->setText(tr ("Rx Frequency"));
|
||||
if(SpecOp::FOX==m_config.special_op_id()) {
|
||||
ui->label_6->setText("Stations calling DXpedition " + m_config.my_callsign());
|
||||
ui->label_6->setText(tr ("Stations calling DXpedition %1").arg (m_config.my_callsign()));
|
||||
ui->decodedTextLabel->setText( "Call Grid dB Freq Dist Age Continent");
|
||||
} else {
|
||||
ui->label_6->setText("Band Activity");
|
||||
ui->decodedTextLabel->setText( " UTC dB DT Freq Message");
|
||||
ui->label_6->setText(tr ("Band Activity"));
|
||||
ui->decodedTextLabel->setText( " UTC dB DT Freq " + tr ("Message"));
|
||||
}
|
||||
displayWidgets(nWidgets("111010000100111000010000100110001"));
|
||||
ui->txrb2->setEnabled(true);
|
||||
@ -5871,7 +5859,7 @@ void MainWindow::on_actionFT8_triggered()
|
||||
ui->tabWidget->setCurrentIndex(2);
|
||||
ui->TxFreqSpinBox->setValue(300);
|
||||
displayWidgets(nWidgets("111010000100111000010000000000100"));
|
||||
ui->labDXped->setText("Fox");
|
||||
ui->labDXped->setText(tr ("Fox"));
|
||||
on_fox_log_action_triggered();
|
||||
}
|
||||
if(SpecOp::HOUND == m_config.special_op_id()) {
|
||||
@ -5881,7 +5869,7 @@ void MainWindow::on_actionFT8_triggered()
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
ui->cbHoldTxFreq->setChecked(true);
|
||||
displayWidgets(nWidgets("111010000100110000010000000000110"));
|
||||
ui->labDXped->setText("Hound");
|
||||
ui->labDXped->setText(tr ("Hound"));
|
||||
ui->txrb1->setChecked(true);
|
||||
ui->txrb2->setEnabled(false);
|
||||
ui->txrb4->setEnabled(false);
|
||||
@ -5945,10 +5933,10 @@ void MainWindow::on_actionJT4_triggered()
|
||||
m_bFast9=false;
|
||||
setup_status_bar (bVHF);
|
||||
ui->sbSubmode->setMaximum(6);
|
||||
ui->label_6->setText("Single-Period Decodes");
|
||||
ui->label_7->setText("Average Decodes");
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel2->setText("UTC dB DT Freq Message");
|
||||
ui->label_6->setText(tr ("Single-Period Decodes"));
|
||||
ui->label_7->setText(tr ("Average Decodes"));
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
if(bVHF) {
|
||||
ui->sbSubmode->setValue(m_nSubMode);
|
||||
} else {
|
||||
@ -5996,19 +5984,19 @@ void MainWindow::on_actionJT9_triggered()
|
||||
m_fastGraph->show();
|
||||
ui->TxFreqSpinBox->setValue(700);
|
||||
ui->RxFreqSpinBox->setValue(700);
|
||||
ui->decodedTextLabel->setText("UTC dB T Freq Message");
|
||||
ui->decodedTextLabel2->setText("UTC dB T Freq Message");
|
||||
ui->decodedTextLabel->setText("UTC dB T Freq " + tr ("Message"));
|
||||
ui->decodedTextLabel2->setText("UTC dB T Freq " + tr ("Message"));
|
||||
} else {
|
||||
ui->cbAutoSeq->setChecked(false);
|
||||
m_TRperiod=60.0;
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel2->setText("UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
}
|
||||
m_wideGraph->setPeriod(m_TRperiod,m_nsps);
|
||||
m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
ui->label_6->setText("Band Activity");
|
||||
ui->label_7->setText("Rx Frequency");
|
||||
ui->label_6->setText(tr ("Band Activity"));
|
||||
ui->label_7->setText(tr ("Rx Frequency"));
|
||||
if(bVHF) {
|
||||
displayWidgets(nWidgets("111110101000111110010000000000000"));
|
||||
} else {
|
||||
@ -6047,10 +6035,10 @@ void MainWindow::on_actionJT9_JT65_triggered()
|
||||
m_bFastMode=false;
|
||||
m_bFast9=false;
|
||||
ui->sbSubmode->setValue(0);
|
||||
ui->label_6->setText("Band Activity");
|
||||
ui->label_7->setText("Rx Frequency");
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel2->setText("UTC dB DT Freq Message");
|
||||
ui->label_6->setText(tr ("Band Activity"));
|
||||
ui->label_7->setText(tr ("Rx Frequency"));
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
ui->decodedTextLabel2->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
displayWidgets(nWidgets("111010000001111000010000000000001"));
|
||||
fast_config(false);
|
||||
statusChanged();
|
||||
@ -6091,12 +6079,12 @@ void MainWindow::on_actionJT65_triggered()
|
||||
ui->sbSubmode->setMaximum(2);
|
||||
if(bVHF) {
|
||||
ui->sbSubmode->setValue(m_nSubMode);
|
||||
ui->label_6->setText("Single-Period Decodes");
|
||||
ui->label_7->setText("Average Decodes");
|
||||
ui->label_6->setText(tr ("Single-Period Decodes"));
|
||||
ui->label_7->setText(tr ("Average Decodes"));
|
||||
} else {
|
||||
ui->sbSubmode->setValue(0);
|
||||
ui->label_6->setText("Band Activity");
|
||||
ui->label_7->setText("Rx Frequency");
|
||||
ui->label_6->setText(tr ("Band Activity"));
|
||||
ui->label_7->setText(tr ("Rx Frequency"));
|
||||
}
|
||||
if(bVHF) {
|
||||
displayWidgets(nWidgets("111110010000110110101100010000000"));
|
||||
@ -6215,13 +6203,13 @@ void MainWindow::on_actionMSK144_triggered()
|
||||
ui->RxFreqSpinBox->setMinimum(1400);
|
||||
ui->RxFreqSpinBox->setMaximum(1600);
|
||||
ui->RxFreqSpinBox->setSingleStep(10);
|
||||
ui->decodedTextLabel->setText("UTC dB T Freq Message");
|
||||
ui->decodedTextLabel2->setText("UTC dB T Freq Message");
|
||||
ui->decodedTextLabel->setText("UTC dB T Freq " + tr ("Message"));
|
||||
ui->decodedTextLabel2->setText("UTC dB T Freq " + tr ("Message"));
|
||||
m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe
|
||||
m_fastGraph->setTRPeriod(m_TRperiod);
|
||||
ui->label_6->setText("Band Activity");
|
||||
ui->label_7->setText("Tx Messages");
|
||||
ui->label_6->setText(tr ("Band Activity"));
|
||||
ui->label_7->setText(tr ("Tx Messages"));
|
||||
ui->actionMSK144->setChecked(true);
|
||||
ui->rptSpinBox->setMinimum(-8);
|
||||
ui->rptSpinBox->setMaximum(24);
|
||||
@ -6401,7 +6389,7 @@ void MainWindow::WSPR_config(bool b)
|
||||
}
|
||||
m_bSimplex = true;
|
||||
} else {
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq Message");
|
||||
ui->decodedTextLabel->setText("UTC dB DT Freq " + tr ("Message"));
|
||||
m_bSimplex = false;
|
||||
}
|
||||
enable_DXCC_entity (m_config.DXCC ()); // sets text window proportions and (re)inits the logbook
|
||||
@ -7638,7 +7626,7 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout
|
||||
if(!m_diskData) {
|
||||
WSPR_history(m_dialFreqRxWSPR, m_nWSPRdecodes);
|
||||
if(m_nWSPRdecodes==0 and ui->band_hopping_group_box->isChecked()) {
|
||||
t = " Receiving " + m_mode + " ----------------------- " +
|
||||
t = " " + tr ("Receiving") + " " + m_mode + " ----------------------- " +
|
||||
m_config.bands ()->find (m_dialFreqRxWSPR);
|
||||
t=WSPR_hhmm(-60) + ' ' + t.rightJustified (66, '-');
|
||||
ui->decodedTextBrowser->appendText(t);
|
||||
@ -7658,7 +7646,6 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout
|
||||
}
|
||||
m_RxLog=0;
|
||||
m_startAnother=m_loopall;
|
||||
m_blankLine=true;
|
||||
m_decoderBusy = false;
|
||||
statusUpdate ();
|
||||
} else {
|
||||
@ -7710,12 +7697,15 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout
|
||||
rxLine += t1;
|
||||
}
|
||||
|
||||
if (m_config.insert_blank () && m_blankLine) {
|
||||
QString band;
|
||||
Frequency f=1000000.0*rxFields.at(3).toDouble()+0.5;
|
||||
band = ' ' + m_config.bands ()->find (f);
|
||||
ui->decodedTextBrowser->appendText(band.rightJustified (71, '-'));
|
||||
m_blankLine = false;
|
||||
if (rxLine.left (4) != m_tBlankLine) {
|
||||
ui->decodedTextBrowser->new_period ();
|
||||
if (m_config.insert_blank ()) {
|
||||
QString band;
|
||||
Frequency f=1000000.0*rxFields.at(3).toDouble()+0.5;
|
||||
band = ' ' + m_config.bands ()->find (f);
|
||||
ui->decodedTextBrowser->appendText(band.rightJustified (71, '-'));
|
||||
}
|
||||
m_tBlankLine = rxLine.left(4);
|
||||
}
|
||||
m_nWSPRdecodes += 1;
|
||||
ui->decodedTextBrowser->appendText(rxLine);
|
||||
@ -7967,7 +7957,6 @@ void MainWindow::fastPick(int x0, int x1, int y)
|
||||
if(!m_decoderBusy) {
|
||||
dec_data.params.newdat=0;
|
||||
dec_data.params.nagain=1;
|
||||
m_blankLine=false; // don't insert the separator again
|
||||
m_nPick=1;
|
||||
if(y > 120) m_nPick=2;
|
||||
m_t0Pick=x0/pixPerSecond;
|
||||
@ -8109,7 +8098,7 @@ void MainWindow::tx_watchdog (bool triggered)
|
||||
if (m_tune) stop_tuning ();
|
||||
if (m_auto) auto_tx_mode (false);
|
||||
tx_status_label.setStyleSheet ("QLabel{background-color: #ff0000}");
|
||||
tx_status_label.setText ("Runaway Tx watchdog");
|
||||
tx_status_label.setText (tr ("Runaway Tx watchdog"));
|
||||
QApplication::alert (this);
|
||||
}
|
||||
else
|
||||
@ -8124,7 +8113,7 @@ void MainWindow::update_watchdog_label ()
|
||||
{
|
||||
if (m_config.watchdog () && !m_mode.startsWith ("WSPR"))
|
||||
{
|
||||
watchdog_label.setText (QString {"WD:%1m"}.arg (m_config.watchdog () - m_idleMinutes));
|
||||
watchdog_label.setText (tr ("WD:%1m").arg (m_config.watchdog () - m_idleMinutes));
|
||||
watchdog_label.setVisible (true);
|
||||
}
|
||||
else
|
||||
|
@ -486,7 +486,6 @@ private:
|
||||
bool m_dataAvailable;
|
||||
bool m_bDecoded;
|
||||
bool m_noSuffix;
|
||||
bool m_blankLine;
|
||||
bool m_decodedText2;
|
||||
bool m_freeText;
|
||||
bool m_sentFirst73;
|
||||
@ -494,6 +493,7 @@ private:
|
||||
QString m_currentMessage;
|
||||
int m_lastMessageType;
|
||||
QString m_lastMessageSent;
|
||||
QString m_tBlankLine;
|
||||
bool m_bShMsgs;
|
||||
bool m_bSWL;
|
||||
bool m_uploadSpots;
|
||||
|
@ -488,6 +488,9 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
painter0.drawLine(x1,24,x1,30);
|
||||
}
|
||||
|
||||
int yh=5;
|
||||
int yTxTop=12;
|
||||
int yRxBottom=yTxTop + 2*yh + 4;
|
||||
if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65"
|
||||
or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4") {
|
||||
|
||||
@ -513,12 +516,14 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
painter0.drawLine(x6,24,x6,30);
|
||||
|
||||
} else {
|
||||
// Draw the green "goal post"
|
||||
painter0.setPen(penGreen);
|
||||
x1=XfromFreq(m_rxFreq);
|
||||
x2=XfromFreq(m_rxFreq+bw);
|
||||
painter0.drawLine(x1,24,x1,30);
|
||||
painter0.drawLine(x1,28,x2,28);
|
||||
painter0.drawLine(x2,24,x2,30);
|
||||
painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom);
|
||||
painter0.drawLine(x1,yRxBottom,x2,yRxBottom);
|
||||
painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -538,9 +543,10 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
x1=XfromFreq(m_txFreq-0.5*bw);
|
||||
x2=XfromFreq(m_txFreq+0.5*bw);
|
||||
}
|
||||
painter0.drawLine(x1,17,x1,21);
|
||||
painter0.drawLine(x1,17,x2,17);
|
||||
painter0.drawLine(x2,17,x2,21);
|
||||
// Draw the red "goal post"
|
||||
painter0.drawLine(x1,yTxTop,x1,yTxTop+yh);
|
||||
painter0.drawLine(x1,yTxTop,x2,yTxTop);
|
||||
painter0.drawLine(x2,yTxTop,x2,yTxTop+yh);
|
||||
}
|
||||
|
||||
if(m_mode=="JT9+JT65") {
|
||||
|
@ -157,6 +157,9 @@
|
||||
<property name="text">
|
||||
<string>Adjust...</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -9,8 +9,8 @@ SOURCES += \
|
||||
widgets/colorhighlighting.cpp widgets/ExportCabrillo.cpp \
|
||||
widgets/AbstractLogWindow.cpp \
|
||||
widgets/FrequencyLineEdit.cpp widgets/FrequencyDeltaLineEdit.cpp \
|
||||
widgets/FoxLogWindow.cpp widgets/CabrilloLogWindow.cpp
|
||||
|
||||
widgets/FoxLogWindow.cpp widgets/CabrilloLogWindow.cpp \
|
||||
widgets/HelpTextWindow.cpp
|
||||
HEADERS += \
|
||||
widgets/mainwindow.h widgets/plotter.h \
|
||||
widgets/about.h widgets/widegraph.h \
|
||||
@ -21,7 +21,7 @@ HEADERS += \
|
||||
widgets/fastplot.h widgets/MessageBox.hpp widgets/colorhighlighting.h \
|
||||
widgets/ExportCabrillo.h widgets/AbstractLogWindow.hpp \
|
||||
widgets/FoxLogWindow.hpp widgets/CabrilloLogWindow.hpp \
|
||||
widgets/DateTimeEdit.hpp
|
||||
widgets/DateTimeEdit.hpp widgets/HelpTextWindow.hpp
|
||||
|
||||
FORMS += \
|
||||
widgets/mainwindow.ui widgets/about.ui \
|
||||
|