not1mm 25.3.26__py3-none-any.whl → 25.3.27.1__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
@@ -212,6 +212,11 @@ class MainWindow(QtWidgets.QMainWindow):
212
212
  uic.loadUi(fsutils.APP_DATA_PATH / "main.ui", self)
213
213
  self.history_info.hide()
214
214
  QApplication.instance().focusObjectChanged.connect(self.on_focus_changed)
215
+ QApplication.instance().styleHints().colorSchemeChanged.connect(
216
+ self.dark_watcher
217
+ )
218
+ self.dark_watcher(QApplication.instance().styleHints().colorScheme())
219
+
215
220
  self.inputs_dict = {
216
221
  self.callsign: "callsign",
217
222
  self.sent: "sent",
@@ -235,7 +240,8 @@ class MainWindow(QtWidgets.QMainWindow):
235
240
  self.cw_entry.returnPressed.connect(self.toggle_cw_entry)
236
241
 
237
242
  self.actionCW_Macros.triggered.connect(self.cw_macros_state_changed)
238
- self.actionDark_Mode_2.triggered.connect(self.dark_mode_state_changed)
243
+ # self.actionDark_Mode_2.hide()
244
+ # self.actionDark_Mode_2.triggered.connect(self.dark_mode_state_changed)
239
245
  self.actionCommand_Buttons_2.triggered.connect(
240
246
  self.command_buttons_state_change
241
247
  )
@@ -771,6 +777,16 @@ class MainWindow(QtWidgets.QMainWindow):
771
777
  )
772
778
  self.fldigi_qso(datagram.decode())
773
779
 
780
+ def is_it_dark(self) -> bool:
781
+ """Returns if the DE has a dark theme active."""
782
+ hints = QtGui.QGuiApplication.styleHints()
783
+ scheme = hints.colorScheme()
784
+ return scheme == Qt.ColorScheme.Dark
785
+
786
+ def dark_watcher(self, color_scheme):
787
+ """..."""
788
+ self.setDarkMode(setdarkmode=color_scheme == Qt.ColorScheme.Dark)
789
+
774
790
  def load_call_history(self) -> None:
775
791
  """Display filepicker and load chosen call history file."""
776
792
  filename = self.filepicker("other")
@@ -3046,12 +3062,12 @@ class MainWindow(QtWidgets.QMainWindow):
3046
3062
  if self.lookup_service:
3047
3063
  self.lookup_service.msg_from_main(cmd)
3048
3064
 
3049
- if self.pref.get("darkmode"):
3050
- self.actionDark_Mode_2.setChecked(True)
3051
- self.setDarkMode(True)
3052
- else:
3053
- self.setDarkMode(False)
3054
- self.actionDark_Mode_2.setChecked(False)
3065
+ # if self.pref.get("darkmode"):
3066
+ # self.actionDark_Mode_2.setChecked(True)
3067
+ # self.setDarkMode(True)
3068
+ # else:
3069
+ # self.setDarkMode(False)
3070
+ # self.actionDark_Mode_2.setChecked(False)
3055
3071
 
3056
3072
  try:
3057
3073
  if self.rtc_thread.isRunning():
@@ -3235,9 +3251,9 @@ class MainWindow(QtWidgets.QMainWindow):
3235
3251
 
3236
3252
  def dark_mode_state_changed(self) -> None:
3237
3253
  """Called when the Dark Mode menu state is changed."""
3238
- self.pref["darkmode"] = self.actionDark_Mode_2.isChecked()
3239
- self.write_preference()
3240
- self.setDarkMode(self.actionDark_Mode_2.isChecked())
3254
+ # self.pref["darkmode"] = self.actionDark_Mode_2.isChecked()
3255
+ # self.write_preference()
3256
+ # # self.setDarkMode(self.actionDark_Mode_2.isChecked())
3241
3257
 
3242
3258
  def rtc_response(self, response):
3243
3259
  print(f"{response=}")
not1mm/data/main.ui CHANGED
@@ -1504,7 +1504,6 @@
1504
1504
  <string>View</string>
1505
1505
  </property>
1506
1506
  <addaction name="actionCW_Macros"/>
1507
- <addaction name="actionDark_Mode_2"/>
1508
1507
  <addaction name="actionCommand_Buttons_2"/>
1509
1508
  </widget>
1510
1509
  <widget class="QMenu" name="menuWindow">
@@ -2031,6 +2030,9 @@
2031
2030
  <property name="checkable">
2032
2031
  <bool>true</bool>
2033
2032
  </property>
2033
+ <property name="enabled">
2034
+ <bool>true</bool>
2035
+ </property>
2034
2036
  <property name="text">
2035
2037
  <string>Dark Mode</string>
2036
2038
  </property>
not1mm/lib/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.3.26"
3
+ __version__ = "25.3.27.1"
not1mm/statistics.py CHANGED
@@ -178,7 +178,7 @@ class StatsWindow(QDockWidget):
178
178
  item = QtWidgets.QTableWidgetItem(str(result.get("points", "0")))
179
179
  item.setTextAlignment(0x0002)
180
180
  self.tableWidget.setItem(row, 6, item)
181
- query = f"select sum(sortedmode.mode == 'CW') as CW, sum(sortedmode.mode == 'PH') as PH, sum(sortedmode.mode == 'DI') as DI from (select CASE Mode WHEN 'LSB' THEN 'PH' WHEN 'USB' THEN 'PH' WHEN 'CW' THEN 'CW' WHEN 'RTTY' THEN 'DI' ELSE 'OTHER' END mode from DXLOG where ContestNR = {self.database.current_contest} and Band = '{band['band']}') as sortedmode;"
181
+ query = f"select sum(sortedmode.mode == 'CW') as CW, sum(sortedmode.mode == 'PH') as PH, sum(sortedmode.mode == 'DI') as DI from (select CASE WHEN Mode IN ('LSB','USB','SSB','FM','AM') THEN 'PH' WHEN Mode IN ('CW','CW-R') THEN 'CW' WHEN Mode IN ('FT8','FT4','RTTY','PSK31','FSK441','MSK144','JT65','JT9','Q65') THEN 'DI' ELSE 'OTHER' END mode from DXLOG where ContestNR = {self.database.current_contest} and Band = '{band['band']}') as sortedmode;"
182
182
  result = self.database.exec_sql(query)
183
183
  item = QtWidgets.QTableWidgetItem(str(result.get("CW", "0")))
184
184
  item.setTextAlignment(0x0002)
@@ -206,7 +206,7 @@ class StatsWindow(QDockWidget):
206
206
  item.setTextAlignment(0x0002)
207
207
  self.tableWidget.setItem(row, 6, item)
208
208
 
209
- query = f"select sum(sortedmode.mode == 'CW') as CW, sum(sortedmode.mode == 'PH') as PH, sum(sortedmode.mode == 'DI') as DI from (select CASE Mode WHEN 'LSB' THEN 'PH' WHEN 'USB' THEN 'PH' WHEN 'CW' THEN 'CW' WHEN 'RTTY' THEN 'DI' ELSE 'OTHER' END mode from DXLOG where ContestNR = {self.database.current_contest}) as sortedmode;"
209
+ query = f"select sum(sortedmode.mode == 'CW') as CW, sum(sortedmode.mode == 'PH') as PH, sum(sortedmode.mode == 'DI') as DI from (select CASE WHEN Mode IN ('LSB','USB','SSB','FM','AM') THEN 'PH' WHEN Mode IN ('CW','CW-R') THEN 'CW' WHEN Mode In ('FT8','FT4','RTTY','PSK31','FSK441','MSK144','JT65','JT9','Q65') THEN 'DI' ELSE 'OTHER' END mode from DXLOG where ContestNR = {self.database.current_contest}) as sortedmode;"
210
210
  result = self.database.exec_sql(query)
211
211
  item = QtWidgets.QTableWidgetItem(str(result.get("CW", "0")))
212
212
  item.setTextAlignment(0x0002)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.3.26
3
+ Version: 25.3.27.1
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License: GPL-3.0-or-later
@@ -247,6 +247,8 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
247
247
 
248
248
  ## Recent Changes
249
249
 
250
+ - [25-3-27-1] Detect system dark mode.
251
+ - [25-3-27] Add more DI and PH mode to stats window.
250
252
  - [25-3-26] Record 0 points on dupes for each contest, excluding RandomGram.
251
253
  - [25-3-25-1] Improved process messaging.
252
254
  - [25-3-25] Use safer dict key access in the stats window.
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=kpJ-oyLzUEyx4xEQwO7rFCnVybOnY7RJYXqjym79YBA,151784
2
+ not1mm/__main__.py,sha256=4F_3aJ93ohTMHESKtGcLAwLeZwAgHLJrpeigmQSwMX4,152382
3
3
  not1mm/bandmap.py,sha256=mdSK6oj8plEmr6WVYkzPTCfsHWKl9lea3R14cmRsAI4,31531
4
4
  not1mm/checkwindow.py,sha256=VFAcKYTcoWhmIf91chwY6tyao9FQMWPiUkgDDkkWaog,9670
5
5
  not1mm/fsutils.py,sha256=ukHKxKTeNKxKwqRaJjtzRShL4X5Xl0jRBbADyy3Ifp8,1701
@@ -8,7 +8,7 @@ not1mm/lookupservice.py,sha256=GkY_qHZfrW6XHf8upIoaG4hCFqm0fg6Ganu9ConGrIc,2628
8
8
  not1mm/radio.py,sha256=_b-tSFuDLoBKnABxrsafGQu2p33U-KOubY7-qgLV2yg,5408
9
9
  not1mm/ratewindow.py,sha256=UVkQt0nSB2COQlJQV6tFtsz4mP7d-Wj9jcjqvZw934Q,9891
10
10
  not1mm/rtc_service.py,sha256=axAwnCBuTr-QL0YwXtWvg9tjwhcFsiiEZFgFjOofX6k,2816
11
- not1mm/statistics.py,sha256=vZ76iaMZQLgOriKAg9SicmA_Y9qdiqHJ2T7IoOO5iXo,9620
11
+ not1mm/statistics.py,sha256=N7PaE0yzdYpysEDioaZ_-aYb3bJd_qVCBTExCQNXkd4,9800
12
12
  not1mm/test.py,sha256=RN71m2S9MPIOJMaoCi0wZhwEhpEZunvtosZxaKahRB4,101
13
13
  not1mm/vfo.py,sha256=ggPyWtxMbdSE5RwdK0nDRwDNqOxdpb_pvnzZdbzZVQE,11136
14
14
  not1mm/voice_keying.py,sha256=HZImqC5NgnyW2nknNYQ3b7I8-6S_hxpq5G4RcIRXn_k,3005
@@ -33,7 +33,7 @@ not1mm/data/k6gte.not1mm-32.png,sha256=XdTsCa3xqwTfn26Ga7RwO_Vlbg_77RKkSc8bMxVcC
33
33
  not1mm/data/k6gte.not1mm-64.png,sha256=6ku45Gq1g5ezh04F07osoKRtanb3e4kbx5XdIEh3N90,2925
34
34
  not1mm/data/logwindow.ui,sha256=f7vULj96tHIQuR1nJMyvPHHcmVgzkhv9D1isyojsnFU,1458
35
35
  not1mm/data/logwindowx.ui,sha256=CwpI-h7cI1yqyldH9quKftsdHL5lTyL9ABOcf80nfqc,1632
36
- not1mm/data/main.ui,sha256=-yhNNnaqYiAXueK4wKg3qn4tqo4EUlcSm88qQfXUVOM,63800
36
+ not1mm/data/main.ui,sha256=7H38twKBpL8ZX4rrPCg4XQH1fRIiaVFE7t_yWxygS9Y,63824
37
37
  not1mm/data/new_contest.ui,sha256=m41EGeg1yPSUZAkF8jA2z1EKytZD9hZYiQDh1sjE2ac,24602
38
38
  not1mm/data/not1mm.html,sha256=c9-mfjMwDt4f5pySUruz2gREW33CQ2_rCddM2z5CZQo,23273
39
39
  not1mm/data/opon.ui,sha256=QDicqAk2lORG2UWsHa6jHlsGn6uzrrI2R4HSAocpPes,2258
@@ -118,7 +118,7 @@ not1mm/lib/plugin_common.py,sha256=D1OBjyLmX7zuSPqgTCmHwXzAKA12J_zTQItvyIem-4Y,1
118
118
  not1mm/lib/select_contest.py,sha256=WsptLuwkouIHeocJL3oZ6-eUfEnhpwdc-x7eMZ_TIVM,359
119
119
  not1mm/lib/settings.py,sha256=mXffn8Xaj5KATPQinNBR0V5DbHWQPsRfh24_axWGYuk,15254
120
120
  not1mm/lib/super_check_partial.py,sha256=hwT2NRwobu0PLDyw6ltmbmcAtGBD02CKGFbgGWjXMqA,2334
121
- not1mm/lib/version.py,sha256=VtZWMGr7eyJr4aR2JSVUkEKeiMYRhbtGhdYbGR4TUmc,48
121
+ not1mm/lib/version.py,sha256=hzhmDpg6V814LRIVpDInIjIiLXs3WT0G4OGJZYRtwKI,50
122
122
  not1mm/lib/versiontest.py,sha256=8vDNptuBBunn-1IGkjNaquehqBYUJyjrPSF8Igmd4_Y,1286
123
123
  not1mm/plugins/10_10_fall_cw.py,sha256=oJh3JKqjOpnWElSlZpiQ631UnaOd8qra5s9bl_QoInk,14783
124
124
  not1mm/plugins/10_10_spring_cw.py,sha256=p7dSDtbFK0e6Xouw2V6swYn3VFVgHKyx4IfRWyBjMZY,14786
@@ -173,9 +173,9 @@ not1mm/plugins/ref_ssb.py,sha256=cUFUtbe7-5rwZZHEzpPnaIAnwrwayqBvtgctxQDF5Gw,215
173
173
  not1mm/plugins/stew_perry_topband.py,sha256=3U-Dr28haBTqTaZWLiC1qHQBmLsLENDL-ihyddPpJbg,15403
174
174
  not1mm/plugins/weekly_rtty.py,sha256=C8Xs3Q5UgSYx-mFFar8BVARWtmqlyrbeC98Ubzb4UN8,20128
175
175
  not1mm/plugins/winter_field_day.py,sha256=hmAMgkdqIXtnCNyUp8J9Bb8liN8wj10wps6ROuG-Bok,15284
176
- not1mm-25.3.26.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
177
- not1mm-25.3.26.dist-info/METADATA,sha256=ctRZxwTGcU_OPyasV_iuRKVGNtp1Vw6R9lz7HXPsURI,37470
178
- not1mm-25.3.26.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
179
- not1mm-25.3.26.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
180
- not1mm-25.3.26.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
181
- not1mm-25.3.26.dist-info/RECORD,,
176
+ not1mm-25.3.27.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
177
+ not1mm-25.3.27.1.dist-info/METADATA,sha256=wok0rqACW0QOpGjs6-9ZAATrgENBSTEpMlwHvPLSGK4,37564
178
+ not1mm-25.3.27.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
179
+ not1mm-25.3.27.1.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
180
+ not1mm-25.3.27.1.dist-info/top_level.txt,sha256=0YmTxEcDzQlzXub-lXASvoLpg_mt1c2thb5cVkDf5J4,7
181
+ not1mm-25.3.27.1.dist-info/RECORD,,