not1mm 24.8.20__tar.gz → 24.8.27__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {not1mm-24.8.20 → not1mm-24.8.27}/PKG-INFO +32 -4
- {not1mm-24.8.20 → not1mm-24.8.27}/README.md +31 -3
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/__main__.py +16 -4
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/new_contest.ui +6 -1
- not1mm-24.8.27/not1mm/data/splash.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/database.py +32 -1
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/ham_utility.py +26 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/version.py +1 -1
- not1mm-24.8.27/not1mm/plugins/helvetia.py +497 -0
- not1mm-24.8.20/not1mm/playsoundtest.py → not1mm-24.8.27/not1mm/test.py +3 -5
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm.egg-info/PKG-INFO +32 -4
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm.egg-info/SOURCES.txt +3 -1
- {not1mm-24.8.20 → not1mm-24.8.27}/pyproject.toml +1 -1
- {not1mm-24.8.20 → not1mm-24.8.27}/LICENSE +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/__init__.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/bandmap.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/checkwindow.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/JetBrainsMono-Regular.ttf +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/about.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/bandmap.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/check.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/configuration.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/contests.sql +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/cty.json +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/donors.html +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/editcontact.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/editmacro.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/greendot.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/logwindow.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/logwindowx.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/main.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/not1mm.html +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/opon.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/radio_green.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/radio_grey.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/radio_red.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/reddot.png +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/settings.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/data/vfo.ui +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/fsutils.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/__init__.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/about.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/edit_station.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/ft8_watcher.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/lookup.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/multicast.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/n1mm.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/new_contest.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/playsound.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/select_contest.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/settings.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/lib/versiontest.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/logwindow.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/__init__.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/cwt.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/icwc_mst.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/k1usn_sst.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/radio.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/vfo.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm/voice_keying.py +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-24.8.20 → not1mm-24.8.27}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.8.
|
3
|
+
Version: 24.8.27
|
4
4
|
Summary: NOT1MM Logger
|
5
5
|
Author-email: Michael Bridak <michael.bridak@gmail.com>
|
6
6
|
Project-URL: Homepage, https://github.com/mbridak/not1mm
|
@@ -69,6 +69,7 @@ Requires-Dist: Levenshtein
|
|
69
69
|
- [Fedora 38 \& 39](#fedora-38--39)
|
70
70
|
- [Fedora 40](#fedora-40)
|
71
71
|
- [Manjaro](#manjaro)
|
72
|
+
- [Mint](#mint)
|
72
73
|
- [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
|
73
74
|
- [Bootstrapping pipx](#bootstrapping-pipx)
|
74
75
|
- [Installing with pipx](#installing-with-pipx)
|
@@ -209,6 +210,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
209
210
|
- CQ World Wide CW
|
210
211
|
- CQ World Wide SSB
|
211
212
|
- CWOps CWT
|
213
|
+
- Helvetia
|
212
214
|
- IARU HF
|
213
215
|
- ICWC MST
|
214
216
|
- Japan International DX CW
|
@@ -223,6 +225,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
223
225
|
|
224
226
|
## Recent Changes
|
225
227
|
|
228
|
+
- [24-8-27] Added Helvetia contest.
|
229
|
+
- [24-8-22] Add loading splash screen.
|
226
230
|
- [24-8-20] Added K1USN Slow Speed Test
|
227
231
|
- [24-8-17-1] Did an oops. Fixed the oops.
|
228
232
|
- [24-8-17] Removed some cruft. Made dockable widgets not floatable since Wayland breaks this.
|
@@ -240,8 +244,14 @@ clue me into the black magic needed to get it to work.
|
|
240
244
|
|
241
245
|
### Prerequisites
|
242
246
|
|
243
|
-
not1mm requires
|
244
|
-
|
247
|
+
not1mm requires:
|
248
|
+
|
249
|
+
- Python 3.9+
|
250
|
+
- PyQt6
|
251
|
+
- libportaudio2
|
252
|
+
- libxcb-cursor0 (maybe... Depends on the distro)
|
253
|
+
|
254
|
+
You should install these through your distribution's package manager before continuing.
|
245
255
|
|
246
256
|
### Common installation recipes for Ubuntu and Fedora
|
247
257
|
|
@@ -318,6 +328,22 @@ pip install not1mm
|
|
318
328
|
pamac build not1mm-git
|
319
329
|
```
|
320
330
|
|
331
|
+
</details>
|
332
|
+
|
333
|
+
<details>
|
334
|
+
|
335
|
+
<summary><b>Mint 22</b></summary>
|
336
|
+
|
337
|
+
#### Mint
|
338
|
+
|
339
|
+
```bash
|
340
|
+
sudo apt install python3-pip
|
341
|
+
sudo apt install pipx
|
342
|
+
sudo apt install libxcb-cursor0
|
343
|
+
pipx install not1mm
|
344
|
+
pipx ensurepath
|
345
|
+
```
|
346
|
+
|
321
347
|
</details>
|
322
348
|
<br>
|
323
349
|
|
@@ -429,7 +455,9 @@ qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it
|
|
429
455
|
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
|
430
456
|
```
|
431
457
|
|
432
|
-
|
458
|
+
You can use your package manager to load libxcb-cursor0.
|
459
|
+
|
460
|
+
If that's not an option, you can export an environment variable and launch the app like this:
|
433
461
|
|
434
462
|
`mbridak@vm:~$ export QT_QPA_PLATFORM=wayland; not1mm`
|
435
463
|
|
@@ -38,6 +38,7 @@
|
|
38
38
|
- [Fedora 38 \& 39](#fedora-38--39)
|
39
39
|
- [Fedora 40](#fedora-40)
|
40
40
|
- [Manjaro](#manjaro)
|
41
|
+
- [Mint](#mint)
|
41
42
|
- [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
|
42
43
|
- [Bootstrapping pipx](#bootstrapping-pipx)
|
43
44
|
- [Installing with pipx](#installing-with-pipx)
|
@@ -178,6 +179,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
178
179
|
- CQ World Wide CW
|
179
180
|
- CQ World Wide SSB
|
180
181
|
- CWOps CWT
|
182
|
+
- Helvetia
|
181
183
|
- IARU HF
|
182
184
|
- ICWC MST
|
183
185
|
- Japan International DX CW
|
@@ -192,6 +194,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
|
|
192
194
|
|
193
195
|
## Recent Changes
|
194
196
|
|
197
|
+
- [24-8-27] Added Helvetia contest.
|
198
|
+
- [24-8-22] Add loading splash screen.
|
195
199
|
- [24-8-20] Added K1USN Slow Speed Test
|
196
200
|
- [24-8-17-1] Did an oops. Fixed the oops.
|
197
201
|
- [24-8-17] Removed some cruft. Made dockable widgets not floatable since Wayland breaks this.
|
@@ -209,8 +213,14 @@ clue me into the black magic needed to get it to work.
|
|
209
213
|
|
210
214
|
### Prerequisites
|
211
215
|
|
212
|
-
not1mm requires
|
213
|
-
|
216
|
+
not1mm requires:
|
217
|
+
|
218
|
+
- Python 3.9+
|
219
|
+
- PyQt6
|
220
|
+
- libportaudio2
|
221
|
+
- libxcb-cursor0 (maybe... Depends on the distro)
|
222
|
+
|
223
|
+
You should install these through your distribution's package manager before continuing.
|
214
224
|
|
215
225
|
### Common installation recipes for Ubuntu and Fedora
|
216
226
|
|
@@ -287,6 +297,22 @@ pip install not1mm
|
|
287
297
|
pamac build not1mm-git
|
288
298
|
```
|
289
299
|
|
300
|
+
</details>
|
301
|
+
|
302
|
+
<details>
|
303
|
+
|
304
|
+
<summary><b>Mint 22</b></summary>
|
305
|
+
|
306
|
+
#### Mint
|
307
|
+
|
308
|
+
```bash
|
309
|
+
sudo apt install python3-pip
|
310
|
+
sudo apt install pipx
|
311
|
+
sudo apt install libxcb-cursor0
|
312
|
+
pipx install not1mm
|
313
|
+
pipx ensurepath
|
314
|
+
```
|
315
|
+
|
290
316
|
</details>
|
291
317
|
<br>
|
292
318
|
|
@@ -398,7 +424,9 @@ qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it
|
|
398
424
|
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
|
399
425
|
```
|
400
426
|
|
401
|
-
|
427
|
+
You can use your package manager to load libxcb-cursor0.
|
428
|
+
|
429
|
+
If that's not an option, you can export an environment variable and launch the app like this:
|
402
430
|
|
403
431
|
`mbridak@vm:~$ export QT_QPA_PLATFORM=wayland; not1mm`
|
404
432
|
|
@@ -35,9 +35,9 @@ except OSError as exception:
|
|
35
35
|
print("portaudio is not installed")
|
36
36
|
sd = None
|
37
37
|
from PyQt6 import QtCore, QtGui, QtWidgets, uic
|
38
|
-
from PyQt6.QtCore import QDir, Qt, QThread, QSettings
|
39
|
-
from PyQt6.QtGui import QFontDatabase, QColorConstants, QPalette, QColor
|
40
|
-
from PyQt6.QtWidgets import QFileDialog
|
38
|
+
from PyQt6.QtCore import QDir, Qt, QThread, QSettings, QCoreApplication
|
39
|
+
from PyQt6.QtGui import QFontDatabase, QColorConstants, QPalette, QColor, QPixmap
|
40
|
+
from PyQt6.QtWidgets import QFileDialog, QSplashScreen
|
41
41
|
|
42
42
|
from not1mm.lib.about import About
|
43
43
|
from not1mm.lib.cwinterface import CW
|
@@ -3398,12 +3398,24 @@ logging.basicConfig(
|
|
3398
3398
|
logging.getLogger("PyQt6.uic.uiparser").setLevel("INFO")
|
3399
3399
|
logging.getLogger("PyQt6.uic.properties").setLevel("INFO")
|
3400
3400
|
app = QtWidgets.QApplication(sys.argv)
|
3401
|
+
|
3402
|
+
pixmap = QPixmap(f"{os.fspath(fsutils.APP_DATA_PATH)}/splash.png")
|
3403
|
+
splash = QSplashScreen(pixmap)
|
3404
|
+
splash.show()
|
3405
|
+
app.processEvents()
|
3406
|
+
splash.showMessage(
|
3407
|
+
"Starting Up",
|
3408
|
+
alignment=Qt.AlignmentFlag.AlignBottom | Qt.AlignmentFlag.AlignCenter,
|
3409
|
+
color=QColor(255, 255, 0),
|
3410
|
+
)
|
3411
|
+
QCoreApplication.processEvents()
|
3412
|
+
|
3401
3413
|
families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
|
3402
3414
|
logger.info(f"font families {families}")
|
3403
3415
|
window = MainWindow()
|
3404
3416
|
window.callsign.setFocus()
|
3405
3417
|
window.show()
|
3406
|
-
|
3418
|
+
splash.finish(window)
|
3407
3419
|
|
3408
3420
|
if __name__ == "__main__":
|
3409
3421
|
run()
|
@@ -297,6 +297,11 @@
|
|
297
297
|
<string>CWT</string>
|
298
298
|
</property>
|
299
299
|
</item>
|
300
|
+
<item>
|
301
|
+
<property name="text">
|
302
|
+
<string>HELVETIA</string>
|
303
|
+
</property>
|
304
|
+
</item>
|
300
305
|
<item>
|
301
306
|
<property name="text">
|
302
307
|
<string>ICWC MST</string>
|
@@ -356,7 +361,7 @@
|
|
356
361
|
</property>
|
357
362
|
<property name="time">
|
358
363
|
<time>
|
359
|
-
<hour>
|
364
|
+
<hour>0</hour>
|
360
365
|
<minute>0</minute>
|
361
366
|
<second>0</second>
|
362
367
|
</time>
|
Binary file
|
@@ -567,7 +567,7 @@ class DataBase:
|
|
567
567
|
def fetch_country_band_count(self) -> dict:
|
568
568
|
"""
|
569
569
|
returns dict with count of unique NR.
|
570
|
-
{
|
570
|
+
{cb_count: count}
|
571
571
|
"""
|
572
572
|
try:
|
573
573
|
with sqlite3.connect(self.database) as conn:
|
@@ -581,6 +581,23 @@ class DataBase:
|
|
581
581
|
logger.debug("%s", exception)
|
582
582
|
return {}
|
583
583
|
|
584
|
+
def fetch_country_count(self) -> dict:
|
585
|
+
"""
|
586
|
+
Fetch count of unique countries
|
587
|
+
{dxcc_count: count}
|
588
|
+
"""
|
589
|
+
try:
|
590
|
+
with sqlite3.connect(self.database) as conn:
|
591
|
+
conn.row_factory = self.row_factory
|
592
|
+
cursor = conn.cursor()
|
593
|
+
cursor.execute(
|
594
|
+
f"select count(DISTINCT(CountryPrefix)) as dxcc_count from dxlog where ContestNR = {self.current_contest};"
|
595
|
+
)
|
596
|
+
return cursor.fetchone()
|
597
|
+
except sqlite3.OperationalError as exception:
|
598
|
+
logger.debug("%s", exception)
|
599
|
+
return {}
|
600
|
+
|
584
601
|
def fetch_arrldx_country_band_count(self) -> dict:
|
585
602
|
"""
|
586
603
|
returns dict with count of unique NR.
|
@@ -883,6 +900,20 @@ class DataBase:
|
|
883
900
|
logger.debug("%s", exception)
|
884
901
|
return {}
|
885
902
|
|
903
|
+
def fetch_mult2_count(self) -> dict:
|
904
|
+
"""return QSO count"""
|
905
|
+
try:
|
906
|
+
with sqlite3.connect(self.database) as conn:
|
907
|
+
conn.row_factory = self.row_factory
|
908
|
+
cursor = conn.cursor()
|
909
|
+
cursor.execute(
|
910
|
+
f"select count(*) as count from dxlog where IsMultiplier2 = 1 and ContestNR = {self.current_contest};"
|
911
|
+
)
|
912
|
+
return cursor.fetchone()
|
913
|
+
except sqlite3.OperationalError as exception:
|
914
|
+
logger.debug("%s", exception)
|
915
|
+
return {}
|
916
|
+
|
886
917
|
def fetch_qso_count(self) -> dict:
|
887
918
|
"""return QSO count"""
|
888
919
|
try:
|
@@ -373,3 +373,29 @@ def distance_with_latlon(grid1: str, lat2: float, lon2: float) -> float:
|
|
373
373
|
logger.debug("lat1:%d lon1:%d lat2:%d lon2:%d", lat1, lon1, lat2, lon2)
|
374
374
|
# lat2, lon2 = gridtolatlon(grid2)
|
375
375
|
return round(haversine(lon1, lat1, lon2, lat2))
|
376
|
+
|
377
|
+
|
378
|
+
def parse_udc(filename: str) -> dict:
|
379
|
+
"""
|
380
|
+
simply parses a n1mm style udc file and returns a dict with key value pairs.
|
381
|
+
"""
|
382
|
+
|
383
|
+
udc_contest = {}
|
384
|
+
the_good_stuff = False
|
385
|
+
|
386
|
+
try:
|
387
|
+
with open(filename, "r", encoding="utf-8") as file_descriptor:
|
388
|
+
for line in file_descriptor:
|
389
|
+
if "[CONTEST]" in line.upper():
|
390
|
+
the_good_stuff = True
|
391
|
+
continue
|
392
|
+
if "=" in line and the_good_stuff is True:
|
393
|
+
try:
|
394
|
+
key, value = line.split("=")
|
395
|
+
udc_contest[key.strip()] = value.strip()
|
396
|
+
except ValueError:
|
397
|
+
...
|
398
|
+
except FileNotFoundError:
|
399
|
+
logger.debug("UDC file not found.")
|
400
|
+
return {}
|
401
|
+
return udc_contest
|