1 /***************************************************************************
2                           awardswidget.cpp  -  description
3                              -------------------
4     begin                : nov 2019
5     copyright            : (C) 2019 by Jaime Robles
6     email                : jaime@robles.es
7  ***************************************************************************/
8 
9 /*****************************************************************************
10  * This file is part of KLog.                                                *
11  *                                                                           *
12  *    KLog is free software: you can redistribute it and/or modify           *
13  *    it under the terms of the GNU General Public License as published by   *
14  *    the Free Software Foundation, either version 3 of the License, or      *
15  *    (at your option) any later version.                                    *
16  *                                                                           *
17  *    KLog is distributed in the hope that it will be useful,                *
18  *    but WITHOUT ANY WARRANTY; without even the implied warranty of         *
19  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
20  *    GNU General Public License for more details.                           *
21  *                                                                           *
22  *    You should have received a copy of the GNU General Public License      *
23  *    along with KLog.  If not, see <https://www.gnu.org/licenses/>.         *
24  *                                                                           *
25  *****************************************************************************/
26 
27 #include "awardswidget.h"
28 
AwardsWidget(DataProxy_SQLite * dp,QWidget * parent)29 AwardsWidget::AwardsWidget(DataProxy_SQLite *dp, QWidget *parent) :
30     QWidget(parent)
31 {
32       //qDebug() << "AwardsWidget::AwardsWidget"   << QT_ENDL;
33     manageDXMarathon = false;
34     logSeverity = Info;  //7 Debug /0=emergency or no debug
35     emit debugLog (Q_FUNC_INFO, "Start", Debug);
36     currentLog = -1;
37 
38     dxccConfirmedQLCDNumber = new QLCDNumber;
39     dxccWorkedQLCDNumber = new QLCDNumber;
40     wazConfirmedQLCDNumber = new QLCDNumber;
41     wazWorkedQLCDNumber = new QLCDNumber;
42     //localConfirmedQLCDNumber = new QLCDNumber;
43     //localWorkedQLCDNumber = new QLCDNumber;
44     qsoConfirmedQLCDNumber = new QLCDNumber;
45     qsoWorkedQLCDNumber = new QLCDNumber;
46     yearlyQSOLCDNumber = new QLCDNumber;
47 
48     yearlyDXCCQLCDNumber = new QLCDNumber;
49     yearlyCQQLCDNumber = new QLCDNumber;
50     yearlyScoreQLCDNumber = new QLCDNumber;
51     operatingYearsComboBox = new QComboBox;
52 
53     yearlyLabelN = new QLabel();
54     yearlyScoreLabelN = new QLabel();
55 
56     recalculateAwardsButton = new QPushButton;
57     operatingYearsComboBox = new QComboBox;
58     dataProxy = dp;
59     awards = new Awards(dataProxy, Q_FUNC_INFO);
60     //awards = new Awards(dataProxy, Q_FUNC_INFO);
61     //util = new Utilities;
62 
63 
64     clear();
65     createUI();
66     emit debugLog (Q_FUNC_INFO, "END", Debug);
67        //qDebug() << "AwardsWidget::AwardsWidget - END"   << QT_ENDL;
68 }
69 
~AwardsWidget()70 AwardsWidget::~AwardsWidget()
71 {
72 
73 }
74 
clear()75 void AwardsWidget::clear()
76 {
77     emit debugLog (Q_FUNC_INFO, "Start", Debug);
78       //qDebug() << "AwardsWidget::clear"   << QT_ENDL;
79     /*
80     searchBoxLineEdit->clear();
81     searchResultsTreeWidget->clear();
82     qslingNeeded = false;
83     searchSelectAllClicked = false;
84     */
85 
86     emit debugLog (Q_FUNC_INFO, "END", Debug);
87       //qDebug() << "AwardsWidget::clear-END"   << QT_ENDL;
88 }
89 
90 
createUI()91 void AwardsWidget::createUI()
92 {
93     //searchBoxClearButton->setToolTip(tr("Clear the searches."));
94       //qDebug() << "AwardsWidget::createUI"   << QT_ENDL;
95     emit debugLog (Q_FUNC_INFO, "Start", Debug);
96 
97     recalculateAwardsButton = new QPushButton(tr("Recalculate"), this);
98     recalculateAwardsButton->setToolTip(tr("Click to recalculate the award status."));
99     operatingYearsComboBox->setToolTip(tr("Select the year you want to check."));
100 
101     QLabel *yearlyQSOsLabelN = new QLabel(tr("QSOs"));
102     QLabel *yearlyDXCCLabelN = new QLabel(tr("DXCC"));
103     QLabel *yearlyCQLabelN = new QLabel(tr("CQ"));
104 
105     QLabel *awardLabelN = new QLabel(tr("Award"));
106     awardLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
107     QLabel *confirmedLabelN = new QLabel(tr("Confirmed"));
108     confirmedLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
109 
110     QLabel *workedLabelN = new QLabel(tr("Worked"));
111     workedLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
112 
113     QLabel *dxccLabelN = new QLabel(tr("DXCC"));
114     dxccLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
115 
116     QLabel *wazLabelN = new QLabel(tr("WAZ"));
117     wazLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
118 
119     //QLabel *localLabelN = new QLabel(tr("Local"));
120     //localLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
121 
122     QLabel *qsoNLabelN = new QLabel(tr("QSOs"));
123     qsoNLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
124 
125     yearlyLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
126     yearlyQSOsLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
127     yearlyDXCCLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
128     yearlyQSOsLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
129     yearlyCQLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
130     yearlyScoreLabelN->setAlignment(Qt::AlignVCenter | Qt::AlignCenter);
131 
132 
133 #ifdef Q_OS_WIN
134           //qDebug() << "AwardsWidget::createUIDX - WINDOWS DETECTED!"  << QT_ENDL;
135 
136     qsoNLabelN->setFrameShadow(QFrame::Raised);
137     qsoNLabelN->setFrameStyle(QFrame::StyledPanel);
138     wazLabelN->setFrameShadow(QFrame::Raised);
139     wazLabelN->setFrameStyle(QFrame::StyledPanel);
140     //localLabelN->setFrameShadow(QFrame::Raised);
141     //localLabelN->setFrameStyle(QFrame::StyledPanel);
142     dxccLabelN->setFrameShadow(QFrame::Raised);
143     dxccLabelN->setFrameStyle(QFrame::StyledPanel);
144     workedLabelN->setFrameShadow(QFrame::Raised);
145     workedLabelN->setFrameStyle(QFrame::StyledPanel);
146     confirmedLabelN->setFrameShadow(QFrame::Raised);
147     confirmedLabelN->setFrameStyle(QFrame::StyledPanel);
148     awardLabelN->setFrameShadow(QFrame::Raised);
149     awardLabelN->setFrameStyle(QFrame::StyledPanel);
150 
151     yearlyQSOsLabelN->setFrameShadow(QFrame::Raised);
152     yearlyDXCCLabelN->setFrameShadow(QFrame::Raised);
153     yearlyQSOsLabelN->setFrameShadow(QFrame::Raised);
154     yearlyScoreLabelN->setFrameShadow(QFrame::Raised);
155     yearlyLabelN->setFrameShadow(QFrame::Raised);
156     yearlyCQLabelN->setFrameShadow(QFrame::Raised);
157 
158     yearlyQSOsLabelN->setFrameStyle(QFrame::StyledPanel);
159     yearlyDXCCLabelN->setFrameStyle(QFrame::StyledPanel);
160     yearlyQSOsLabelN->setFrameStyle(QFrame::StyledPanel);
161     yearlyScoreLabelN->setFrameStyle(QFrame::StyledPanel);
162     yearlyLabelN->setFrameStyle(QFrame::StyledPanel);
163     yearlyCQLabelN->setFrameStyle(QFrame::StyledPanel);
164 
165 
166 #else
167       //qDebug() << "AwardsWidget::createUIDX - NO WINDOWS DETECTED!"  << QT_ENDL;
168 
169     //localLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
170     qsoNLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
171     wazLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
172     dxccLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
173     workedLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
174     confirmedLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
175     awardLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
176     yearlyQSOsLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
177     yearlyDXCCLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
178     yearlyQSOsLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
179     yearlyCQLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
180     yearlyScoreLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
181     yearlyLabelN->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
182 
183 #endif
184 
185       //qDebug() << "AwardsWidget::createUI-125"   << QT_ENDL;
186     //reconfigureyearlyUI(manageyearly);
187     yearlyScoreLabelN->setText(tr("Score"));
188     yearlyLabelN->setText(tr("Annual"));
189 
190       //qDebug() << "AwardsWidget::createUI-135"   << QT_ENDL;
191     QGridLayout *yearlyDLayout = new QGridLayout;
192 
193     yearlyDLayout->addWidget(yearlyQSOsLabelN, 0, 0);
194     yearlyDLayout->addWidget(yearlyDXCCLabelN, 0, 1);
195     yearlyDLayout->addWidget(yearlyCQLabelN, 0, 2);
196     yearlyDLayout->addWidget(yearlyQSOLCDNumber, 1, 0);
197     yearlyDLayout->addWidget(yearlyDXCCQLCDNumber, 1, 1);
198     yearlyDLayout->addWidget(yearlyCQQLCDNumber, 1, 2);
199 
200       //qDebug() << "AwardsWidget::createUI-145"   << QT_ENDL;
201     QVBoxLayout *yearlyTLayout = new QVBoxLayout;
202     yearlyTLayout->addWidget(yearlyLabelN);
203     yearlyTLayout->addWidget(operatingYearsComboBox);
204 
205       //qDebug() << "AwardsWidget::createUI-150"   << QT_ENDL;
206     QGridLayout *dxUpRightAwardsTabLayout = new QGridLayout;
207       //qDebug() << "AwardsWidget::createUI-151"   << QT_ENDL;
208     dxUpRightAwardsTabLayout->addWidget(awardLabelN, 0, 0);
209       //qDebug() << "AwardsWidget::createUI-152"   << QT_ENDL;
210     dxUpRightAwardsTabLayout->addWidget(workedLabelN, 0, 1);
211       //qDebug() << "AwardsWidget::createUI-153"   << QT_ENDL;
212     dxUpRightAwardsTabLayout->addWidget(confirmedLabelN, 0, 2);
213       //qDebug() << "AwardsWidget::createUI-154"   << QT_ENDL;
214     dxUpRightAwardsTabLayout->addWidget(dxccLabelN, 1, 0);
215       //qDebug() << "AwardsWidget::createUI-155"   << QT_ENDL;
216     dxUpRightAwardsTabLayout->addWidget(dxccWorkedQLCDNumber, 1, 1);
217       //qDebug() << "AwardsWidget::createUI-156"   << QT_ENDL;
218     dxUpRightAwardsTabLayout->addWidget(dxccConfirmedQLCDNumber, 1, 2);
219       //qDebug() << "AwardsWidget::createUI-157"   << QT_ENDL;
220     dxUpRightAwardsTabLayout->addWidget(wazLabelN, 2, 0);
221       //qDebug() << "AwardsWidget::createUI-158"   << QT_ENDL;
222     dxUpRightAwardsTabLayout->addWidget(wazWorkedQLCDNumber, 2, 1);
223       //qDebug() << "AwardsWidget::createUI-159"   << QT_ENDL;
224     dxUpRightAwardsTabLayout->addWidget(wazConfirmedQLCDNumber, 2, 2);
225       //qDebug() << "AwardsWidget::createUI-160"   << QT_ENDL;
226     //dxUpRightAwardsTabLayout->addWidget(localLabelN, 3, 0);
227       //qDebug() << "AwardsWidget::createUI-161"   << QT_ENDL;
228     //dxUpRightAwardsTabLayout->addWidget(localWorkedQLCDNumber, 3, 1);
229       //qDebug() << "AwardsWidget::createUI-162"   << QT_ENDL;
230     //dxUpRightAwardsTabLayout->addWidget(localConfirmedQLCDNumber, 3, 2);
231       //qDebug() << "AwardsWidget::createUI-163"   << QT_ENDL;
232     dxUpRightAwardsTabLayout->addWidget(qsoNLabelN, 4, 0);
233       //qDebug() << "AwardsWidget::createUI-164"   << QT_ENDL;
234     dxUpRightAwardsTabLayout->addWidget(qsoWorkedQLCDNumber, 4, 1);
235       //qDebug() << "AwardsWidget::createUI-165"   << QT_ENDL;
236     dxUpRightAwardsTabLayout->addWidget(qsoConfirmedQLCDNumber, 4, 2);
237       //qDebug() << "AwardsWidget::createUI-166"   << QT_ENDL;
238     dxUpRightAwardsTabLayout->addLayout(yearlyTLayout, 5, 0);
239       //qDebug() << "AwardsWidget::createUI-167"   << QT_ENDL;
240     dxUpRightAwardsTabLayout->addLayout(yearlyDLayout, 5, 1, 1, -1);
241       //qDebug() << "AwardsWidget::createUI-168"   << QT_ENDL;
242     dxUpRightAwardsTabLayout->addWidget(recalculateAwardsButton, 6, 1);
243 
244       //qDebug() << "AwardsWidget::createUI-200"   << QT_ENDL;
245     setLayout(dxUpRightAwardsTabLayout);
246 
247     //connect(dataProxy, SIGNAL(qsoFound(QStringList)), this, SLOT(slotQsoFound(QStringList)) );
248     //connect(searchBoxExportButton, SIGNAL(clicked()), this, SLOT(slotSearchExportButtonClicked() ) );
249 
250     setToolTips();
251 
252     connect(operatingYearsComboBox, SIGNAL(currentIndexChanged ( int)), this, SLOT(slotOperatingYearComboBoxChanged() ) ) ;
253     connect(recalculateAwardsButton, SIGNAL(clicked()), this, SLOT(slotRecalculateAwardsButtonClicked() ) );
254 
255     emit debugLog (Q_FUNC_INFO, "END", Debug);
256       //qDebug() << "AwardsWidget::createUI-END"   << QT_ENDL;
257 }
258 
setManageDXMarathon(const bool _dx)259 void AwardsWidget::setManageDXMarathon(const bool _dx)
260 {
261     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
262     manageDXMarathon = _dx;
263     reconfigureDXMarathonUI(manageDXMarathon);
264     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
265 }
266 
267 /*
268 void AwardsWidget::slotSearchClearButtonClicked()
269 {
270        //qDebug() << "SearchWidget::slotSearchClearButtonClicked: " << QT_ENDL;
271     searchResultsTreeWidget->clear();
272     searchBoxLineEdit->clear();
273     searchSelectAllClicked = false;
274     qslingNeeded = false;
275 }
276 */
277 
setToolTips()278 void AwardsWidget::setToolTips()
279 {
280     emit debugLog (Q_FUNC_INFO, "Start", Debug);
281     dxccConfirmedQLCDNumber->setToolTip(tr("Number of confirmed DXCC entities."));
282     dxccWorkedQLCDNumber->setToolTip(tr("Number of worked DXCC entities."));
283     wazConfirmedQLCDNumber->setToolTip(tr("Number of confirmed WAZ zones."));
284     wazWorkedQLCDNumber->setToolTip(tr("Number of worked WAZ zones."));
285     //localConfirmedQLCDNumber->setToolTip(tr("Number of confirmed local references."));
286     //localWorkedQLCDNumber->setToolTip(tr("Number of worked local references."));
287     qsoConfirmedQLCDNumber->setToolTip(tr("Number of confirmed QSOs."));
288     qsoWorkedQLCDNumber->setToolTip(tr("Number of worked QSOs."));
289 
290     yearlyQSOLCDNumber->setToolTip(tr("Number of QSOs worked in the selected year."));
291     yearlyDXCCQLCDNumber->setToolTip(tr("Number of DXCCs worked in the selected year."));
292     yearlyCQQLCDNumber->setToolTip(tr("Number of CQ Zones worked in the selected year."));
293     yearlyScoreQLCDNumber->setToolTip(tr("Score for the DXMarathon in the selected year."));
294     operatingYearsComboBox->setToolTip(tr("Select the year you want to check."));
295 
296     emit debugLog (Q_FUNC_INFO, "END", Debug);
297 }
298 
slotRecalculateAwardsButtonClicked()299 void AwardsWidget::slotRecalculateAwardsButtonClicked()
300 {
301     emit debugLog (Q_FUNC_INFO, "Start", Debug);
302     awards->recalculateAwards();
303     //emit recalculateAwardsSignal();
304     showAwards();
305     emit debugLog (Q_FUNC_INFO, "END", Debug);
306 }
307 
slotOperatingYearComboBoxChanged()308 void AwardsWidget::slotOperatingYearComboBoxChanged()
309 {
310     emit debugLog (Q_FUNC_INFO, "Start", Debug);
311     selectedYear = (operatingYearsComboBox->currentText()).toInt();
312     showDXMarathon(selectedYear);
313     emit debugLog (Q_FUNC_INFO, "END", Debug);
314 }
315 
showAwards()316 void AwardsWidget::showAwards()
317 { // Updates and show all the award status tab.
318       //qDebug() << "AwardsWidget::showAwards" << QT_ENDL;
319 /*
320   WAZ
321   Local
322 */
323     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
324     checkIfValidLog();
325     int _num = 0;
326     //QSqlQuery query;
327     //QString aux;
328 
329     _num = dataProxy->getHowManyQSOInLog(currentLog);
330     if (_num>99999)
331     {
332         qsoWorkedQLCDNumber->setDigitCount((QString::number(_num)).size());
333     }
334     else
335     {
336          qsoWorkedQLCDNumber->setDigitCount(5);
337     }
338     qsoWorkedQLCDNumber->display(_num);
339 
340 
341     _num = dataProxy->getHowManyConfirmedQSLInLog(currentLog);
342     if (_num>99999)
343     {
344         qsoConfirmedQLCDNumber->setDigitCount((QString::number(_num)).size());
345     }
346     else
347     {
348          qsoConfirmedQLCDNumber->setDigitCount(5);
349     }
350 
351     qsoConfirmedQLCDNumber->display(_num);
352     //_num = 0;
353 
354     dxccWorkedQLCDNumber->display(dataProxy->getFieldInBand (DXCC, "ALL", false, "ALL", currentLog));
355     int getFieldInBand(ValidFieldsForStats _field, const QString &_band, bool confirmedOnly, QString _mode = "ALL", int _log=-1);_num = 0;
356 
357 
358     dxccConfirmedQLCDNumber->display(dataProxy->getFieldInBand (DXCC, "ALL", true, "ALL", currentLog));
359     //_num = 0;
360 
361     wazWorkedQLCDNumber->display(awards->getWAZWorked(currentLog));
362     //_num = 0;
363 
364     wazConfirmedQLCDNumber->display(awards->getWAZConfirmed(currentLog));
365 
366     showDXMarathon(selectedYear);
367     emit debugLog(Q_FUNC_INFO, "END", logSeverity);
368        //qDebug() << "AwardsWidget::showAwards - END" << QT_ENDL;
369 }
370 
showDXMarathon(const int _year)371 void AwardsWidget::showDXMarathon(const int _year)
372 {
373           //qDebug() << "AwardsWidget::AwardsWidget::showDXMarathon: Year: " << QString::number(_year) << QT_ENDL;
374     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
375     int i = 0;
376 
377     i = awards->getDXMarathonQSO(_year, currentLog);
378           //qDebug() << "AwardsWidget::AwardsWidget::showDXMarathon: QSO: " << QString::number(i) << QT_ENDL;
379     yearlyQSOLCDNumber->display(i);
380 
381     i = awards->getDXMarathonDXCC(_year, currentLog);
382           //qDebug() << "AwardsWidget::AwardsWidget::showDXMarathon: DXCC: " << QString::number(i) << QT_ENDL;
383     yearlyDXCCQLCDNumber->display(i);
384 
385     i = awards->getDXMarathonCQ(_year, currentLog);
386     yearlyCQQLCDNumber->display(i);
387           //qDebug() << "AwardsWidget::AwardsWidget::showDXMarathon: CQ: " << QString::number(i) << QT_ENDL;
388 
389     if (manageDXMarathon)
390     {
391         i = awards->getDXMarathonScore(_year, currentLog);
392     }
393     else
394     {
395         i = 0;
396     }
397     yearlyScoreQLCDNumber->display(i);
398     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
399       //qDebug() << "AwardsWidget::AwardsWidget::showDXMarathon: Score: " << QString::number(i) << QT_ENDL;
400 }
401 
reconfigureDXMarathonUI(const bool _dxM)402 void AwardsWidget::reconfigureDXMarathonUI(const bool _dxM)
403 {
404     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
405     //dxClusterWidget->setDXMarathon(_dxM);
406     if (_dxM)
407     {
408         yearlyLabelN->setText(tr("DX-Marathon"));
409         yearlyScoreLabelN->setEnabled(true);
410         yearlyScoreQLCDNumber->setEnabled(true);
411         yearlyScoreQLCDNumber->display(0);
412     }
413     else
414     {
415         yearlyLabelN->setText(tr("Annual"));
416         yearlyScoreLabelN->setEnabled(false);
417         yearlyScoreQLCDNumber->setEnabled(false);
418         emit requireCurrentYearSignal();
419 
420         int i = awards->getDXMarathonScore(selectedYear, currentLog);
421         if (i>0)
422         {
423             yearlyScoreQLCDNumber->display(i);
424         }
425         else
426         {
427             yearlyScoreQLCDNumber->display(0);
428         }
429     }
430     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
431 }
432 
checkIfValidLog()433 void AwardsWidget::checkIfValidLog()
434 {
435     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
436     if (currentLog < 1)
437     {
438         emit requireCurrentLogSignal();
439     }
440     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
441 }
442 
setLog(const int _log)443 void AwardsWidget::setLog(const int _log)
444 {
445     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
446     if (_log >= 1)
447     {
448         currentLog = _log;
449     }
450 
451     //TODO: Define an action when the log received is NOK
452     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
453 }
454 
455 
setYear(const int _year)456 void AwardsWidget::setYear(const int _year)
457 {
458     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
459     if (_year >= 1800)
460     {
461         selectedYear = _year;
462 
463         if (operatingYearsComboBox->findText(QString::number(selectedYear), Qt::MatchCaseSensitive)>=0)
464         {
465             operatingYearsComboBox->setCurrentIndex(operatingYearsComboBox->findText(QString::number(selectedYear), Qt::MatchCaseSensitive));
466         }
467         else
468         {
469         //TODO: Define what to do when the year is NOK
470         }
471     }
472     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
473 }
474 
fillOperatingYears()475 void AwardsWidget::fillOperatingYears()
476 {
477     emit debugLog(Q_FUNC_INFO, "Start", logSeverity);
478     emit requireCurrentLogSignal();
479     emit requireCurrentYearSignal();
480     operatingYearsComboBox->clear();
481 
482     if (dataProxy->getLastQSOid()<=1)
483     {
484           //qDebug() << "AwardsWidget::AwardsWidget: 18.4" << QT_ENDL;
485         operatingYearsComboBox->addItem(QString::number(selectedYear));
486     }
487     else
488     {
489            //qDebug() << "AwardsWidget::AwardsWidget: 18.5 - currentLog: " << QString::number(currentLog) << QT_ENDL;
490         operatingYearsComboBox->addItems(dataProxy->getOperatingYears(currentLog));
491            //qDebug() << "AwardsWidget::AwardsWidget: 18.5.1 - currentLog: " << QString::number(currentLog) << QT_ENDL;
492 
493         QStringList a;
494         a.clear();
495         a << dataProxy->getOperatingYears(currentLog);
496            //qDebug() << "AwardsWidget::AwardsWidget: 18.5.1.1 - currentLog: " << QString::number(currentLog) << QT_ENDL;
497         if (!a.isEmpty())
498         {
499                //qDebug() << "AwardsWidget::AwardsWidget: 18.5.1.2 - currentLog: " << QString::number(currentLog) << QT_ENDL;
500             operatingYearsComboBox->setCurrentIndex(operatingYearsComboBox->findText(a.last(), Qt::MatchCaseSensitive));
501                //qDebug() << "AwardsWidget::AwardsWidget: 18.5.1.3 - currentLog: " << QString::number(currentLog) << QT_ENDL;
502         }
503 
504            //qDebug() << "AwardsWidget::AwardsWidget: 18.5.2" << QT_ENDL;
505     }
506     emit debugLog(Q_FUNC_INFO, "End", logSeverity);
507 }
508 
509