not1mm 24.7.13__py3-none-any.whl → 24.7.19__py3-none-any.whl

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/__main__.py CHANGED
@@ -39,7 +39,7 @@ except OSError as exception:
39
39
  print("portaudio is not installed")
40
40
  sd = None
41
41
  from PyQt6 import QtCore, QtGui, QtWidgets, uic
42
- from PyQt6.QtCore import QDir, Qt, QThread
42
+ from PyQt6.QtCore import QDir, Qt, QThread, QSettings
43
43
  from PyQt6.QtGui import QFontDatabase, QColorConstants, QPalette, QColor
44
44
  from PyQt6.QtWidgets import QFileDialog
45
45
 
@@ -120,10 +120,6 @@ class MainWindow(QtWidgets.QMainWindow):
120
120
  "cw_macros": True,
121
121
  "bands_modes": True,
122
122
  "bands": ["160", "80", "40", "20", "15", "10"],
123
- "window_height": 200,
124
- "window_width": 600,
125
- "window_x": 120,
126
- "window_y": 120,
127
123
  "current_database": "ham.db",
128
124
  "contest": "",
129
125
  "multicast_group": "239.1.1.1",
@@ -202,6 +198,14 @@ class MainWindow(QtWidgets.QMainWindow):
202
198
  def __init__(self, *args, **kwargs):
203
199
  super().__init__(*args, **kwargs)
204
200
  logger.info("MainWindow: __init__")
201
+
202
+ self.dock_loc = {
203
+ "Top": Qt.DockWidgetArea.TopDockWidgetArea,
204
+ "Right": Qt.DockWidgetArea.RightDockWidgetArea,
205
+ "Left": Qt.DockWidgetArea.LeftDockWidgetArea,
206
+ "Bottom": Qt.DockWidgetArea.BottomDockWidgetArea,
207
+ }
208
+
205
209
  self.setCorner(Qt.Corner.TopRightCorner, Qt.DockWidgetArea.RightDockWidgetArea)
206
210
  self.setCorner(
207
211
  Qt.Corner.BottomRightCorner, Qt.DockWidgetArea.RightDockWidgetArea
@@ -219,6 +223,7 @@ class MainWindow(QtWidgets.QMainWindow):
219
223
  self.mscp = SCP(fsutils.APP_DATA_PATH)
220
224
  self.next_field = self.other_2
221
225
  self.dupe_indicator.hide()
226
+
222
227
  self.cw_speed.valueChanged.connect(self.cwspeed_spinbox_changed)
223
228
 
224
229
  self.cw_entry.textChanged.connect(self.handle_text_change)
@@ -516,38 +521,47 @@ class MainWindow(QtWidgets.QMainWindow):
516
521
  if self.pref.get("contest"):
517
522
  self.load_contest()
518
523
  self.read_cw_macros()
524
+
525
+ self.log_window = LogWindow()
526
+ self.log_window.setObjectName("log-window")
527
+ self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
528
+ self.log_window.hide()
529
+
530
+ self.bandmap_window = BandMapWindow()
531
+ self.bandmap_window.setObjectName("bandmap-window")
532
+ self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window)
533
+ self.bandmap_window.hide()
534
+
535
+ self.check_window = CheckWindow()
536
+ self.check_window.setObjectName("check-window")
537
+ self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
538
+ self.check_window.hide()
539
+
540
+ self.vfo_window = VfoWindow()
541
+ self.vfo_window.setObjectName("vfo-window")
542
+ self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
543
+ self.vfo_window.hide()
544
+
545
+ self.settings = QSettings("K6GTE", "not1mm")
546
+ if self.settings.value("windowState") is not None:
547
+ self.restoreState(self.settings.value("windowState"))
548
+ if self.settings.value("geometry") is not None:
549
+ self.restoreGeometry(self.settings.value("geometry"))
550
+
519
551
  self.actionLog_Window.setChecked(self.pref.get("logwindow", False))
520
- if self.log_window:
521
- self.log_window.close()
522
552
  if self.actionLog_Window.isChecked():
523
- self.log_window = LogWindow()
524
- self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
525
553
  self.log_window.show()
526
554
 
527
555
  self.actionBandmap.setChecked(self.pref.get("bandmapwindow", False))
528
- if self.bandmap_window:
529
- self.bandmap_window.close()
530
556
  if self.actionBandmap.isChecked():
531
- self.bandmap_window = BandMapWindow()
532
- self.addDockWidget(
533
- Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window
534
- )
535
557
  self.bandmap_window.show()
536
558
 
537
559
  self.actionCheck_Window.setChecked(self.pref.get("checkwindow", False))
538
- if self.check_window:
539
- self.check_window.close()
540
560
  if self.actionCheck_Window.isChecked():
541
- self.check_window = CheckWindow()
542
- self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
543
561
  self.check_window.show()
544
562
 
545
563
  self.actionVFO.setChecked(self.pref.get("vfowindow", False))
546
- if self.vfo_window:
547
- self.vfo_window.close()
548
564
  if self.actionVFO.isChecked():
549
- self.vfo_window = VfoWindow()
550
- self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
551
565
  self.vfo_window.show()
552
566
 
553
567
  if not DEBUG_ENABLED:
@@ -1424,47 +1438,37 @@ class MainWindow(QtWidgets.QMainWindow):
1424
1438
  """Launch the log window"""
1425
1439
  self.pref["logwindow"] = self.actionLog_Window.isChecked()
1426
1440
  self.write_preference()
1427
- if self.log_window:
1428
- self.log_window.close()
1429
1441
  if self.actionLog_Window.isChecked():
1430
- self.log_window = LogWindow()
1431
- self.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.log_window)
1432
1442
  self.log_window.show()
1443
+ else:
1444
+ self.log_window.hide()
1433
1445
 
1434
1446
  def launch_bandmap_window(self) -> None:
1435
1447
  """Launch the bandmap window"""
1436
1448
  self.pref["bandmapwindow"] = self.actionBandmap.isChecked()
1437
1449
  self.write_preference()
1438
- if self.bandmap_window:
1439
- self.bandmap_window.close()
1440
1450
  if self.actionBandmap.isChecked():
1441
- self.bandmap_window = BandMapWindow()
1442
- self.addDockWidget(
1443
- Qt.DockWidgetArea.LeftDockWidgetArea, self.bandmap_window
1444
- )
1445
1451
  self.bandmap_window.show()
1452
+ else:
1453
+ self.bandmap_window.hide()
1446
1454
 
1447
1455
  def launch_check_window(self) -> None:
1448
1456
  """Launch the check window"""
1449
1457
  self.pref["checkwindow"] = self.actionCheck_Window.isChecked()
1450
1458
  self.write_preference()
1451
- if self.check_window:
1452
- self.check_window.close()
1453
1459
  if self.actionCheck_Window.isChecked():
1454
- self.check_window = CheckWindow()
1455
- self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.check_window)
1456
1460
  self.check_window.show()
1461
+ else:
1462
+ self.check_window.hide()
1457
1463
 
1458
1464
  def launch_vfo(self) -> None:
1459
1465
  """Launch the VFO window"""
1460
1466
  self.pref["vfowindow"] = self.actionVFO.isChecked()
1461
1467
  self.write_preference()
1462
- if self.vfo_window:
1463
- self.vfo_window.close()
1464
1468
  if self.actionVFO.isChecked():
1465
- self.vfo_window = VfoWindow()
1466
- self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.vfo_window)
1467
1469
  self.vfo_window.show()
1470
+ else:
1471
+ self.vfo_window.hide()
1468
1472
 
1469
1473
  def clear_band_indicators(self) -> None:
1470
1474
  """
@@ -1522,14 +1526,14 @@ class MainWindow(QtWidgets.QMainWindow):
1522
1526
  None
1523
1527
  """
1524
1528
 
1529
+ self.settings.setValue("geometry", self.saveGeometry())
1530
+ self.settings.setValue("windowState", self.saveState())
1531
+ self.settings.sync()
1532
+
1525
1533
  cmd = {}
1526
1534
  cmd["cmd"] = "HALT"
1527
1535
  cmd["station"] = platform.node()
1528
1536
  self.multicast_interface.send_as_json(cmd)
1529
- self.pref["window_width"] = self.size().width()
1530
- self.pref["window_height"] = self.size().height()
1531
- self.pref["window_x"] = self.pos().x()
1532
- self.pref["window_y"] = self.pos().y()
1533
1537
  self.write_preference()
1534
1538
 
1535
1539
  def cty_lookup(self, callsign: str) -> list:
@@ -3399,11 +3403,11 @@ app = QtWidgets.QApplication(sys.argv)
3399
3403
  families = load_fonts_from_dir(os.fspath(fsutils.APP_DATA_PATH))
3400
3404
  logger.info(f"font families {families}")
3401
3405
  window = MainWindow()
3402
- height = window.pref.get("window_height", 300)
3403
- width = window.pref.get("window_width", 700)
3404
- x = window.pref.get("window_x", -1)
3405
- y = window.pref.get("window_y", -1)
3406
- window.setGeometry(x, y, width, height)
3406
+ # height = window.pref.get("window_height", 300)
3407
+ # width = window.pref.get("window_width", 700)
3408
+ # x = window.pref.get("window_x", -1)
3409
+ # y = window.pref.get("window_y", -1)
3410
+ # window.setGeometry(x, y, width, height)
3407
3411
  window.callsign.setFocus()
3408
3412
  window.show()
3409
3413
  # timer = QtCore.QTimer()
not1mm/data/main.ui CHANGED
@@ -9,8 +9,8 @@
9
9
  <rect>
10
10
  <x>0</x>
11
11
  <y>0</y>
12
- <width>878</width>
13
- <height>465</height>
12
+ <width>768</width>
13
+ <height>265</height>
14
14
  </rect>
15
15
  </property>
16
16
  <property name="sizePolicy">
@@ -328,10 +328,13 @@ class CAT:
328
328
 
329
329
  def set_vfo(self, freq: str) -> bool:
330
330
  """Sets the radios vfo"""
331
- if self.interface == "flrig":
332
- return self.__setvfo_flrig(freq)
333
- if self.interface == "rigctld":
334
- return self.__setvfo_rigctld(freq)
331
+ try:
332
+ if self.interface == "flrig":
333
+ return self.__setvfo_flrig(freq)
334
+ if self.interface == "rigctld":
335
+ return self.__setvfo_rigctld(freq)
336
+ except ValueError:
337
+ ...
335
338
  return False
336
339
 
337
340
  def __setvfo_flrig(self, freq: str) -> bool:
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "24.7.13"
3
+ __version__ = "24.7.19"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.7.13
3
+ Version: 24.7.19
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
@@ -223,6 +223,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
223
223
 
224
224
  ## Recent Changes
225
225
 
226
+ - [24-7-19] Use Qt's QSettings to store window and dockwidgets states.
226
227
  - [24-7-13] Trap Exceptions in flrig xmlrpc client.
227
228
 
228
229
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=OIQmaLr7Fs3ODGt5J0OnUXxArTysREun1A2nRE-5wYU,120737
2
+ not1mm/__main__.py,sha256=yVBck7JN7jIc49RvxkHhMI9QphC85pLufOH7Uul738o,120573
3
3
  not1mm/bandmap.py,sha256=Ml5DDoybk_I56q2WLYDKE4lfmh6pb9XxW0qpl5nDFYY,32161
4
4
  not1mm/checkwindow.py,sha256=zHxkCQ4BJ-pN80dSTQdiKq8RqY4oWzJveXZhQ2bu3PY,10436
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -29,7 +29,7 @@ not1mm/data/k6gte.not1mm-32.png,sha256=XdTsCa3xqwTfn26Ga7RwO_Vlbg_77RKkSc8bMxVcC
29
29
  not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N90,2925
30
30
  not1mm/data/logwindow.ui,sha256=vfkNdzJgFs3tTOBKLDavF2zVMvNHWOZ82fAErRi6pQY,1436
31
31
  not1mm/data/logwindowx.ui,sha256=9FzDJtLRpagvAWcDjFdB9NnvNZ4bVxdTNHy1Jit2ido,1610
32
- not1mm/data/main.ui,sha256=l8SpMHLl7Nra3FCZVDQ9H33NUGs4_UY4ttN9omY3Zzw,56506
32
+ not1mm/data/main.ui,sha256=Y8F0gOqMTcsxBmc3QvWkJMxhYFpxUJQl-btGiM1-31w,56506
33
33
  not1mm/data/new_contest.ui,sha256=qP4v6el5mZrIuHUcIZXDkNviuGJk09ZtnpwpgxzQ6TY,21928
34
34
  not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
35
35
  not1mm/data/opon.ui,sha256=mC4OhoVIfR1H9IqHAKXliPMm8VOVmxSEadpsFQ7XnS4,2247
@@ -91,7 +91,7 @@ not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk
91
91
  not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
92
92
  not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
93
  not1mm/lib/about.py,sha256=sWycfGcruN3SaEe4JmaJ61K6D8Itq0WxpUYT-lEcmYM,416
94
- not1mm/lib/cat_interface.py,sha256=E0e1WRhXTbmXO21touJLFs9lCYSwaxSEu5mfNpB_sZg,16892
94
+ not1mm/lib/cat_interface.py,sha256=NDlS4vdlH18oCgvXNjqFVymCAKJKyUNh6g1hmKwoV7k,16964
95
95
  not1mm/lib/cwinterface.py,sha256=Q8p3pScOHczZ8ptICfH1Yu6rCEwQJLgrNwYMN76B2i8,3389
96
96
  not1mm/lib/database.py,sha256=RQoj3JsTejMiiFIN42lY3N4jrj80htftdoFeRqVKnKs,42480
97
97
  not1mm/lib/edit_contact.py,sha256=Ki9bGPpqyQQBB1cU8VIBDCal3lbXeQ6qxhzklmhE2_w,353
@@ -109,7 +109,7 @@ not1mm/lib/plugin_common.py,sha256=AAKBPCXzTWZJb-h08uPNnHVG7bSCg7kwukc211gFivY,8
109
109
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
110
110
  not1mm/lib/settings.py,sha256=MWiKXbasaFbzeHTjfzTaTqbCBrIijudP_-0a5jNmUAA,9265
111
111
  not1mm/lib/super_check_partial.py,sha256=p5l3u2ZOCBtlWgbvskC50FpuoaIpR07tfC6zTdRWbh4,2334
112
- not1mm/lib/version.py,sha256=fcosrUBBIZb-_oOavjoYpxsk9G56vUMzt8LVSpPq16U,48
112
+ not1mm/lib/version.py,sha256=X7UsWTkmHNoMFl40ndtGBSQuMBMqWBxeRhSrC6sjElw,48
113
113
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
114
114
  not1mm/plugins/10_10_fall_cw.py,sha256=IttjX1yy4nDdACGsiYlPteFG8eVseX_WtoFio6bqHE8,10953
115
115
  not1mm/plugins/10_10_spring_cw.py,sha256=ThCptdM3dX4ywhoy2JRcOEyHSqcJolFaT7O_PYzM1Mg,10958
@@ -145,9 +145,9 @@ not1mm/plugins/naqp_ssb.py,sha256=VLWVrSzI0UP1AhSXYn61eZ7or1rz6a_pS_xCKfgS4Jw,11
145
145
  not1mm/plugins/phone_weekly_test.py,sha256=fLpMe03WB9_KgRl6vMgQQt_aktFdqfNt2Sw81CTRAUs,12325
146
146
  not1mm/plugins/stew_perry_topband.py,sha256=CKBQbYl4ETxhXJd2dma4fg_C5pag_s7Nf61SCztZtqE,10668
147
147
  not1mm/plugins/winter_field_day.py,sha256=4rcfRtobwjHO6BNL3WOTHzBmyyeuX79BNGBG8PfjrI8,10238
148
- not1mm-24.7.13.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
149
- not1mm-24.7.13.dist-info/METADATA,sha256=8SqV2K1n5M8QA0zqtj0JSRXzPuajYxGQ-RUG1qL_0u0,29115
150
- not1mm-24.7.13.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
151
- not1mm-24.7.13.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
152
- not1mm-24.7.13.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
153
- not1mm-24.7.13.dist-info/RECORD,,
148
+ not1mm-24.7.19.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
149
+ not1mm-24.7.19.dist-info/METADATA,sha256=EdsnUz2o1LrulLIrNHTDLohqKB56-4s8S5VNWk5bWDw,29186
150
+ not1mm-24.7.19.dist-info/WHEEL,sha256=rWxmBtp7hEUqVLOnTaDOPpR-cZpCDkzhhcBce-Zyd5k,91
151
+ not1mm-24.7.19.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
152
+ not1mm-24.7.19.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
153
+ not1mm-24.7.19.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (71.0.4)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5