not1mm 25.3.23__tar.gz → 25.3.24__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.
Files changed (186) hide show
  1. {not1mm-25.3.23 → not1mm-25.3.24}/PKG-INFO +2 -1
  2. {not1mm-25.3.23 → not1mm-25.3.24}/README.md +1 -0
  3. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/version.py +1 -1
  4. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/statistics.py +34 -3
  5. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm.egg-info/PKG-INFO +2 -1
  6. {not1mm-25.3.23 → not1mm-25.3.24}/pyproject.toml +1 -1
  7. {not1mm-25.3.23 → not1mm-25.3.24}/LICENSE +0 -0
  8. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/__init__.py +0 -0
  9. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/__main__.py +0 -0
  10. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/bandmap.py +0 -0
  11. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/checkwindow.py +0 -0
  12. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/JetBrainsMono-ExtraLight.ttf +0 -0
  13. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/MASTER.SCP +0 -0
  14. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/about.ui +0 -0
  15. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  16. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/bandmap.ui +0 -0
  17. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/check.png +0 -0
  18. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/checkwindow.ui +0 -0
  19. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/configuration.ui +0 -0
  20. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/contests.sql +0 -0
  21. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/cty.json +0 -0
  22. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/cwmacros.txt +0 -0
  23. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/donors.html +0 -0
  24. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/editcontact.ui +0 -0
  25. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/editmacro.ui +0 -0
  26. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/greendot.png +0 -0
  27. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/k6gte-not1mm.desktop +0 -0
  28. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/k6gte.not1mm-128.png +0 -0
  29. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/k6gte.not1mm-32.png +0 -0
  30. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/k6gte.not1mm-64.png +0 -0
  31. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/logwindow.ui +0 -0
  32. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/logwindowx.ui +0 -0
  33. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/main.ui +0 -0
  34. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/new_contest.ui +0 -0
  35. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/not1mm.html +0 -0
  36. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/opon.ui +0 -0
  37. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/0.wav +0 -0
  38. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/1.wav +0 -0
  39. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/2.wav +0 -0
  40. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/3.wav +0 -0
  41. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/4.wav +0 -0
  42. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/5.wav +0 -0
  43. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/6.wav +0 -0
  44. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/7.wav +0 -0
  45. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/73.wav +0 -0
  46. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/8.wav +0 -0
  47. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/9.wav +0 -0
  48. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/a.wav +0 -0
  49. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/again.wav +0 -0
  50. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/b.wav +0 -0
  51. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/c.wav +0 -0
  52. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/contest.wav +0 -0
  53. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/cq.wav +0 -0
  54. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/cq2.wav +0 -0
  55. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/d.wav +0 -0
  56. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/e.wav +0 -0
  57. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/f.wav +0 -0
  58. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/g.wav +0 -0
  59. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/h.wav +0 -0
  60. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/i.wav +0 -0
  61. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/j.wav +0 -0
  62. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/k.wav +0 -0
  63. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/k6gte.wav +0 -0
  64. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/l.wav +0 -0
  65. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/m.wav +0 -0
  66. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/mynumber.wav +0 -0
  67. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/n.wav +0 -0
  68. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/nil.wav +0 -0
  69. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/o.wav +0 -0
  70. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/p.wav +0 -0
  71. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/q.wav +0 -0
  72. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/r.wav +0 -0
  73. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/roger.wav +0 -0
  74. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/s.wav +0 -0
  75. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/space.wav +0 -0
  76. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/t.wav +0 -0
  77. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/thankyou.wav +0 -0
  78. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  79. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/u.wav +0 -0
  80. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/v.wav +0 -0
  81. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/w.wav +0 -0
  82. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/x.wav +0 -0
  83. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/y.wav +0 -0
  84. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/yourcall.wav +0 -0
  85. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/phonetics/z.wav +0 -0
  86. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/pickcontest.ui +0 -0
  87. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/radio_green.png +0 -0
  88. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/radio_grey.png +0 -0
  89. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/radio_red.png +0 -0
  90. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/ratewindow.ui +0 -0
  91. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/reddot.png +0 -0
  92. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/rttymacros.txt +0 -0
  93. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/settings.ui +0 -0
  94. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/splash.png +0 -0
  95. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/ssbmacros.txt +0 -0
  96. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/statistics.ui +0 -0
  97. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/data/vfo.ui +0 -0
  98. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/fsutils.py +0 -0
  99. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/__init__.py +0 -0
  100. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/about.py +0 -0
  101. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/cat_interface.py +0 -0
  102. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/cwinterface.py +0 -0
  103. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/database.py +0 -0
  104. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/edit_contact.py +0 -0
  105. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/edit_macro.py +0 -0
  106. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/edit_opon.py +0 -0
  107. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/edit_station.py +0 -0
  108. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/fldigi_sendstring.py +0 -0
  109. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/ft8_watcher.py +0 -0
  110. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/ham_utility.py +0 -0
  111. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/lookup.py +0 -0
  112. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/multicast.py +0 -0
  113. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/n1mm.py +0 -0
  114. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/new_contest.py +0 -0
  115. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/plugin_common.py +0 -0
  116. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/select_contest.py +0 -0
  117. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/settings.py +0 -0
  118. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/super_check_partial.py +0 -0
  119. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lib/versiontest.py +0 -0
  120. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/logwindow.py +0 -0
  121. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/lookupservice.py +0 -0
  122. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/10_10_fall_cw.py +0 -0
  123. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/10_10_spring_cw.py +0 -0
  124. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/10_10_summer_phone.py +0 -0
  125. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/10_10_winter_phone.py +0 -0
  126. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/__init__.py +0 -0
  127. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_10m.py +0 -0
  128. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_160m.py +0 -0
  129. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_dx_cw.py +0 -0
  130. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  131. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_field_day.py +0 -0
  132. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  133. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_ss_cw.py +0 -0
  134. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_ss_phone.py +0 -0
  135. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  136. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  137. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  138. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/canada_day.py +0 -0
  139. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_160_cw.py +0 -0
  140. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_160_ssb.py +0 -0
  141. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_wpx_cw.py +0 -0
  142. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_wpx_rtty.py +0 -0
  143. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  144. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_ww_cw.py +0 -0
  145. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_ww_rtty.py +0 -0
  146. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cq_ww_ssb.py +0 -0
  147. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/cwt.py +0 -0
  148. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/darc_vhf.py +0 -0
  149. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/darc_xmas.py +0 -0
  150. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/ea_majistad_cw.py +0 -0
  151. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/ea_majistad_ssb.py +0 -0
  152. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/ea_rtty.py +0 -0
  153. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/general_logging.py +0 -0
  154. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/helvetia.py +0 -0
  155. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/iaru_fieldday_r1_cw.py +0 -0
  156. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/iaru_fieldday_r1_ssb.py +0 -0
  157. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/iaru_hf.py +0 -0
  158. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/icwc_mst.py +0 -0
  159. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/jidx_cw.py +0 -0
  160. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/jidx_ph.py +0 -0
  161. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/k1usn_sst.py +0 -0
  162. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/labre_rs_digi.py +0 -0
  163. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/lz-dx.py +0 -0
  164. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/naqp_cw.py +0 -0
  165. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/naqp_rtty.py +0 -0
  166. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/naqp_ssb.py +0 -0
  167. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/phone_weekly_test.py +0 -0
  168. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/raem.py +0 -0
  169. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/randomgram.py +0 -0
  170. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/ref_cw.py +0 -0
  171. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/ref_ssb.py +0 -0
  172. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/stew_perry_topband.py +0 -0
  173. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/weekly_rtty.py +0 -0
  174. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/plugins/winter_field_day.py +0 -0
  175. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/radio.py +0 -0
  176. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/ratewindow.py +0 -0
  177. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/rtc_service.py +0 -0
  178. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/test.py +0 -0
  179. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/vfo.py +0 -0
  180. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm/voice_keying.py +0 -0
  181. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm.egg-info/SOURCES.txt +0 -0
  182. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm.egg-info/dependency_links.txt +0 -0
  183. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm.egg-info/entry_points.txt +0 -0
  184. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm.egg-info/requires.txt +0 -0
  185. {not1mm-25.3.23 → not1mm-25.3.24}/not1mm.egg-info/top_level.txt +0 -0
  186. {not1mm-25.3.23 → not1mm-25.3.24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.3.23
3
+ Version: 25.3.24
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -247,6 +247,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
247
247
 
248
248
  ## Recent Changes
249
249
 
250
+ - [25-3-24] Add CW, PH, DI counts to the statistics window.
250
251
  - [25-3-23] Add a statistics window.
251
252
  - [25-3-19-1] Add EA His Maj King of Spain SSB.
252
253
  - [25-3-19] Merged PR from @DD5ML Adding DARC VHF.
@@ -215,6 +215,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
215
215
 
216
216
  ## Recent Changes
217
217
 
218
+ - [25-3-24] Add CW, PH, DI counts to the statistics window.
218
219
  - [25-3-23] Add a statistics window.
219
220
  - [25-3-19-1] Add EA His Maj King of Spain SSB.
220
221
  - [25-3-19] Merged PR from @DD5ML Adding DARC VHF.
@@ -1,3 +1,3 @@
1
1
  """It's the version"""
2
2
 
3
- __version__ = "25.3.23"
3
+ __version__ = "25.3.24"
@@ -6,9 +6,9 @@ import os
6
6
 
7
7
  from PyQt6 import uic, QtWidgets
8
8
  from PyQt6.QtWidgets import QDockWidget
9
+ from PyQt6.QtCore import pyqtSignal, QTimer
9
10
 
10
11
  # from PyQt6.QtGui import QColorConstants, QPalette, QColor
11
- from PyQt6.QtCore import pyqtSignal
12
12
 
13
13
  import not1mm.fsutils as fsutils
14
14
  from not1mm.lib.database import DataBase
@@ -43,6 +43,9 @@ class StatsWindow(QDockWidget):
43
43
  self.database = DataBase(self.dbname, fsutils.APP_DATA_PATH)
44
44
  self.database.current_contest = self.pref.get("contest", 0)
45
45
  uic.loadUi(fsutils.APP_DATA_PATH / "statistics.ui", self)
46
+ self.timer = QTimer()
47
+ self.timer.timeout.connect(self.get_run_and_total_qs)
48
+ self.timer.start(5000)
46
49
 
47
50
  def msg_from_main(self, packet):
48
51
  """"""
@@ -100,9 +103,13 @@ class StatsWindow(QDockWidget):
100
103
 
101
104
  def get_run_and_total_qs(self):
102
105
  """get numbers"""
106
+ if self.active is False:
107
+ return
103
108
  self.tableWidget.clear()
104
- self.tableWidget.setColumnCount(4)
105
- self.tableWidget.setHorizontalHeaderLabels(["BAND", "QSO", "CALLS", "POINTS"])
109
+ self.tableWidget.setColumnCount(7)
110
+ self.tableWidget.setHorizontalHeaderLabels(
111
+ ["BAND", "QSO", "CALLS", "CW", "PH", "DI", "PTS"]
112
+ )
106
113
  self.tableWidget.verticalHeader().setVisible(False)
107
114
  self.tableWidget.setEditTriggers(
108
115
  QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers
@@ -128,7 +135,19 @@ class StatsWindow(QDockWidget):
128
135
  self.tableWidget.setItem(row, 2, item)
129
136
  item = QtWidgets.QTableWidgetItem(str(result["points"]))
130
137
  item.setTextAlignment(0x0002)
138
+ self.tableWidget.setItem(row, 6, item)
139
+ 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;"
140
+ result = self.database.exec_sql(query)
141
+ item = QtWidgets.QTableWidgetItem(str(result["CW"]))
142
+ item.setTextAlignment(0x0002)
131
143
  self.tableWidget.setItem(row, 3, item)
144
+ item = QtWidgets.QTableWidgetItem(str(result["PH"]))
145
+ item.setTextAlignment(0x0002)
146
+ self.tableWidget.setItem(row, 4, item)
147
+ item = QtWidgets.QTableWidgetItem(str(result["DI"]))
148
+ item.setTextAlignment(0x0002)
149
+ self.tableWidget.setItem(row, 5, item)
150
+
132
151
  row += 1
133
152
  query = f"select count(*) as qs, count(DISTINCT(Call)) as calls, sum(Points) as points from DXLOG where ContestNR = {self.database.current_contest};"
134
153
  result = self.database.exec_sql(query)
@@ -143,7 +162,19 @@ class StatsWindow(QDockWidget):
143
162
  self.tableWidget.setItem(row, 2, item)
144
163
  item = QtWidgets.QTableWidgetItem(str(result["points"]))
145
164
  item.setTextAlignment(0x0002)
165
+ self.tableWidget.setItem(row, 6, item)
166
+
167
+ 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;"
168
+ result = self.database.exec_sql(query)
169
+ item = QtWidgets.QTableWidgetItem(str(result["CW"]))
170
+ item.setTextAlignment(0x0002)
146
171
  self.tableWidget.setItem(row, 3, item)
172
+ item = QtWidgets.QTableWidgetItem(str(result["PH"]))
173
+ item.setTextAlignment(0x0002)
174
+ self.tableWidget.setItem(row, 4, item)
175
+ item = QtWidgets.QTableWidgetItem(str(result["DI"]))
176
+ item.setTextAlignment(0x0002)
177
+ self.tableWidget.setItem(row, 5, item)
147
178
  self.tableWidget.resizeColumnsToContents()
148
179
  self.tableWidget.resizeRowsToContents()
149
180
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: not1mm
3
- Version: 25.3.23
3
+ Version: 25.3.24
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  License-Expression: GPL-3.0-or-later
@@ -247,6 +247,7 @@ generated, 'cause I'm lazy, list of those who've submitted PR's.
247
247
 
248
248
  ## Recent Changes
249
249
 
250
+ - [25-3-24] Add CW, PH, DI counts to the statistics window.
250
251
  - [25-3-23] Add a statistics window.
251
252
  - [25-3-19-1] Add EA His Maj King of Spain SSB.
252
253
  - [25-3-19] Merged PR from @DD5ML Adding DARC VHF.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "not1mm"
7
- version = "25.3.23"
7
+ version = "25.3.24"
8
8
  description = "NOT1MM Logger"
9
9
  license = "GPL-3.0-or-later"
10
10
  readme = "README.md"
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