not1mm 23.8.5__tar.gz → 23.8.6__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-23.8.5 → not1mm-23.8.6}/PKG-INFO +11 -1
- {not1mm-23.8.5 → not1mm-23.8.6}/README.md +10 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/checkwindow.py +15 -2
- not1mm-23.8.6/not1mm/data/checkwindow.ui +103 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/database.py +37 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/version.py +1 -1
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm.egg-info/PKG-INFO +11 -1
- {not1mm-23.8.5 → not1mm-23.8.6}/pyproject.toml +1 -1
- not1mm-23.8.5/not1mm/data/checkwindow.ui +0 -51
- {not1mm-23.8.5 → not1mm-23.8.6}/LICENSE +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/__init__.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/__main__.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/bandmap.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/JetBrainsMono-Regular.ttf +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/about.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/bandmap.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/check.png +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/configuration.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/contests.sql +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/cty.json +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/donors.html +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/editcontact.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/editmacro.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/greendot.png +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/logwindow.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/main.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/new_contest.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/not1mm.html +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/opon.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/reddot.png +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/settings.ui +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/__init__.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/about.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/edit_station.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/lookup.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/multicast.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/n1mm.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/new_contest.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/select_contest.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/settings.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/super_check_partial.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/lib/versiontest.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/logwindow.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/__init__.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/cwt.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/testing/fakeflrig.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/testing/flrigclient.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/testing/multicast_listener.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/testing/n1mm_listener.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm/testing/test.py +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm.egg-info/SOURCES.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/setup.cfg +0 -0
- {not1mm-23.8.5 → not1mm-23.8.6}/testing/test.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 23.8.
|
3
|
+
Version: 23.8.6
|
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
|
@@ -80,6 +80,7 @@ License-File: LICENSE
|
|
80
80
|
- [Editing a contact](#editing-a-contact)
|
81
81
|
- [Recalulate Mults](#recalulate-mults)
|
82
82
|
- [Bandmap](#bandmap)
|
83
|
+
- [Check Window](#check-window)
|
83
84
|
- [Cabrillo](#cabrillo)
|
84
85
|
- [ADIF](#adif)
|
85
86
|
- [Dupe checking](#dupe-checking)
|
@@ -141,6 +142,7 @@ I wish to thank those who've contributed to the project.
|
|
141
142
|
|
142
143
|
## Recent Changes
|
143
144
|
|
145
|
+
- [23-8-6] Add parsing of local log to check window.
|
144
146
|
- [23-8-5] Add Check Window. Moved MASTER.SCP stuff to it's own class. Close sub windows when main app closes.
|
145
147
|
|
146
148
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
@@ -468,6 +470,14 @@ VFO indicator now displays as small triangle in the frequency tickmarks. A small
|
|
468
470
|
|
469
471
|
Clicked on spots now tune the radio and set the callsign field. Previously worked calls are displayed in red.
|
470
472
|
|
473
|
+
## Check Window
|
474
|
+
|
475
|
+
`Window`>`Check Window`
|
476
|
+
|
477
|
+
As you enter a callsign, the Check Window will show probable matches to calls either in the MASTER.SCP file, or your local log. The MASTER.SCP column will show results for strings of 3 or more matching from the start of the call string. The local log column will show matches of any length appearing anywhere in the string.
|
478
|
+
|
479
|
+

|
480
|
+
|
471
481
|
## Cabrillo
|
472
482
|
|
473
483
|
Click on `File` > `Generate Cabrillo`
|
@@ -61,6 +61,7 @@
|
|
61
61
|
- [Editing a contact](#editing-a-contact)
|
62
62
|
- [Recalulate Mults](#recalulate-mults)
|
63
63
|
- [Bandmap](#bandmap)
|
64
|
+
- [Check Window](#check-window)
|
64
65
|
- [Cabrillo](#cabrillo)
|
65
66
|
- [ADIF](#adif)
|
66
67
|
- [Dupe checking](#dupe-checking)
|
@@ -122,6 +123,7 @@ I wish to thank those who've contributed to the project.
|
|
122
123
|
|
123
124
|
## Recent Changes
|
124
125
|
|
126
|
+
- [23-8-6] Add parsing of local log to check window.
|
125
127
|
- [23-8-5] Add Check Window. Moved MASTER.SCP stuff to it's own class. Close sub windows when main app closes.
|
126
128
|
|
127
129
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
@@ -449,6 +451,14 @@ VFO indicator now displays as small triangle in the frequency tickmarks. A small
|
|
449
451
|
|
450
452
|
Clicked on spots now tune the radio and set the callsign field. Previously worked calls are displayed in red.
|
451
453
|
|
454
|
+
## Check Window
|
455
|
+
|
456
|
+
`Window`>`Check Window`
|
457
|
+
|
458
|
+
As you enter a callsign, the Check Window will show probable matches to calls either in the MASTER.SCP file, or your local log. The MASTER.SCP column will show results for strings of 3 or more matching from the start of the call string. The local log column will show matches of any length appearing anywhere in the string.
|
459
|
+
|
460
|
+

|
461
|
+
|
452
462
|
## Cabrillo
|
453
463
|
|
454
464
|
Click on `File` > `Generate Cabrillo`
|
@@ -2,7 +2,7 @@
|
|
2
2
|
"""
|
3
3
|
Check Window
|
4
4
|
"""
|
5
|
-
# pylint: disable=no-name-in-module, unused-import, no-member
|
5
|
+
# pylint: disable=no-name-in-module, unused-import, no-member, invalid-name
|
6
6
|
|
7
7
|
import logging
|
8
8
|
import pkgutil
|
@@ -67,9 +67,11 @@ class MainWindow(QMainWindow):
|
|
67
67
|
self.masterList.clear()
|
68
68
|
self.telnetList.clear()
|
69
69
|
self.callhistoryList.clear()
|
70
|
-
self.logList.hide()
|
70
|
+
# self.logList.hide()
|
71
71
|
self.telnetList.hide()
|
72
|
+
self.telnetListLabel.hide()
|
72
73
|
self.callhistoryList.hide()
|
74
|
+
self.callhistoryListLabel.hide()
|
73
75
|
self.mscp = SCP(WORKING_PATH)
|
74
76
|
self._udpwatch = None
|
75
77
|
self.udp_fifo = queue.Queue()
|
@@ -127,6 +129,7 @@ class MainWindow(QMainWindow):
|
|
127
129
|
if json_data.get("cmd", "") == "CALLCHANGED":
|
128
130
|
call = json_data.get("call", "")
|
129
131
|
self.master_list(call)
|
132
|
+
self.log_list(call)
|
130
133
|
if json_data.get("cmd", "") == "NEWDB":
|
131
134
|
...
|
132
135
|
# self.load_new_db()
|
@@ -149,6 +152,16 @@ class MainWindow(QMainWindow):
|
|
149
152
|
self.masterList.addItem(listItem)
|
150
153
|
self.masterList.show()
|
151
154
|
|
155
|
+
def log_list(self, call: str) -> None:
|
156
|
+
"""Parse calls in log for matches"""
|
157
|
+
self.logList.clear()
|
158
|
+
if call:
|
159
|
+
result = self.database.get_like_calls_and_bands(call)
|
160
|
+
for calls in result:
|
161
|
+
listItem = QListWidgetItem(calls)
|
162
|
+
self.logList.addItem(listItem)
|
163
|
+
self.logList.show()
|
164
|
+
|
152
165
|
|
153
166
|
def load_fonts_from_dir(directory: str) -> set:
|
154
167
|
"""
|
@@ -0,0 +1,103 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ui version="4.0">
|
3
|
+
<class>MainWindow</class>
|
4
|
+
<widget class="QMainWindow" name="MainWindow">
|
5
|
+
<property name="geometry">
|
6
|
+
<rect>
|
7
|
+
<x>0</x>
|
8
|
+
<y>0</y>
|
9
|
+
<width>310</width>
|
10
|
+
<height>600</height>
|
11
|
+
</rect>
|
12
|
+
</property>
|
13
|
+
<property name="font">
|
14
|
+
<font>
|
15
|
+
<family>JetBrains Mono</family>
|
16
|
+
<pointsize>14</pointsize>
|
17
|
+
</font>
|
18
|
+
</property>
|
19
|
+
<property name="windowTitle">
|
20
|
+
<string>CheckWindow</string>
|
21
|
+
</property>
|
22
|
+
<widget class="QWidget" name="centralwidget">
|
23
|
+
<layout class="QGridLayout" name="gridLayout">
|
24
|
+
<item row="1" column="1">
|
25
|
+
<widget class="QListWidget" name="masterList"/>
|
26
|
+
</item>
|
27
|
+
<item row="1" column="3">
|
28
|
+
<widget class="QListWidget" name="callhistoryList"/>
|
29
|
+
</item>
|
30
|
+
<item row="1" column="2">
|
31
|
+
<widget class="QListWidget" name="telnetList"/>
|
32
|
+
</item>
|
33
|
+
<item row="1" column="0">
|
34
|
+
<widget class="QListWidget" name="logList"/>
|
35
|
+
</item>
|
36
|
+
<item row="0" column="0">
|
37
|
+
<widget class="QLabel" name="logListLabel">
|
38
|
+
<property name="font">
|
39
|
+
<font>
|
40
|
+
<family>JetBrains Mono</family>
|
41
|
+
<pointsize>10</pointsize>
|
42
|
+
</font>
|
43
|
+
</property>
|
44
|
+
<property name="text">
|
45
|
+
<string>Log</string>
|
46
|
+
</property>
|
47
|
+
</widget>
|
48
|
+
</item>
|
49
|
+
<item row="0" column="1">
|
50
|
+
<widget class="QLabel" name="masterListLabel">
|
51
|
+
<property name="font">
|
52
|
+
<font>
|
53
|
+
<family>JetBrains Mono</family>
|
54
|
+
<pointsize>10</pointsize>
|
55
|
+
</font>
|
56
|
+
</property>
|
57
|
+
<property name="text">
|
58
|
+
<string>Master</string>
|
59
|
+
</property>
|
60
|
+
</widget>
|
61
|
+
</item>
|
62
|
+
<item row="0" column="2">
|
63
|
+
<widget class="QLabel" name="telnetListLabel">
|
64
|
+
<property name="font">
|
65
|
+
<font>
|
66
|
+
<family>JetBrains Mono</family>
|
67
|
+
<pointsize>10</pointsize>
|
68
|
+
</font>
|
69
|
+
</property>
|
70
|
+
<property name="text">
|
71
|
+
<string>Telnet</string>
|
72
|
+
</property>
|
73
|
+
</widget>
|
74
|
+
</item>
|
75
|
+
<item row="0" column="3">
|
76
|
+
<widget class="QLabel" name="callhistoryListLabel">
|
77
|
+
<property name="font">
|
78
|
+
<font>
|
79
|
+
<family>JetBrains Mono</family>
|
80
|
+
<pointsize>10</pointsize>
|
81
|
+
</font>
|
82
|
+
</property>
|
83
|
+
<property name="text">
|
84
|
+
<string>Call</string>
|
85
|
+
</property>
|
86
|
+
</widget>
|
87
|
+
</item>
|
88
|
+
</layout>
|
89
|
+
</widget>
|
90
|
+
<widget class="QMenuBar" name="menubar">
|
91
|
+
<property name="geometry">
|
92
|
+
<rect>
|
93
|
+
<x>0</x>
|
94
|
+
<y>0</y>
|
95
|
+
<width>310</width>
|
96
|
+
<height>36</height>
|
97
|
+
</rect>
|
98
|
+
</property>
|
99
|
+
</widget>
|
100
|
+
</widget>
|
101
|
+
<resources/>
|
102
|
+
<connections/>
|
103
|
+
</ui>
|
@@ -920,6 +920,43 @@ class DataBase:
|
|
920
920
|
logger.debug("%s", exception)
|
921
921
|
return {}
|
922
922
|
|
923
|
+
def get_like_calls_and_bands(self, call: str) -> dict:
|
924
|
+
"""
|
925
|
+
Returns a dict like:
|
926
|
+
{'K5TUX': [14.0, 21.0], 'N2CQR': [14.0], 'NE4RD': [14.0]}
|
927
|
+
"""
|
928
|
+
try:
|
929
|
+
with sqlite3.connect(self.database) as conn:
|
930
|
+
conn.row_factory = self.row_factory
|
931
|
+
cursor = conn.cursor()
|
932
|
+
cursor.execute(
|
933
|
+
f"select call, band from DXLOG where call like '%{call}%' and ContestNR = {self.current_contest};"
|
934
|
+
)
|
935
|
+
result = cursor.fetchall()
|
936
|
+
worked_list = {}
|
937
|
+
# This converts a list of dicts like:
|
938
|
+
# [
|
939
|
+
# {"Call": "K5TUX", "Band": 14.0},
|
940
|
+
# {"Call": "K5TUX", "Band": 21.0},
|
941
|
+
# {"Call": "N2CQR", "Band": 14.0},
|
942
|
+
# {"Call": "NE4RD", "Band": 14.0},
|
943
|
+
# ]
|
944
|
+
#
|
945
|
+
# To:
|
946
|
+
# {'K5TUX': [14.0, 21.0], 'N2CQR': [14.0], 'NE4RD': [14.0]}
|
947
|
+
for worked_dict in result:
|
948
|
+
call = worked_dict.get("Call")
|
949
|
+
if call in worked_list:
|
950
|
+
bandlist = worked_list[call]
|
951
|
+
bandlist.append(worked_dict["Band"])
|
952
|
+
worked_list[call] = bandlist
|
953
|
+
continue
|
954
|
+
worked_list[call] = [worked_dict["Band"]]
|
955
|
+
return worked_list
|
956
|
+
except sqlite3.OperationalError as exception:
|
957
|
+
logger.debug("%s", exception)
|
958
|
+
return {}
|
959
|
+
|
923
960
|
def get_unique_band_and_mode(self) -> dict:
|
924
961
|
"""get count of unique band and mode as {mult: x}"""
|
925
962
|
try:
|
@@ -1,2 +1,2 @@
|
|
1
1
|
"""It's the version"""
|
2
|
-
__version__ = "23.8.
|
2
|
+
__version__ = "23.8.6"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 23.8.
|
3
|
+
Version: 23.8.6
|
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
|
@@ -80,6 +80,7 @@ License-File: LICENSE
|
|
80
80
|
- [Editing a contact](#editing-a-contact)
|
81
81
|
- [Recalulate Mults](#recalulate-mults)
|
82
82
|
- [Bandmap](#bandmap)
|
83
|
+
- [Check Window](#check-window)
|
83
84
|
- [Cabrillo](#cabrillo)
|
84
85
|
- [ADIF](#adif)
|
85
86
|
- [Dupe checking](#dupe-checking)
|
@@ -141,6 +142,7 @@ I wish to thank those who've contributed to the project.
|
|
141
142
|
|
142
143
|
## Recent Changes
|
143
144
|
|
145
|
+
- [23-8-6] Add parsing of local log to check window.
|
144
146
|
- [23-8-5] Add Check Window. Moved MASTER.SCP stuff to it's own class. Close sub windows when main app closes.
|
145
147
|
|
146
148
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
@@ -468,6 +470,14 @@ VFO indicator now displays as small triangle in the frequency tickmarks. A small
|
|
468
470
|
|
469
471
|
Clicked on spots now tune the radio and set the callsign field. Previously worked calls are displayed in red.
|
470
472
|
|
473
|
+
## Check Window
|
474
|
+
|
475
|
+
`Window`>`Check Window`
|
476
|
+
|
477
|
+
As you enter a callsign, the Check Window will show probable matches to calls either in the MASTER.SCP file, or your local log. The MASTER.SCP column will show results for strings of 3 or more matching from the start of the call string. The local log column will show matches of any length appearing anywhere in the string.
|
478
|
+
|
479
|
+

|
480
|
+
|
471
481
|
## Cabrillo
|
472
482
|
|
473
483
|
Click on `File` > `Generate Cabrillo`
|
@@ -1,51 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<ui version="4.0">
|
3
|
-
<class>MainWindow</class>
|
4
|
-
<widget class="QMainWindow" name="MainWindow">
|
5
|
-
<property name="geometry">
|
6
|
-
<rect>
|
7
|
-
<x>0</x>
|
8
|
-
<y>0</y>
|
9
|
-
<width>310</width>
|
10
|
-
<height>600</height>
|
11
|
-
</rect>
|
12
|
-
</property>
|
13
|
-
<property name="font">
|
14
|
-
<font>
|
15
|
-
<family>JetBrains Mono</family>
|
16
|
-
<pointsize>14</pointsize>
|
17
|
-
</font>
|
18
|
-
</property>
|
19
|
-
<property name="windowTitle">
|
20
|
-
<string>CheckWindow</string>
|
21
|
-
</property>
|
22
|
-
<widget class="QWidget" name="centralwidget">
|
23
|
-
<layout class="QGridLayout" name="gridLayout">
|
24
|
-
<item row="0" column="0">
|
25
|
-
<widget class="QListWidget" name="logList"/>
|
26
|
-
</item>
|
27
|
-
<item row="0" column="1">
|
28
|
-
<widget class="QListWidget" name="masterList"/>
|
29
|
-
</item>
|
30
|
-
<item row="0" column="2">
|
31
|
-
<widget class="QListWidget" name="telnetList"/>
|
32
|
-
</item>
|
33
|
-
<item row="0" column="3">
|
34
|
-
<widget class="QListWidget" name="callhistoryList"/>
|
35
|
-
</item>
|
36
|
-
</layout>
|
37
|
-
</widget>
|
38
|
-
<widget class="QMenuBar" name="menubar">
|
39
|
-
<property name="geometry">
|
40
|
-
<rect>
|
41
|
-
<x>0</x>
|
42
|
-
<y>0</y>
|
43
|
-
<width>310</width>
|
44
|
-
<height>36</height>
|
45
|
-
</rect>
|
46
|
-
</property>
|
47
|
-
</widget>
|
48
|
-
</widget>
|
49
|
-
<resources/>
|
50
|
-
<connections/>
|
51
|
-
</ui>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|