Disables call validation when dataproxy is not present

This commit is contained in:
ea4k 2022-08-24 10:11:00 +02:00
parent a56c5a4253
commit aa49ec8b85
13 changed files with 240 additions and 38 deletions

View File

@ -1,3 +1,10 @@
TBS 2022 - 2.3
- Bugfix: Temporary bugfix for Setup eLog Page preventing crash on start. (Closes #489)
- Bugfix: Temporary quick fix to prevent call validation in some classes that may cause errors. (Opens #490)
- Bugfix: Config for real time for clublog was not properly managed.
- Improvement: Code improvement in the Setup of eLogs.
- Tests: Tests for SetupPageElog added.
Aug 2022 - 2.2
- Bugfix: DL was not properly shown in the DXCC status table (Closes #460) (TNX N6PAZ)
- Bugfix: Clublog QSO status export to file was not properly done.

View File

@ -41,6 +41,7 @@ DataProxy_SQLite::DataProxy_SQLite(const QString &_parentFunction, const QString
//qDebug() << "DataProxy_SQLite::DataProxy_SQLite 1" << QT_ENDL;
util = new Utilities(Q_FUNC_INFO);
util->setVersion(_softVersion);
util->setCallValidation(false);
qso = new QSO;
db = new DataBase(Q_FUNC_INFO, _softVersion, util->getKLogDBFile());

View File

@ -8684,8 +8684,9 @@ void MainWindow::restoreCurrentQSO(const bool restoreConfig)
QSLTabWidget->setQSLRecStatus (qso->getQSL_RCVD ());
QSLTabWidget->setQSLRecDate (qso->getQSLRDate ());
QSLTabWidget->setQSLSenDate (qso->getQSLSDate ());
QSLTabWidget->setQSLSenVia (qso->getSentVia ());
QSLTabWidget->setQSLRecVia (qso->getRecVia ());
QSLTabWidget->setQSLSenVia (qso->getQSLSentVia());
QSLTabWidget->setQSLRecVia (qso->getQSLRecVia());
QSLTabWidget->setQSLVia (qso->getQSLVia ());
QSLTabWidget->setQSLMsg (qso->getQSLMsg ());

View File

@ -30,6 +30,7 @@ QSO::QSO()
logLevel = None;
qsoId = -1;
util = new Utilities(Q_FUNC_INFO);
util->setCallValidation(false);
}
QSO::~QSO()
@ -1529,7 +1530,7 @@ QString QSO::getCheck()
return check;
}
bool QSO::setClase(const QString &_c)
bool QSO::setClass(const QString &_c)
{
clase = _c;
return true;
@ -3132,24 +3133,22 @@ bool QSO::setData(const QString &_adifPair)
return true;
}
/*
QSqlQuery QSO::add()
{
QSqlQuery query;
query.clear();
query.prepare( "INSERT INTO log (call, qso_date, bandid, modeid, srx, stx, srx_string, stx_string, qso_date_off, band_rx, rst_sent, rst_rcvd, cqz, ituz, dxcc, address, age, cnty, comment, a_index, ant_az, ant_el, ant_path, arrl_sect, checkcontest, class, contacted_op, contest_id, country, credit_submitted, credit_granted, distance, eq_call, email, eqsl_qslrdate, eqsl_qslsdate, eqsl_qsl_rcvd, eqsl_qsl_sent, force_init, freq, freq_rx, gridsquare, my_gridsquare, iota, iota_island_id, my_iota, my_iota_island_id, k_index, lat, lon, my_lat, my_lon, lotw_qslrdate, lotw_qslsdate, lotw_qsl_rcvd, lotw_qsl_sent, clublog_qso_upload_date, clublog_qso_upload_status, max_bursts, ms_shower, my_antenna, my_city, my_cnty, my_country, my_cq_zone, my_name, name, operator, station_callsign, owner_callsign, my_rig, my_sig, my_sig_info, my_sota_ref, my_state, state, my_street, my_vucc_grids, notes, nr_bursts, nr_pings, pfx, precedence, prop_mode, public_key, qslmsg, qslrdate, qslsdate, qsl_rcvd, qsl_sent, qsl_rcvd_via, qsl_sent_via, qsl_via, qso_complete, qso_random, qth, rx_pwr, tx_pwr, sat_mode, sat_name, sfi, sig, sota_ref, swl, ten_ten, vucc_grids, web, points, multiplier, lognumber) VALUES (:call, :qso_date, :bandid, :modeid, :srx, :stx, :srx_string, :stx_string, :qso_date_off, :band_rx, :rst_sent, :rst_rcvd, :cqz, :ituz, :dxcc, :address, :age, :cnty, :comment, :a_index, :ant_az, :ant_el, :ant_path, :arrl_sect, :checkcontest, :class, :contacted_op, :contest_id, :country, :credit_submitted, :credit_granted, :distance, :eq_call, :email, :eqsl_qslrdate, :eqsl_qslsdate, :eqsl_qsl_rcvd, :eqsl_qsl_sent, :force_init, :freq, :freq_rx, :gridsquare, :my_gridsquare, :iota, :iota_island_id, :my_iota, :my_iota_island_id, :k_index, :lat, :lon, :my_lat, :my_lon, :lotw_qslrdate, :lotw_qslsdate, :lotw_qsl_rcvd, :lotw_qsl_sent, :clublog_qso_upload_date, :clublog_qso_upload_status, :max_bursts, :ms_shower, :my_antenna, :my_city, :my_cnty, :my_country, :my_cq_zone, :my_name, :name, :operator, :station_callsign, :owner_callsign, :my_rig, :my_sig, :my_sig_info, :my_sota_ref, :my_state, :state, :my_street, :my_vucc_grids, :notes, :nr_bursts, :nr_pings, :pfx, :precedence, :prop_mode, :public_key, :qslmsg, :qslrdate, :qslsdate, :qsl_rcvd, :qsl_sent, :qsl_rcvd_via, :qsl_sent_via, :qsl_via, :qso_complete, :qso_random, :qth, :rx_pwr, :tx_pwr, :sat_mode, :sat_name, :sfi, :sig, :sota_ref, :swl, :ten_ten, :vucc_grids, :web, :points, :multiplier, :lognumber)" );
//query.bindValue(":id", 1001);
//query.bindValue(":forename", "Bart");
//query.bindValue(":surname", "Simpson");
query.bindValue(":call", getCall());
query.bindValue(":qso_date", util->getDateSQLiteStringFromDate(getDate()));
query.bindValue(":bandid", );
query.bindValue(":modeid", );
//query.bindValue(":bandid", "");
//query.bindValue(":modeid", "");
query.bindValue(":srx", getSrx());
query.bindValue(":stx", getStx());
query.bindValue(":srx_string", getSrxString());
query.bindValue(":stx_string", getStxString());
query.bindValue(":qso_date_off", util->getDateSQLiteStringFromDate(getDateOff()));
query.bindValue(":band_rx", );
//query.bindValue(":band_rx", "");
query.bindValue(":rst_sent", getRSTTX());
query.bindValue(":rst_rcvd", getRSTRX());
@ -3257,9 +3256,10 @@ QSqlQuery QSO::add()
query.bindValue(":ten_ten", getTenTen());
query.bindValue(":vucc_grids", getVUCCGrids());
query.bindValue(":web", getWeb());
query.bindValue(":points", );
query.bindValue(":multiplier", );
//query.bindValue(":points", );
//query.bindValue(":multiplier", );
query.bindValue(":lognumber", getLogId());
return query;
}
*/

View File

@ -29,7 +29,7 @@
#include <QString>
#include <QDate>
#include <QTime>
#include <QSqlQuery>
//#include <QSqlQuery>
#include <QDebug>
#include "utilities.h"
#include "klogdefinitions.h"
@ -376,8 +376,7 @@ public:
bool setMyWwffRef(const QString &_c);
QString getMyWwffRef();
QSqlQuery add();
//QSqlQuery add();
signals:
void debugLog (QString _func, QString _msg, DebugLogLevel _level);

View File

@ -655,7 +655,7 @@ void SetupDialog::slotOkButtonClicked()
//qDebug() << "SetupDialog::slotOkButtonClicked - 60" << QT_ENDL;
// LOTW
stream << "LoTWActive=" << eLogPage->getLoTWActive() << ";" << QT_ENDL;
stream << "LoTWActive=" << util->boolToQString(eLogPage->getLoTWActive()) << ";" << QT_ENDL;
tmp = eLogPage->getTQSLPath();
if (tmp.length()>0)
{
@ -1117,7 +1117,7 @@ bool SetupDialog::processConfigLine(const QString &_line)
}
else if(tab =="QRZCOMACTIVE"){
//eQSLPage->setActive(value);
eLogPage->setQRZCOMActive(value);
eLogPage->setQRZCOMActive(util->trueOrFalse(value));
}
else if(tab =="QRZCOMSUBSCRIBER"){
eLogPage->setQRZCOMSubscriber(util->trueOrFalse (value));
@ -1126,7 +1126,7 @@ bool SetupDialog::processConfigLine(const QString &_line)
eLogPage->setQRZCOMUser(value);
}
else if(tab =="QRZCOMAUTO"){
eLogPage->setQRZCOMAutoCheck(value);
eLogPage->setQRZCOMAutoCheck(util->trueOrFalse(value));
}
else if(tab =="QRZCOMPASS"){
eLogPage->setQRZCOMPassword(value);
@ -1369,7 +1369,7 @@ void SetupDialog::setClubLogActive(const bool _b)
void SetupDialog::setQRZCOMAutoCheckActive(const bool _b)
{
eLogPage->setQRZCOMAutoCheck(util->boolToQString(_b));
eLogPage->setQRZCOMAutoCheck(_b);
}
void SetupDialog::setEQSLActive(const bool _b)

View File

@ -32,7 +32,8 @@
SetupPageELog::SetupPageELog(QWidget *parent) : QWidget(parent)
{
//qDebug() << "SetupPageELog::SetupPageELog" << QT_ENDL;
util = new Utilities(Q_FUNC_INFO);
util->setCallValidation(false);
palRed.setColor(QPalette::Text, Qt::red);
palBlack.setColor(QPalette::Text, Qt::black);
@ -167,7 +168,6 @@ SetupPageELog::SetupPageELog(QWidget *parent) : QWidget(parent)
lotwTQSLPathLineEdit->setToolTip(tr("Path to the TQSL software."));
lotwSearchTQSLPushButton->setToolTip(tr("Enable the LoTW integration with TQSL. You will need to have TQSL installed"));
QHBoxLayout *l1layout = new QHBoxLayout;
l1layout->addWidget(lotwTQSLPathLineEdit);
l1layout->addWidget(lotwSearchTQSLPushButton);
@ -265,6 +265,7 @@ void SetupPageELog::slotQRZCallTextChanged()
//qDebug() << "SetupPageELog::slotQRZCallTextChanged-2.2" << QT_ENDL;
QRZCOMUserLineEdit->setPalette(palRed);
}
//qDebug() << "SetupPageELog::slotQRZCallTextChanged-3" << QT_ENDL;
QRZCOMUserLineEdit->setText(aux.toUpper());
//qDebug() << "SetupPageELog::slotQRZCallTextChanged-4" << QT_ENDL;
@ -279,6 +280,7 @@ void SetupPageELog::sloteQSLCallTextChanged()
int cursor = eQSLUserLineEdit->cursorPosition();
QString aux = util->getClearSQLi (eQSLUserLineEdit->text());
if (util->isValidCall(aux))
{
eQSLUserLineEdit->setPalette(palBlack);
@ -287,6 +289,7 @@ void SetupPageELog::sloteQSLCallTextChanged()
{
eQSLUserLineEdit->setPalette(palRed);
}
eQSLUserLineEdit->setText(aux.toUpper());
eQSLUserLineEdit->setCursorPosition(cursor);
//qDebug() << "SetupPageELog::sloteQSLCallTextChanged - END" << QT_ENDL;
@ -315,6 +318,7 @@ void SetupPageELog::slotLoTWEmailDefineColor()
{
lotwUserLineEdit->setPalette(palRed);
}
lotwUserLineEdit->setText(aux.toUpper());
lotwUserLineEdit->setCursorPosition(cursor);
@ -395,8 +399,9 @@ void SetupPageELog::slotClubLogActive(const bool _s)
void SetupPageELog::setClubLogRealTime(const bool &_s)
{
//qDebug() << Q_FUNC_INFO << ": " << util->boolToQString(_s);
clubLogRealTime = _s;
clubLogSendInRealTimeCheckBox->setEnabled(clubLogRealTime);
clubLogSendInRealTimeCheckBox->setChecked(clubLogRealTime);
}
bool SetupPageELog::getClubLogRealTime()
@ -476,10 +481,10 @@ void SetupPageELog::setLoTWActive(const bool &_s)
//lotwPasswordLineEdit->setEnabled(_s);
}
QString SetupPageELog::getLoTWActive()
bool SetupPageELog::getLoTWActive()
{
lotwTQSL = lotwUseTQSLCheckBox->isChecked();
return util->boolToQString(lotwTQSL);
return lotwUseTQSLCheckBox->isChecked();
//return util->boolToQString(lotwTQSL);
}
void SetupPageELog::setTQSLPath(const QString &c)
@ -569,19 +574,18 @@ void SetupPageELog::slotEnterKeyPressed()
// QRZ.COM
void SetupPageELog::setQRZCOMActive(const QString &_s)
void SetupPageELog::setQRZCOMActive(const bool _s)
{
//qDebug() << "SetupPageELog::setQRZCOMActive " << QT_ENDL;
qrzcomActive = util->trueOrFalse(_s);
QRZCOMActiveCheckBox->setChecked(qrzcomActive);
QRZCOMAutoCheckCheckBox->setEnabled(qrzcomActive);
qrzcomActive = _s;
QRZCOMActiveCheckBox->setChecked(_s);
QRZCOMAutoCheckCheckBox->setEnabled(_s);
}
bool SetupPageELog::getQRZCOMActive()
{
//qDebug() << "SetupPageELog::getQRZCOMActive :" << QT_ENDL;
qrzcomActive = QRZCOMActiveCheckBox->isChecked();
return qrzcomActive;
return QRZCOMActiveCheckBox->isChecked();
//qDebug() << "SetupPageELog::getQRZCOMActive : " << util->boolToQString(qrzcomActive) << QT_ENDL;
}
@ -602,7 +606,7 @@ bool SetupPageELog::SetupPageELog::getQRZCOMSubscriber()
void SetupPageELog::slotQRZCOMActive(bool _s)
{
qrzcomActive = _s;
//qDebug() << "SetupPageELog::slotQRZCOMActive: " << util->boolToQString(_s) << QT_ENDL;
QRZCOMUserLabel->setEnabled(_s);
//qDebug() << "SetupPageELog::slotQRZCOMActive - 1" << QT_ENDL;
@ -674,9 +678,9 @@ bool SetupPageELog::getQRZCOMAutoCheck()
return qrzcomAutoFill;
}
void SetupPageELog::setQRZCOMAutoCheck(const QString &_s)
void SetupPageELog::setQRZCOMAutoCheck(const bool _s)
{
qrzcomAutoFill = util->trueOrFalse(_s);
qrzcomAutoFill = _s;
QRZCOMAutoCheckCheckBox->setChecked(qrzcomAutoFill);
}

View File

@ -53,7 +53,7 @@ public:
void setTQSLPath(const QString &c);
QString getTQSLPath();
void setLoTWActive(const bool &_s);
QString getLoTWActive();
bool getLoTWActive();
void setLoTWUser(const QString &_s);
QString getLoTWUser();
void setLoTWPass(const QString &_s);
@ -75,8 +75,8 @@ public:
void setQRZCOMPassword(const QString &_s);
void setQRZCOMLogBookKEY(const QString &_s);
void setQRZCOMActive(const QString &_s);
void setQRZCOMAutoCheck(const QString &_s);
void setQRZCOMActive(const bool _s);
void setQRZCOMAutoCheck(const bool _s);
QString getQRZCOMUser();
QString getQRZCOMPassword();

View File

@ -10,4 +10,5 @@ SUBDIRS=\
tst_qso \
tst_setuphamlibnetworkwidget \
tst_setuphamlibserialwidget \
tst_setuppageelog \
tst_world

View File

@ -1,5 +1,5 @@
/***************************************************************************
tst_mainqsoentrywidget.h - description
tst_setuphamlibnetworkwidget.cpp - description
-------------------
begin : Jan 2021
copyright : (C) 2021 by Jaime Robles

View File

@ -1,5 +1,5 @@
/***************************************************************************
tst_mainqsoentrywidget.h - description
tst_setuphamlibserialwidget.h - description
-------------------
begin : Jan 2021
copyright : (C) 2021 by Jaime Robles

View File

@ -0,0 +1,151 @@
/***************************************************************************
tst_setuppageelog.cpp - description
-------------------
begin : Aug 2022
copyright : (C) 2022 by Jaime Robles
email : jaime@robles.es
***************************************************************************/
/*****************************************************************************
* This file is part of Testing suite of KLog. *
* *
* KLog is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* The testing suite of KLog is distributed in the hope that it will *
* be useful, but WITHOUT ANY WARRANTY; without even the implied *
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* See the GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with Testing suite of KLog. *
* If not, see <https://www.gnu.org/licenses/>. *
* *
*****************************************************************************/
#include <QtTest>
#include "../../src/setuppages/setuppageelog.h"
class tst_SetupPageELog: public QObject
{
Q_OBJECT
public:
tst_SetupPageELog();
~tst_SetupPageELog();
private slots:
void initTestCase();
void cleanupTestCase();
void test_Constructor();
void test_ClubLog();
void test_LoTW();
void test_eQSL();
void test_QRZCOM();
private:
SetupPageELog *page;
};
tst_SetupPageELog::tst_SetupPageELog()
{
page = new SetupPageELog();
}
tst_SetupPageELog::~tst_SetupPageELog()
{
}
void tst_SetupPageELog::initTestCase()
{
}
void tst_SetupPageELog::cleanupTestCase()
{
}
void tst_SetupPageELog::test_Constructor()
{
}
void tst_SetupPageELog::test_ClubLog()
{
page->setClubLogActive(false);
QVERIFY2(!page->getClubLogActive(), "ClubLog not Active failed");
page->setClubLogActive(true);
QVERIFY2(page->getClubLogActive(), "ClubLog Active failed");
page->setClubLogRealTime(false);
QVERIFY2(!page->getClubLogRealTime(), "ClubLog not Real Time failed");
page->setClubLogRealTime(true);
QVERIFY2(page->getClubLogRealTime(), "ClubLog Real Time failed");
page->setClubLogEmail("test@klog.xyz");
QVERIFY2(page->getClubLogEmail() == "test@klog.xyz", "ClubLog get Email failed");
page->setClubLogPassword("secretpassword");
QVERIFY2(page->getClubLogPassword() == "secretpassword", "ClubLog get Password failed");
}
void tst_SetupPageELog::test_LoTW()
{
page->setLoTWActive(false);
QVERIFY2(!page->getLoTWActive(), "LoTW not Active failed");
page->setLoTWActive(true);
QVERIFY2(page->getLoTWActive(), "LoTW Active failed");
page->setTQSLPath("/usr/bin/path/");
QVERIFY2(page->getTQSLPath() == "/usr/bin/path/", "TQSL get path failed");
page->setLoTWUser("ea4k");
QVERIFY2(page->getLoTWUser() == "EA4K", "LoTW get User failed");
page->setLoTWPass("secretpassword");
QVERIFY2(page->getLoTWPass() == "secretpassword", "LoTW get Password failed");
}
void tst_SetupPageELog::test_eQSL()
{
page->setEQSLActive(false);
QVERIFY2(!page->getEQSLActive(), "eQSL not Active failed");
page->setEQSLActive(true);
QVERIFY2(page->getEQSLActive(), "eQSL Active failed");
page->setEQSLUser("ea4k");
QVERIFY2(page->getEQSLUser() == "EA4K", "eQSL get User failed");
page->setEQSLPassword("secretpassword");
QVERIFY2(page->getEQSLPassword() == "secretpassword", "eQSL get Password failed");
}
void tst_SetupPageELog::test_QRZCOM()
{
page->setQRZCOMActive(false);
QVERIFY2(!page->getQRZCOMActive(), "QRZ not Active failed");
page->setQRZCOMActive(true);
QVERIFY2(page->getQRZCOMActive(), "QRZ Active failed");
page->setQRZCOMSubscriber(false);
QVERIFY2(!page->getQRZCOMSubscriber(), "QRZ not Subscriber failed");
page->setQRZCOMSubscriber(true);
QVERIFY2(page->getQRZCOMSubscriber(), "QRZ Subscriber failed");
page->setQRZCOMAutoCheck(false);
QVERIFY2(!page->getQRZCOMAutoCheck(), "QRZ not Autocheck failed");
page->setQRZCOMAutoCheck(true);
QVERIFY2(page->getQRZCOMAutoCheck(), "QRZ Autocheck failed");
page->setQRZCOMUser("ea4k");
QVERIFY2(page->getQRZCOMUser() == "EA4K", "QRZ get User failed");
page->setQRZCOMPassword("secretpassword");
QVERIFY2(page->getQRZCOMPassword() == "secretpassword", "QRZ get LogBook-key failed");
page->setQRZCOMLogBookKEY("XXXYYY");
QVERIFY2(page->getQRZCOMLogBookKEY() == "XXXYYY", "QRZ get LogBook-key failed");
}
QTEST_MAIN(tst_SetupPageELog)
#include "tst_setuppageelog.moc"

View File

@ -0,0 +1,38 @@
QT += testlib \
core \
gui \
sql \
widgets
CONFIG += qt console warn_on depend_includepath testcase
CONFIG -= app_bundle
TEMPLATE = app
HEADERS += \
../../src/klogdefinitions.h \
../../src/utilities.h \
../../src/dataproxy_sqlite.h \
../../src/database.h \
../../src/qso.h \
../../src/locator.h \
../../src/setuppages/setuppageelog.h
SOURCES += tst_setuppageelog.cpp \
../../src/utilities.cpp \
../../src/dataproxy_sqlite.cpp \
../../src/database.cpp \
../../src/qso.cpp \
../../src/locator.cpp \
../../src/setuppages/setuppageelog.cpp
isEmpty(QMAKE_LRELEASE) {
win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
unix {
!exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt5 }
} else {
!exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease }
}
}