1BUG: KLog needs to update the Entity DB is shown on every start
2
3KLog should update ALWAYS when receiving from LoTW the QSL_LOTW_rcvd or add the QSO if not in local log.
4
5Review the process after Setup
6
7
8TODO: Integrate HAMQTH https://www.hamqth.com/developers.php
9TODO:- New feature: Regional Award support: #include "setuppages/setuppagesubdivisions.h"
10
11TODO: Stat More frequently worked calls: "select log.call, count(log.call) from log group by log.call ORDER BY count(log.call) DESC"
12TODO: Stat Number of different callsigns
13TODO: Find "duplicated" QSOs QUERY=> SELECT call, bandid, modeid, substr(qso_date, 1, 15), COUNT(*) c FROM log GROUP BY call, bandid, modeid, substr(qso_date, 1, 15) HAVING c>1
14TODO: Find duplicate queries:
15select call, qso_date from log where datetime('2007-07-22 09:45:00', '-5 minutes')< datetime(qso_date) AND datetime('2007-07-22 09:49:00', '+5 minutes') > datetime(qso_date)
16select call, qso_date, bandid, modeid, COUNT(*) c from log  where datetime('2010-10-31 19:20:00', '-5 minutes')< datetime(qso_date) AND datetime('2010-10-31 19:20:00', '+5 minutes') > datetime(qso_date) group by call having c>1
17
18
19RC-BUGS:
20
21
22TODO: Check if dxccStatusWidget in logwindow is useful and remove it if not.
23NONE
24
25TODO: New feature: KLog can now control a rotator through PSTRotator.
26TODO: UI: Added a DXCC summary obtained from the Tools menu.
27
28TBD - 0.9.8
29Hamlib: COMports in Windows must follow the format: \\.\com14 for ports highet than 9 but it works also for lower so ALL should be managed that way.
30
31For next release:
32TODO: - Some warnings removed from compilation time.
33TODO: - The log can be now updated with a LoTW ADIF file import.
34TODO: - Isolate the Awards tab and create a widget with it.
35TODO: - ADD A TIP ON the DXCC tab stating Prefix, CQ, ITU & Bearing.
36TODO: Rework the band & mode hash tables to optimize queries (not sql queries)
37TODO: Rework the DXCC & WAZ hash table sto optimize queries (not SQL queries)
38
39TODO: Import LOTW (MainWindow::slotADIFImport)
40TODO: Remove the Querys from void SetupPageLogs::
41
42TODO: Create a Widget with the WAZ status (copying the DXCC Status widget)
43
44Working:
45TODO: ADD A TIP ON the DXCC tab stating Prefix, CQ, ITU & Bearing
46
47
48TODO: Check how to implement qInstallMessageHandler
49SAT DB: https://db.satnogs.org/api/
50
51This is a kind of roadmap for KLog development.
52It is not fixed... new features may be prioritized or not added without any notice ;-)
53Feel free to request any roadmap change if you have any suggestion.
54
55TODO: To add the support to import/export the following ADIF fields that are already existing in DB
56    AWARD_SUBMITTED
57    AWARD_GRANTED
58    DARC_DOK
59    FISTS
60    FISTS_CC
61    GUEST_OP
62    "hrdlog_qso_upload_date VARCHAR(10),"
63    "hrdlog_qso_upload_status  VARCHAR(1),"
64    "my_antenna VARCHAR,"
65    "my_dxcc INTEGER, "
66    "my_fists INTEGER, "
67    "my_itu_zone INTEGER ,"
68    "my_postal_code VARCHAR ,"
69    "my_sota_ref VARCHAR, "
70    "my_usaca_counties VARCHAR, "
71    "my_vucc_grids VARCHAR, "
72    "silent_key VARCHAR(1), "
73    "region VARCHAR, "
74    "qrzcom_qso_upload_date VARCHAR(10), "
75    "qrzcom_qso_upload_status VARCHAR(1), "
76    "skcc VARCHAR, "
77    "sota_ref VARCHAR, "
78    "uksmg INTEGER, "
79    "usaca_counties VARCHAR, "
80    "ve_prov VARCHAR, "
81    "vucc_grids VARCHAR, "
82
83
84TODO: Add a warning or periodically ADIF export so data is backup
85TODO: Create a function to look for QSO without a DXCC and ask the user to confirm the DXCC.
86TODO: Isolate the QSO input tab and create a widget with it.
87TODO: Isolate the Main QRZ box and create a widget with it.
88TODO: Isolate the Awards tab and create a widget with it.
89TODO: Add an option to save the DXCluster data to a file (file based on name or so)
90
91TODO: Think if it is possible to create a function in the Widgets(i.e. MainWindowInputQSL) to read the data and
92        enter it in the DB automatically when the user clicks on "enter"
93        It would help to "isolate" it and make it more "independant"
94
95TODO: Review the color management in MainWindowInputOthers::setIOTA (and maybe others) (completewithPrevious of MainWindow)
96TODO: Check if in mainwindow (read formUI and modify the eQSL/LOTW REC/SENT values are correct
97
98TODO: If no QSL sent via or rec via are defined, KLog shows as direct? It should be bureau
99
100
101TODO: Add a cheking to the list of bureaus and propose the bureau for QSL via when there is an existing one and propose direct when no bureau is existing.
102      (http://www.iaru.org/qsl-bureaus.html)
103
104TODO: Define band limits for CW/SSB/RTTY... so when a click on the cluster is done, the right mode is proposed.
105TODO: Add in the setup/Band/mode a combobox showing all the active band/modes so the user can select the default band/mode from that list.
106
107BUG: Potential bug
108Double click on a QSO in the log on the Mode/Band... you can modifify the value. As it is a double click, the QSO goes to edit and ...
109Check if:
110  - Only selected modes can be shown there.
111  - If double click on the log we only "quick modify" directly in the log, without editing.
112
113BUG: (TNX JL3OXR)
114The DB is not storing if the time is stored in UTC or local so that info is lost.
115If a user changes the configuration from time to time, the user will loose the real time when the QSO was made.
116Solution:
117 - Consider the DB is only storing UTC QSO.
118 - Read config from user (or simply ask) and convert all the DB to UTC if needed (only one time when new version is installed to upgrade the DB)
119 Always:
120 - When entering data from the UI, check the user config and store only UTC time.
121 - TODO: Think how to show the data in the log or search box as data is stored in UTC and showed directly (specially log widget)
122    - Solution: Maybe changing the header to UTC may solve this and provide the info to the user that UTC is being used for storage
123        It may be weird for the user to see the log in UTC when working in local time... in the rest of the functions...
124
125
126TODO: void DXCCStatusWidget::slotRefreshButtonClicked()//TODO: Define a way to show the status of the selected log or all the logs in the DB
127
128BUG: Optimize the KLog start
129BUG: If logbook.dat is not existing but klogrc it is, KLog does not start.
130
131TODO: Add a tip on the DXCC Status showing some info: bearing, DXCC status (worked or not...)
132TODO: Add a link or action on DXCCStatus items to doubleclick and search the QSOs that provide such status.
133
134TODO: Show the flag of the worked QRZ on the top right,close to the Entity Name
135
136TODO: Add the flags to the DXCluster
137TODO: Click on an Entity name will select all the QSO of that Entity on the search box
138
139Debian:
140
141Time in UTC: (not to be fixed)
142https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=654325
143
144
145BUG: Check the options that are marked in QSL when rightbutton.
146i.e.: Is myQSL sent marked as requested when it should be the DX-QSL?
147
148TODO GUI: To add the CQ/ITU box or make them editable
149TODO: checkIfNewBandOrMode() is not being used. Code should be removed...
150
151BUG:
152Clublog:
153void MainWindow::slotQRZReturnPressed()
154_x = elogClublog->deleteQSO(clublogPrevQSO);
155_x = elogClublog->sendQSO(dataProxy->getClubLogRealTimeFromId(modifyingQSO))
156It runs so fast and not serialized that at the end sometimes the QSO is deleted but not created afterwards
157
158
159<CLUBLOG>
160TODO: Add the possibility to the user to select from the setup a call to be used in clublog or use the one comming from the station callsign lineedit
161TODO: In slotQsoUploadFinished, if QSO is not uploaded. mark it as not uploaded in the log
162
163If qsoToEdit, nothing is modified and OK. (Clublog returns QSO DUPE)
164Again qsoToEdit, nothing is modified and OK (Clublogs returns QSO DROPPED, and QSO is dropped!)
165
166TODO: Check the values that clublog is returning to manage errors and show messages to the user
167TODO: To add the possibility to upload a modified QSO to clublog.
168TODO: If there is an error in password/username or whatever, disable clublog in KLog
169
170TODO: Upload a logfile to clublog
171// Ideas: https://code.google.com/p/datacod-qt-tools/source/browse/upcoder/uploader.h
172// https://code.google.com/p/datacod-qt-tools/source/browse/upcoder/uploader.cpp
173
174TODO: Define a maximum QSO upload rate to clublog to avoid excesive API usage.
175</CLUBLOG>
176
177
178KLog 0.9.4
179TODO: Some Entities are not recognized by ARRL (I, IG9, IT9 are the same ARRL id entities but different ones). Maybe I should not be working
180      with ARRLid or maybe I should detect special ones and "id+10000" so >10000 ids are special ones.
181
182
183KLog 0.9.3
184TODO: Support CQ WW SSB (Including Cabrillo Import/Export)
185TODO: Support CQ WW CW (Including Cabrillo Import/Export)
186
187KLog 0.9.4
188TODO: Hamlib support (Linux).
189
190KLog 0.9.5
191TODO: Support CQ WPX SSB (Including Cabrillo Import/Export)
192TODO: Support CQ WPX CW (Including Cabrillo Import/Export)
193
194KLog 0.9.6
195WORLDEDITOR Dialog
196TODO: WorldEditor is not updated when the CTY.CSV file is updated
197TODO: World Editor: Create a way to add an entity.
198TODO: World Editor: Create a way to remove an entity.
199TODO: World Editor: Create a way to edit an entity.
200
201KLog 0.9.7
202TODO: Integrate with www.clublog.org (http://www.clublog.org/docs/pages/viewpage.action?pageId=1638482)
203
204KLog 0.9.8
205TODO: Integrate with eqsl.cc
206https://www.eqsl.cc/qslcard/ADIFContentSpecs.cfm
207
208KLog 0.9.9
209TODO: Server to log all the QSO in real time (through the network) from N1MM
210        http://n1mm.hamdocs.com/tiki-index.php?page=UDP+Broadcasts&structure=N1MM+Logger+Documentation
211
212KLog 0.9.10
213TODO: Integrate with FLIGI real time logging (req by AA5VI)
214
215KLog 0.9.11 - Cluster release
216TODO: DXCluster: Add flags to the DXCluster widget
217TODO: DXCluster: UI: Modify the DX-Cluster tab to show the data in a table?: DX de/Freq/DX/Comment/Time/Loc
218TODO: DXCluster: Add the DXMarathon information to the spots
219TODO: DXCLuster: Create a band map (including a "to-be-worked")
220TODO: Working on the dxCluster: Tool to save the DXCluster in a file (for further analysis).
221
222KLog 0.9.12
223TODO: Add the awards functionality (to manage awa files, TPEA, WAS, ...)
224
225KLog 0.9.13
226TODO: Mobile interface. Create a mobile UI.
227
228<BUGS>
229TODO: Check if the data has been modified (only memory) and save the data!
230TODO BUG: When modifying allow deleting data (as in KLog 0.5.8)
231DONE BUG: Worked DXCC and WAZ are not updated until confirmed :-?
232</BUGS>
233
234TODO: When importing an ADIF file with several logs, create automatically the logs as detected.
235TODO: HelpHelpDialog
236TODO: HelpAboutDialog
237
238TODO: setuppagelogs.cpp
239TODO: Remove references to DataBase from all classes except DataProxySQLite
240
241TODO: DXCluster: Lines that are not a DX should not be in another color than default.
242TODO: Add a default DX Cluster server
243
244TODO: Make a tool to mark and export QSO from the right button. (i.e. To mark several QSO to print and export the ADIF file with just those QSO)
245
246TODO: Add all the Entity Info to the slotClear to clear everything.
247TODO: Add a list of previous QSO with the same station, if any. (Done in the search box)
248
249TODO: Create something like a void Awards::setAwardsOfAllQSO to read ALL QSO and set the Awards at once instead of adding one QSO per QSO
250
251
252KLOG TODO:
253TODO: To create a function tha runs the log and marks "N" if QSL has not been sent or received.
254TODO: Create a setup page to configure a default prop_mode per band (ie 6m = ES)
255
256TODO: CTY.DAT update
257TODO: Award tabs: center/bold tabs
258TODO: Add export to cabrillo to the logfile
259
260
261
262SETUP:
263TODO: Show progress when doing actions
264TODO: Open this file when opening
265TODO: DXCLuster: Show HF activity
266TODO: DXCLuster: Show WARC
267TODO: DXCLuster: Show VHUF
268TODO: DXCLuster: Show confirmed
269TODO: DXCLuster: Show SSB
270TODO: DXCLuster: Show CW
271TODO: DXCLuster: Show Ann/full
272TODO: DXCLuster: Show WCY
273TODO: DXCLuster: Show WWV
274TODO: DXCLuster: Double click on a spot, add it to log
275TODO: DXCLuster: Add Cluster servers
276DONE: TODO: Colors: Confirmed, Worked, Needed band, New, Default
277
278TODO: Require mandatory fields in all QSO
279
280TODO: Awards: Add Award
281TODO: Awards: Remove Award
282
283=====================
284<SATELLITE SUPPORT>
285TODO: Sats: Create a way to update the list of supported satellites. Maybe another tab in the setup dialog as the World Editor
286TODO: Sats: https://www.eqsl.cc/qslcard/ADIFContentSpecs.cfm
287TODO: Sats: https://lotw.arrl.org/lotw/faq#sats
288
289TODO: Sat Modes:
290http://www.amsat.org/amsat/intro/sats_faq.html#RTFToC5
291http://www.sckans.edu/~sireland/radio/amsat.html
292
293A - This mode requires a 2 meter SSB/CW transmitter and a 10 meter SSB/CW receiver and supports CW and voice.
294B - This mode requires a 70 cm SSB/CW transmitter and a 2 meter SSB/CW receiver and supports CW and voice. Some satellites also support RTTY and SSTV in this mode.
295J -> V Uplink and U downlink
296JA - This mode stands for J Analog and requires a 2 meter SSB/CW transmitter and a 70 cm SSB/CW receiver and supports CW, voice.
297JD - This mode stands for J Digital and requires a 2 meter FM transmitter and a 70 cm SSB/CW receiver and supports packet.
298
299K - This mode requires a 15 meter SSB/CW transmitter and a 10 meter SSB/CW receiver and supports CW and voice. This mode is unique in that it can be done with a simple HF rig.
300S - This mode requires a 70 cm SSB/CW transmitter and a 2.4 GHz SSB/CW receiver and supports CW and voice. Many people use a 2.4 GHz to 2 meter converter with a 2 meter SSB/CW receiver instead of buying a 2.4 GHz SSB/CW receiver.
301T - This mode requires a 15 meter SSB/CW transmitter and a 2 meter SSB/CW receiver and supports CW and voice.
302KT, KA, BS, Some satellites have dual modes that operate simultaneously. For example, AO-13 can operate in mode BS which means that it can do both mode B and mode S simultaneously. Other common dual modes are KT and KA.
303
304Mode V
305Mode U
306Mode U/V -> B
307</SATELLITE SUPPORT>
308
309TODO: Code a way to sort the bands/modes in the "setuppagebandsmodes.cpp
310
311TODO: Create an "updateKLog" class to manage all the release updates
312so there is a way to detect the version of KLog and upgrade the DB to the latest.
313
314
315TODO:
316The following fields may add information, even if the qsl has not been rcvd/sent
317<QSL_RCVD_VIA:1>B <QSL_SENT_VIA:1>B
318
319TODO: showStatusOfDXCC should be executed when band change.
320
321TODO: Add color support: messages for slotQRZTextChanged
322
323TODO: SetupPageColors: Check the style in the buttons as the rounds are lost when I change the color!!
324
325TODO: MainWindow::processConfigLine:  add support for the cluster data.
326TODO: Check when to connect the DXCluster and when no, it tries twice or more...
327
328TODO: Awards: make a function to calculate the total.
329
330TODO: Color support: Add needed, worked, confirmed, neutral colors to the configuration dialog.
331TODO: Color support: Support the bar when a QRZ is entered.
332TODO: Color support: Calculate a color for the log.
333
334TODO: World::getDXStatus: Calculate the algorithm to know the different status for a DXCC (confirmed, worked, confirmed in another band, ,...)
335TODO: World:: Maybe the color should be returned from the World class
336
337TODO: Check the readDataFromUI. QSO are not added when in contest.
338TODO: Check that New Log, Open, ... somewhere the log table is removed from the DB!
339
340TODO: The confirmed WAZ number is not properly calculated.
341
342TODO: GUI: Add in the input box a combobox to change the CQZ
343TODO: GUI: Add in the input box a combobox to change the ITUZ
344
345
346TODO: In CQWWSSB, when editing QSO the SRX, Points, multiplier, ... are not sent to the edit so after "OK", those data are lost.
347
348TODO: MainWindow::slotQsoDeleteFromLog: Add the CALL to the message before detele a QSO.
349
350TODO: Search GUI: add multi-selection QSO to do the same actions inmultiple QSO.
351
352TODO: When importing ADIF, update the logview sometimes... just to show the progress.
353TODO: When importing ADIF: Only shows the ProgresDialog when the number is low >1000 <14000 investigate
354TODO: Import Cabrillo
355
356
357TODO: To check how can I order the columns in the log or in the search QTableView. Now the order depends only on the order of the SQL table.
358
359TODO: When modifying a cell directly in the log, it is possible to select a mode/band that is not actually active in the configuration.
360
361TODO: Slot: If (only)eqsl/lotw is sent/rec, the QSL_RCVD_VIA should be E
362
363TODO: Code a Tool to get statistcs for the contests, some kind of post contest tool.
364    http://www.qsl.net/3v4-002/Contests/2011%20CQ-WW-SSB%203V8SS/index.htm
365
366TODO: Be able to send scores to: http://www.cqcontest.ru/help/developers.jsp
367
368TODO: Create an update CTY.DAT without overwriting the current data. Just Adding and correcting (asking) if data is already there but different.
369TODO: Create an export CTY.DAT file to create a CTY.DAT file with ALL the data in the current "world".
370
371
372
373FILEMANAGER
374TODO: adifLogExportToFile: Count the marked QSO and adjust the numberOfQsos
375TODO: FileManager::adifReadLog: Optimize the dialog (maybe updating only each 100 or as in KLog)
376TODO: FileManager::adifReadLog: Add a semaphore/lock or similar to avoid running the same method twice or more at the same time... or at least the same file.
377        It seems that now it "serializes" the import...
378TODO: Check that FileManager::adifLogExportToFile is exporting ALL the DB fields.
379TODO: FileManager::adifLogExportToFile code a progress dialog for exporting.
380TODO: When importing ADIF: Check if all the QSO have all the mandatory fields and warn the user if not.
381
382Optimization: The ADIF import is very slow. Optimization is recommended.
383
384
385IMPROVEMENT: Improve the result of the log printing.
386
387DONE: TODO: Working on the DB version update functions
388DONE: MainWindow::showAwards Remove "empty CQZ" when counting to avoid having 41 CQ zones
389DONE: Code the color configuration for status of an entity (needed/worked/confirmed).
390DONE: Color support: Calculate a color for the search results.
391DONE: Color support: Calculate a color for the DXCluster.
392DONE: TODO: Colors: Reconfigure the colors needs KLog to be restarted.
393DONE: Working on the dxCluster: Color support, identify the different kind of lines... DX de, normal spots, comments, ...
394DONE: Working on setAwardDXCC: When adding if a pair is already entered but we are going to add a confirmed status, modify it.
395DONE: Right click on log to show a to edit QSO.
396DONE: Right click on log to show a QSL received.
397DONE: Right click on log to remove a QSO.
398DONE: Right click on log to show a QSL sent.
399TODO: Right click on search to remove a QSO.
400DONE: Right click on search to show a QSL reception.
401DONE: Right click on search to show a QSL sent.
402DONE: Right click on search to show to edit QSO.
403DONE: Added a select/unselect all button to the search QSO tab.
404DONE: Search QSO to send
405DONE: Add a button to export to ADIF the content of searchResultsTreeWidget
406
407DONE: When importing ADIF, if the CQZ/ITUZ/DXCC is empty, calculate and add it.
408DONE: Not export ADIF fields if "N":
409DONE: Print the log.
410DONE: TODO: Time in UTC
411DONE: TODO: Log in real time
412DONE: Double click on cluster to select
413DONE: TODO: When double clicking on a DX-Spot, frequency should be also copied to inputbox
414DONE: TODO: When a DX-Spot is selected, the DX-Entity and status should be shown.
415DONE: TODO: DXCluster: Connect, disconnect and connect again does not work
416DONE: TODO: Add a field in Mainwindow to manage RX_PWR
417DONE: TODO: slotclearbuttons->Colors to default
418DONE: GUI: Add in the input box a combobox to change the DXCC
419
420