This commit is contained in:
jaime 2018-09-12 19:48:24 +00:00
parent ea2bb5ea96
commit e8f4542d5c
28 changed files with 421 additions and 223 deletions

View File

@ -1,5 +1,6 @@
August 2018 - 0.9.4.1
- Bugfix: When data was received from WSJT-X, local locator & operator was not properly parsed.
TBD - 0.9.5
- Added a dot at the end of all the tooltips.
- Stats widget created to show statistics on the log.
August 2018 - 0.9.4
- WSJT-X support to receive logged QSO and realtime data.

View File

@ -2,7 +2,7 @@ CONFIG += app_bundle
CONFIG += static
#CONFIG += release
TEMPLATE = app
VERSION = 0.9.4
VERSION = 0.9.5
DEFINES += APP_VERSION="$$VERSION"
APP_NAME = KLog
@ -27,8 +27,9 @@ QT += core \
widgets
greaterThan(QT_MAJOR_VERSION, 4) {
QT *= printsupport
QT += widgets
QT += printsupport
QT += widgets \
charts
}
@ -75,7 +76,10 @@ HEADERS += setupdialog.h \
infowidget.h \
showerrordialog.h \
udpserver.h \
setuppageudp.h
setuppageudp.h \
statisticswidget.h \
charts/barchartstats.h \
charts/donutchartstats.h
SOURCES += main.cpp \
aboutdialog.cpp \
setupdialog.cpp \
@ -120,7 +124,10 @@ SOURCES += main.cpp \
infowidget.cpp \
showerrordialog.cpp \
udpserver.cpp \
setuppageudp.cpp
setuppageudp.cpp \
statisticswidget.cpp \
charts/barchartstats.cpp \
charts/donutchartstats.cpp
OTHER_FILES += \
README-DEVEL \

View File

@ -303,7 +303,10 @@ bool DataBase::createConnection(bool newDB)
//qDebug() << "DataBase::createConnection: DB NOT Opened" << endl;
//db = QSqlDatabase::database();
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbName);
db.setDatabaseName(dbName);
if (!db.open())
{

View File

@ -424,6 +424,11 @@ int DataProxy::getCQzonYear(const int _year, const int _logNumber)
return -1;
}
int DataProxy::getQSOsWithDXCC(const int _dxcc, const int _logNumber)
{
return -1;
}
bool DataProxy::newDXMarathon(const int _dxcc, const int _cq, const int _year, const int _logNumber)
{
return false;
@ -580,6 +585,16 @@ int DataProxy::getHowManyConfirmedQSLInLog(const int _log)
return 0;
}
int DataProxy::getQSOsInBand(const QString _band, const int _log)
{
return 0;
}
int DataProxy::getQSOsInMode(const QString _mode, const int _log)
{
return 0;
}
bool DataProxy::addNewLog (const QStringList _qs)
{
return false;

View File

@ -83,6 +83,8 @@ public:
virtual QStringList getModesInLog(const int _log);
virtual int getMostUsedBand(const int _log);
virtual int getMostUsedMode(const int _log);
virtual int getQSOsInBand(const QString _band, const int _log);
virtual int getQSOsInMode(const QString _mode, const int _log);
virtual int getLastQSOid();
virtual bool clearLog();
@ -160,6 +162,7 @@ public:
virtual int getQSOonYear(const int _year, const int _logNumber);
virtual int getDXCConYear(const int _year, const int _logNumber);
virtual int getCQzonYear(const int _year, const int _logNumber);
virtual int getQSOsWithDXCC(const int _dxcc, const int _logNumber);
virtual bool newDXMarathon(const int _dxcc, const int _cq, const int _year, const int _logNumber);
virtual QStringList getContestNames();

View File

@ -436,8 +436,8 @@ double DataProxy_SQLite::getLowLimitBandFromBandName(const QString _sm)
}
//qDebug() << "DataProxy_SQLite::getLowLimitBandFromBandName: -1.0-3" << endl;
query.finish();
return -1.0;
//query.finish();
//return -1.0;
}
else
{
@ -445,7 +445,7 @@ double DataProxy_SQLite::getLowLimitBandFromBandName(const QString _sm)
query.finish();
return -1.0;
}
return -1.0;
//return -1.0;
}
@ -492,7 +492,7 @@ double DataProxy_SQLite::getLowLimitBandFromBandId(const QString _sm)
query.finish();
return -1.0;
}
return -1.0;
//return -1.0;
}
@ -1585,7 +1585,6 @@ LOTW_QSL_RCVD, QSL_SENT, DXCC, PROP_MODE, CREDIT_GRANTED
query.finish();
return QStringList();
}
query.finish();
}
else
{
@ -1696,8 +1695,8 @@ LOTW_QSL_RCVD, QSL_SENT, DXCC, PROP_MODE, CREDIT_GRANTED
query2.finish();
return QStringList();
}
query.finish();
return QStringList();
//query.finish();
//return QStringList();
// NO NEXT
}
}
@ -2114,9 +2113,6 @@ bool DataProxy_SQLite::addQSOFromWSJTX(const QString _dxcall, const double _freq
return false;
}
//getBandNameFromFreq(const double _n)
return false;
}
bool DataProxy_SQLite::deleteQSO(const int _qsoId)
@ -2218,8 +2214,6 @@ bool DataProxy_SQLite::isThisQSODuplicated(const QString _qrz, const QString _da
query.finish();
return false;
}
return false;
}
@ -2307,8 +2301,6 @@ bool DataProxy_SQLite::isDXCCConfirmed(const int _dxcc, const int _currentLog)
query.finish();
return false;
}
//qDebug() << "DataProxy_SQLite::isDXCCConfrmed: FALSE4" << endl;
return false;
}
bool DataProxy_SQLite::isHF(const int _band)
@ -2373,8 +2365,17 @@ QStringList DataProxy_SQLite::getOperatingYears(const int _currentLog)
QStringList years = QStringList();
//QStringList yearsSorted = QStringList();
QSqlQuery query;
QString queryString;
if (_currentLog<0)
{
queryString = QString("SELECT DISTINCT (substr (qso_date, 0, 5)) FROM log ORDER BY 'qso_date'");
}
else
{
queryString = QString("SELECT DISTINCT (substr (qso_date, 0, 5)) FROM log WHERE lognumber='%0' ORDER BY 'qso_date'").arg(_currentLog);
}
QString queryString = QString("SELECT DISTINCT (substr (qso_date, 0, 5)) FROM log WHERE lognumber='%0' ORDER BY 'qso_date'").arg(_currentLog);
QString year = QString();
//qDebug() << "DataProxy_SQLite::getYearsOperating: -1" << endl;
bool sqlOk = query.exec(queryString);
@ -2510,12 +2511,20 @@ bool DataProxy_SQLite::lotwSentYes(const QString _updateDate, const int _current
int DataProxy_SQLite::getQSOonYear(const int _year, const int _logNumber)
{
//qDebug() << "DataProxy_SQLite::getQSOonYear: " << QString::number(_year) << "/" << QString::number(_logNumber) << endl;
//qDebug() << "DataProxy_SQLite::getQSOonYear: " << QString::number(_year) << "/" << QString::number(_logNumber) << endl;
QSqlQuery query;
QString queryString;
bool sqlOK;
queryString = QString("SELECT COUNT (DISTINCT id) FROM log where lognumber='%1' AND qso_date LIKE '%2%'").arg(_logNumber).arg(_year);
if (_logNumber < 0)
{
queryString = QString("SELECT COUNT (DISTINCT id) FROM log WHERE qso_date LIKE '%1%'").arg(_year);
}
else
{
queryString = QString("SELECT COUNT (DISTINCT id) FROM log where lognumber='%1' AND qso_date LIKE '%2%'").arg(_logNumber).arg(_year);
}
sqlOK = query.exec(queryString);
@ -2554,7 +2563,15 @@ int DataProxy_SQLite::getDXCConYear(const int _year, const int _logNumber)
QSqlQuery query;
QString queryString;
bool sqlOK;
queryString = QString("SELECT COUNT (DISTINCT dxcc) FROM log where lognumber='%1' AND qso_date LIKE '%2%'").arg(_logNumber).arg(_year);
if (_logNumber < 0)
{
queryString = QString("SELECT COUNT (DISTINCT dxcc) FROM log where qso_date LIKE '%1%'").arg(_year);
}
else
{
queryString = QString("SELECT COUNT (DISTINCT dxcc) FROM log where lognumber='%1' AND qso_date LIKE '%2%'").arg(_logNumber).arg(_year);
}
sqlOK = query.exec(queryString);
@ -2591,7 +2608,15 @@ int DataProxy_SQLite::getCQzonYear(const int _year, const int _logNumber)
QSqlQuery query;
QString queryString;
bool sqlOK;
queryString = QString("SELECT COUNT (DISTINCT cqz) FROM log where lognumber='%1' AND qso_date LIKE '%2%'").arg(_logNumber).arg(_year);
if (_logNumber < 0)
{
queryString = QString("SELECT COUNT (DISTINCT cqz) FROM log where qso_date LIKE '%1%' AND cqz < '41' AND cqz > '0'").arg(_year);
}
else
{
queryString = QString("SELECT COUNT (DISTINCT cqz) FROM log where lognumber='%1' AND qso_date LIKE '%2%'").arg(_logNumber).arg(_year);
}
sqlOK = query.exec(queryString);
@ -2623,6 +2648,54 @@ int DataProxy_SQLite::getCQzonYear(const int _year, const int _logNumber)
}
}
int DataProxy_SQLite::getQSOsWithDXCC(const int _dxcc, const int _logNumber)
{
//qDebug() << "DataProxy_SQLite::getQSOsWithDXCC: " << QString::number(_dxcc) << endl;
QSqlQuery query;
QString queryString;
bool sqlOK;
if (_logNumber < 0)
{
queryString = QString("SELECT COUNT (DISTINCT id) FROM log where dxcc LIKE '%1'").arg(_dxcc);
}
else
{
queryString = QString("SELECT COUNT (DISTINCT id) FROM log where lognumber='%1' AND dxcc LIKE '%2'").arg(_logNumber).arg(_dxcc);
}
sqlOK = query.exec(queryString);
//qDebug() << "DataProxy_SQLite::getQSOsWithDXCC: queryString: " << queryString << endl;
if (sqlOK)
{
query.next();
if (query.isValid())
{
//qDebug() << "DataProxy_SQLite::getQSOsWithDXCC: " << QString::number((query.value(0)).toInt()) << endl;
int v = (query.value(0)).toInt();
query.finish();
return v;
}
else
{
//qDebug() << "DataProxy_SQLite::getQSOsWithDXCC: 0" << endl;
query.finish();
return 0;
}
}
else
{
emit queryError(Q_FUNC_INFO, query.lastError().databaseText(), query.lastError().number(), query.lastQuery());
//qDebug() << "DataProxy_SQLite::getQSOsWithDXCC: Query error" << endl;
query.finish();
return 0;
}
}
bool DataProxy_SQLite::newDXMarathon(const int _dxcc, const int _cq, const int _year, const int _logNumber)
{
//qDebug() << "DataProxy_SQLite::newDXMarathon" << endl;
@ -2676,8 +2749,6 @@ bool DataProxy_SQLite::newDXMarathon(const int _dxcc, const int _cq, const int _
query.finish();
return true; // It is an error inthe query but Work First Worry Later, let us work that QSO.
}
//qDebug() << "DataProxy_SQLite::newDXMarathon - TRUE3" << endl;
return true;
}
QStringList DataProxy_SQLite::getContestNames()
@ -2752,7 +2823,6 @@ QStringList DataProxy_SQLite::getContestCat(const int _catn)
default:
return QStringList();
break;
}
sqlOK = query.exec(queryString);
@ -2782,8 +2852,6 @@ QStringList DataProxy_SQLite::getContestCat(const int _catn)
query.finish();
return QStringList();
}
return QStringList();
}
@ -2826,8 +2894,6 @@ QStringList DataProxy_SQLite::getContestOverlays()
query.finish();
return QStringList();
}
return QStringList();
}
QStringList DataProxy_SQLite::getPropModeList()
@ -3188,7 +3254,6 @@ QStringList DataProxy_SQLite::getValidCatOptions(const int _currentCat, const in
case 0:
queryString = QString("SELECT DISTINCT contestcatoperator.name FROM contestcatoperator JOIN contest ON contest.catoperator=contestcatoperator.id WHERE contest.contest='%1' ORDER BY contestcatoperator.id").arg(_lowerCat);
break;
case 1:
queryString = QString("SELECT DISTINCT contestcatassisted.name FROM contestcatassisted JOIN contest ON contest.catassisted=contestcatassisted.id WHERE contest.catoperator='1' ORDER BY contestcatassisted.id").arg(_lowerCat);
@ -3208,7 +3273,6 @@ QStringList DataProxy_SQLite::getValidCatOptions(const int _currentCat, const in
default:
return QStringList();
break;
}
sqlOK = query.exec(queryString);
@ -3991,8 +4055,8 @@ QStringList DataProxy_SQLite::getDataFromContestType(const int _n)
query.finish();
return QStringList();
}
query.finish();
return dataC;
//query.finish();
//return dataC;
}
else
{
@ -4187,8 +4251,17 @@ bool DataProxy_SQLite::fillEmptyDXCCInTheLog()
int DataProxy_SQLite::getHowManyQSOInLog(const int _log)
{
QString queryString = QString();
QSqlQuery query;
QString queryString = QString("SELECT count(id) FROM log WHERE lognumber='%1'").arg(_log);
if (_log < 0)
{
queryString = QString("SELECT count(id) FROM log");
}
else
{
queryString = QString("SELECT count(id) FROM log WHERE lognumber='%1'").arg(_log);
}
bool sqlOK = query.exec(queryString);
if (sqlOK)
@ -4217,13 +4290,21 @@ int DataProxy_SQLite::getHowManyQSOInLog(const int _log)
int DataProxy_SQLite::getHowManyConfirmedQSLInLog(const int _log)
{
if (!doesThisLogExist(_log))
if (!doesThisLogExist(_log) && (_log>0))
{
return 0;
}
QString queryString = QString();
QSqlQuery query;
QString queryString = QString("SELECT count(id) FROM log WHERE qsl_rcvd='Y' AND lognumber='%1'").arg(_log);
if (_log < 0)
{
queryString = QString("SELECT count(id) FROM log WHERE qsl_rcvd='Y' ");
}
else
{
queryString = QString("SELECT count(id) FROM log WHERE qsl_rcvd='Y' AND lognumber='%1'").arg(_log);
}
bool sqlOK = query.exec(queryString);
if (sqlOK)
@ -4249,6 +4330,101 @@ int DataProxy_SQLite::getHowManyConfirmedQSLInLog(const int _log)
}
}
int DataProxy_SQLite::getQSOsInBand(const QString _band, const int _log)
{
if (!doesThisLogExist(_log) && (_log>0))
{
return 0;
}
int bandId = getIdFromBandName(_band);
if ( bandId < 0)
{
return 0;
}
QString queryString = QString();
QSqlQuery query;
if (_log < 0)
{
queryString = QString("SELECT count(id) FROM log WHERE bandid='%1'").arg(bandId);
}
else
{
queryString = QString("SELECT count(id) FROM log WHERE bandid='%1' AND lognumber='%2'").arg(bandId).arg(_log);
}
bool sqlOK = query.exec(queryString);
if (sqlOK)
{
query.next();
if (query.isValid())
{
int v = (query.value(0)).toInt();
query.finish();
return v;
}
else
{
query.finish();
return 0;
}
}
else
{
emit queryError(Q_FUNC_INFO, query.lastError().databaseText(), query.lastError().number(), query.lastQuery());
query.finish();
return 0;
}
}
int DataProxy_SQLite::getQSOsInMode(const QString _mode, const int _log)
{
if (!doesThisLogExist(_log) && (_log>0))
{
return 0;
}
int modeId = getIdFromModeName(_mode);
if ( modeId < 0)
{
return 0;
}
QString queryString = QString();
QSqlQuery query;
if (_log < 0)
{
queryString = QString("SELECT count(id) FROM log WHERE modeid='%1'").arg(modeId);
}
else
{
queryString = QString("SELECT count(id) FROM log WHERE modeid='%1' AND lognumber='%2'").arg(modeId).arg(_log);
}
bool sqlOK = query.exec(queryString);
if (sqlOK)
{
query.next();
if (query.isValid())
{
int v = (query.value(0)).toInt();
query.finish();
return v;
}
else
{
query.finish();
return 0;
}
}
else
{
emit queryError(Q_FUNC_INFO, query.lastError().databaseText(), query.lastError().number(), query.lastQuery());
query.finish();
return 0;
}
}
bool DataProxy_SQLite::addNewLog (const QStringList _qs)
{
@ -4564,7 +4740,6 @@ bool DataProxy_SQLite::isValidContinentShortName(const QString _n)
query.finish();
return false;
}
return false;
}
int DataProxy_SQLite::getITUzFromPrefix(const QString _p)
@ -4686,7 +4861,7 @@ int DataProxy_SQLite::getITUzFromEntity(const int _n)
QString DataProxy_SQLite::getEntityNameFromId(const int _n)
{
//qDebug() << "DataProxy_SQLite::getEntityNameFromId: " << QString::number(_n) << endl;
//qDebug() << "DataProxy_SQLite::getEntityNameFromId: " << QString::number(_n) << endl;
QSqlQuery query;
QString queryString = QString("SELECT name FROM entity WHERE dxcc='%1'").arg(_n);
@ -4971,9 +5146,7 @@ double DataProxy_SQLite::getLatitudeFromEntity(const int _e)
query.finish();
return v;
}
}
return 0.0;
}
QString DataProxy_SQLite::getEntityPrefixes(const int _enti)
@ -5022,7 +5195,7 @@ QString DataProxy_SQLite::getEntityPrefixes(const int _enti)
}
}
return QString();
//return QString();
}
QStringList DataProxy_SQLite::getEntitiesNames()
@ -5269,7 +5442,7 @@ QString DataProxy_SQLite::getISOName(const int _n)
}
}
//qDebug() << "DataProxy_SQLite::getISOName: NO ISO Name: default" << endl;
return "un"; // When no flag is known, we return the UN flag
//return "un"; // When no flag is known, we return the UN flag
}
void DataProxy_SQLite::getFoundInLog(const QString _txt, const int _log)

View File

@ -161,9 +161,21 @@ public:
bool clearLog();
// Stats
int getQSOonYear(const int _year, const int _logNumber);
int getDXCConYear(const int _year, const int _logNumber);
int getCQzonYear(const int _year, const int _logNumber);
int getQSOsWithDXCC(const int _dxcc, const int _logNumber);
int getHowManyQSOInLog(const int _log);
int getHowManyConfirmedQSLInLog(const int _log);
int getQSOsInBand(const QString _band, const int _log);
int getQSOsInMode(const QString _mode, const int _log);
// Stats - end
bool newDXMarathon(const int _dxcc, const int _cq, const int _year, const int _logNumber);
QStringList getContestNames();
@ -189,8 +201,7 @@ public:
QStringList getValidCatOptions(const int _currentCat, const int _lowerCa);
bool fillEmptyDXCCInTheLog();
int getHowManyQSOInLog(const int _log);
int getHowManyConfirmedQSLInLog(const int _log);
int getNumberOfManagedLogs();
QStringList getListOfManagedLogs();
int getMaxLogNumber();

View File

@ -49,7 +49,7 @@ void DXCCStatusWidget::createUI()
//showAllLogsButton->setText("All logs");
dxccView->setContextMenuPolicy(Qt::CustomContextMenu);
//dxccView->setSortingEnabled(true);
dxccView->setSortingEnabled(true);
dxccView->horizontalHeader()->setStretchLastSection(true);
dxccView->setColumnCount(numberOfColumns);
dxccView->setRowCount(0);
@ -75,30 +75,38 @@ void DXCCStatusWidget::createUI()
void DXCCStatusWidget::update()
{
//qDebug() << "DXCCStatusWidget::update " << endl;
//qDebug() << "DXCCStatusWidget::update " << endl;
//int entities = world->getHowManyEntities();
int entities = dataProxy->getMaxEntityID(false);
//qDebug() << "DXCCStatusWidget::update: " << QString::number(entities) << " entities to update" << endl;
//qDebug() << "DXCCStatusWidget::update: " << QString::number(entities) << " entities to update" << endl;
QStringList list;
//qDebug() << "DXCCStatusWidget::update: -1" << endl;
list.clear();
//qDebug() << "DXCCStatusWidget::update: -2" << endl;
QString aux;
//dxccView->sortByColumn(1, Qt::AscendingOrder);
dxccView->clearContents();
tempLog = -1;
for (int i=1; i<=entities; i++)
//qDebug() << "DXCCStatusWidget::update: -3" << endl;
if (dxccView->columnCount()>1)
{
aux = world->getEntityName(i);
list.clear();
if (aux.length()>2)
//dxccView->sortByColumn(1, Qt::AscendingOrder);
dxccView->clearContents();
tempLog = -1;
//qDebug() << "DXCCStatusWidget::update pre FOR" << endl;
for (int i=1; i<=entities; i++)
{
list << QString::number(i) << aux << bandNames;
addEntity(list);
//qDebug() << "DXCCStatusWidget::update in FOR " << QString::number(i) << endl;
aux = world->getEntityName(i);
//qDebug() << "DXCCStatusWidget::update in FOR aux: " << aux << endl;
list.clear();
if (aux.length()>2) // Not all integers refers to an entity.
{
list << QString::number(i) << aux << bandNames;
addEntity(list);
}
}
}
dxccView->setSortingEnabled(true);
//qDebug() << "DXCCStatusWidget::update END" << endl;
//qDebug() << "DXCCStatusWidget::update END" << endl;
}
void DXCCStatusWidget::addEntity(QStringList const _ent)
@ -217,21 +225,21 @@ void DXCCStatusWidget::setBands(QStringList const _ent, const bool _creating)
//qDebug() << "DXCCStatusWidget::setBands: " << QString::number(_ent.length()) << endl;
if (_creating)
{
//qDebug() << "DXCCStatusWidget::setBands (creating true) " << QString::number(_ent.length()) << endl;
//qDebug() << "DXCCStatusWidget::setBands (creating true) " << QString::number(_ent.length()) << endl;
}
else
{
//qDebug() << "DXCCStatusWidget::setBands (creating false) " << QString::number(_ent.length()) << endl;
//qDebug() << "DXCCStatusWidget::setBands (creating false) " << QString::number(_ent.length()) << endl;
}
QStringList qs;
qs.clear();
//qDebug() << "DXCCStatusWidget::setBands - 1 " << endl;
//qDebug() << "DXCCStatusWidget::setBands - 1 " << endl;
qs << dataProxy->sortBandNamesBottonUp(_ent);
//qDebug() << "DXCCStatusWidget::setBands - 2 " << endl;
//qDebug() << "DXCCStatusWidget::setBands - 2 " << endl;
if (qs.length()<0)
{
//qDebug() << "DXCCStatusWidget::setBands no bands received here " << endl;
//qDebug() << "DXCCStatusWidget::setBands no bands received here " << endl;
return;
}
@ -254,7 +262,7 @@ void DXCCStatusWidget::setBands(QStringList const _ent, const bool _creating)
//bands.clear();
for (int i = 0; i<qs.length(); i++)
{
//qDebug() << "DXCCStatusWidget::setBands-1: " << qs.at(i) << endl;
//qDebug() << "DXCCStatusWidget::setBands-1: " << qs.at(i) << endl;
testBand = qs.at(i);
if (validBands.contains(qs.at(i)))
@ -267,7 +275,7 @@ void DXCCStatusWidget::setBands(QStringList const _ent, const bool _creating)
//qDebug() << "DXCCStatusWidget::setBands: Not valid band: " << testBand << endl;
}
}
//qDebug() << "DXCCStatusWidget::setBands - 5 " << endl;
//qDebug() << "DXCCStatusWidget::setBands - 5 " << endl;
numberOfColumns = 2 + bandNames.length();
dxccView->setColumnCount(numberOfColumns);
@ -278,14 +286,15 @@ void DXCCStatusWidget::setBands(QStringList const _ent, const bool _creating)
headerqs << tr("ID") << tr("Entity") << bandNames;
dxccView->setHorizontalHeaderLabels(headerqs);
//qDebug() << "DXCCStatusWidget::setBands: PRE-END" << endl;
//qDebug() << "DXCCStatusWidget::setBands: PRE-END" << endl;
if (!_creating)
{
//qDebug() << "DXCCStatusWidget::setBands: !_creating" << endl;
update();
}
//qDebug() << "DXCCStatusWidget::setBands: END" << endl;
//qDebug() << "DXCCStatusWidget::setBands: END" << endl;
}

View File

@ -3,7 +3,6 @@
#include <QUrl>
#include <QNetworkRequest>
#include <QFile>
#include <QMessageBox>
//#include <QDebug>
@ -69,18 +68,11 @@ eLogClubLog::~eLogClubLog()
{
//qDebug() << "eLogClubLog::slotQsoUploadFinished - Result = Password Error! = " << QString::number(result) << endl;
text = "ClubLog: " + tr("It seems to be a PASSWORD ERROR; check your password.");
QString _title = QString(tr("KLog - ClubLog"));
QString _mText = QString( tr("It seems that your ClubLog password is not correct.") + "\n" +
tr("Please check your password in the setup. ClubLog uploads will be disabled."));
int ret = QMessageBox::warning(0, _title, _mText, QMessageBox::Ok);
/*
int ret = QMessageBox::warning(this, tr("KLog - ClubLog"),
int ret = QMessageBox::warning(0, tr("KLog - ClubLog"),
tr("It seems that your ClubLog password is not correct.") + "\n" +
tr("Please check your password in the setup. ClubLog uploads will be disabled."),
QMessageBox::Ok);
*/
emit disableClubLogAction(true);
//TODO: Mark the previous QSO as not sent to clublog

View File

@ -26,7 +26,6 @@
* *
*****************************************************************************/
#include <QObject>
#include <QtWidgets>
#include <QFile>
#include <QString>
#include <QMessageBox>

2
klog.1
View File

@ -1,4 +1,4 @@
.TH KLog 1 "version 0.9.4" "Jaime Robles, EA4TV" "Hamradio"
.TH KLog 1 "version 0.9.3" "Jaime Robles, EA4TV" "Hamradio"
.SH "NAME"
klog \- The Ham Radio Logging program

View File

@ -31,7 +31,7 @@
int main(int argc, char *argv[])
{
QString version = "0.9.4.1" ;
QString version = "0.9.5" ;
QDir d1 = QDir();
Utilities util = Utilities();
QStringList arguments;

View File

@ -180,6 +180,8 @@ MainWindow::MainWindow(const QString _klogDir, const QString tversion)
confirmedColor.setNamedColor("red");
newOneColor.setNamedColor("green");
statsWidget = new StatisticsWidget(dataProxy);
//statsWidget->show();
//Default band/modes
bands << "10M" << "15M" << "20M" << "40M" << "80M" << "160M";
modes << "SSB" << "CW" << "RTTY";
@ -2380,19 +2382,19 @@ void MainWindow::createUICQWW()
modeComboBox->addItems(modes);
qrzLineEdit->setToolTip(tr("QRZ of the QSO."));
rstTXLineEdit->setToolTip(tr("TX RST"));
rstRXLineEdit->setToolTip(tr("RX RST"));
STXLineEdit->setToolTip(tr("TX Exchange"));
rstTXLineEdit->setToolTip(tr("TX RST."));
rstRXLineEdit->setToolTip(tr("RX RST."));
STXLineEdit->setToolTip(tr("TX Exchange."));
SRXLineEdit->setToolTip(tr("RX Exchange"));
bandComboBox->setToolTip(tr("Band of the QSO"));
modeComboBox->setToolTip(tr("Mode of the QSO"));
dateEdit->setToolTip(tr("Date of the QSO"));
timeEdit->setToolTip(tr("Time of the QSO"));
bandComboBox->setToolTip(tr("Band of the QSO."));
modeComboBox->setToolTip(tr("Mode of the QSO."));
dateEdit->setToolTip(tr("Date of the QSO."));
timeEdit->setToolTip(tr("Time of the QSO."));
//statusBar->setToolTip(tr("Misc information"));
//qsoStatusBar->setToolTip(tr("QSO information"));
OKButton->setToolTip(tr("Add the QSO to the log"));
OKButton->setToolTip(tr("Add the QSO to the log."));
//spotItButton->setToolTip(tr("Spots this QSO to the DX Cluster"));
clearButton->setToolTip(tr("Clear the box"));
clearButton->setToolTip(tr("Clear the box."));
gridGroupBox = new QGroupBox(tr("Input"));
QGridLayout *layout = new QGridLayout;
@ -2591,7 +2593,7 @@ void MainWindow::createActionsCommon(){
// UDPLogServer - WSJT-x
connect(UDPLogServer, SIGNAL(status_update(int, QString, double, QString, QString, QString, QString, QString, QString)), this, SLOT(slotWSJXstatusFromUDPServer(int, QString, double, QString, QString, QString, QString, QString, QString) ) );
connect(UDPLogServer, SIGNAL( logged_qso(int,QString,double,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString)), this, SLOT(slotWSJTXloggedQSO(int,QString,double,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString) ) );
connect(UDPLogServer, SIGNAL( logged_qso(int,QString,double,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString)), this, SLOT(slotWSJTXloggedQSO(int,QString,double,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString,QString) ) );
}
@ -3291,22 +3293,13 @@ void MainWindow::slotRefreshDXCCWidget()
}
void MainWindow::slotUpdateTime()
{
// //qDebug() << "MainWindow::slotUpdateTime: " << (dateTime->currentDateTime()).toString("yyyy-MM-dd - hh:mm:ss") << endl;
// ((dateTime->currentDateTimeUtc()).date()).toString()
//(dateTime->currentDateTime()).date()
dateTime->currentDateTime();
if ( (!modify) && (realTime) )
{
//dateTime->currentDateTime();
if (UTCTime)
{
timeEdit->setTime((dateTime->currentDateTime().toUTC()).time());
@ -3534,6 +3527,12 @@ void MainWindow::createMenusCommon()
toolMenu->addSeparator();
showStatsAct = new QAction (tr("Show stats"), this);
toolMenu->addAction(showStatsAct);
connect(showStatsAct, SIGNAL(triggered()), this, SLOT(slotShowStats()));
showStatsAct->setToolTip(tr("Show the statistics of your radio activity."));
toolMenu->addSeparator();
setupMenu = menuBar()->addMenu(tr("&Setup"));
@ -4768,11 +4767,10 @@ void MainWindow::selectDefaultMode()
{
//qDebug() << "MainWindow::selectDefaultMode" << endl;
QString aux;
aux = QString();
int aux = -1;
defaultMode = dataProxy->getMostUsedMode(currentLog);
//qDebug() << "MainWindow::selectDefaultMode: " << QString::number(defaultMode) << endl;
//qDebug() << "MainWindow::selectDefaultMode: " << QString::number(defaultMode) << endl;
if (defaultMode < 1)
{
@ -4783,7 +4781,7 @@ void MainWindow::selectDefaultMode()
}
aux = dataProxy->getModeFromId(defaultMode);
modeComboBox->setCurrentIndex(modeComboBox->findText(aux));
modeComboBox->setCurrentIndex(modeComboBox->findText(dataProxy->getNameFromModeId(aux)));
//qDebug() << "MainWindow::selectDefaultMode3: " << QString::number(defaultMode) << endl;
//qDebug() << "MainWindow::selectDefaultMode3S: " << modeComboBox->itemText(0) << endl;
@ -5556,8 +5554,6 @@ void MainWindow::initialContestModeConfiguration()
//bandComboBox->setCurrentIndex(bandComboBox->findText(dataProxy->getNameFromBandId(defaultBand), Qt::MatchCaseSensitive));
//qDebug() << "MainWindow::initialContestModeConfiguration-1: " << QString::number(defaultBand) << endl;
//qDebug() << "MainWindow::initialContestModeConfiguration-1: " << aux << endl;
//qDebug() << "MainWindow::initialContestModeConfiguration-1: " << QString::number(bandComboBox->findText(aux, Qt::MatchCaseSensitive)) << endl;
//qDebug() << "MainWindow::initialContestModeConfiguration-1-index: " << bandComboBox->currentText() << endl;
}
else if (contestMode == "CQ-WW-SSB")
@ -6420,6 +6416,11 @@ void MainWindow::slotUpdateCTYDAT()
downloadcty->download();
}
void MainWindow::slotShowStats()
{
statsWidget->show();
}
void MainWindow::slotWorldReload()
{
//qDebug() << "MainWindow::slotWorldReload" << endl;
@ -6662,7 +6663,6 @@ double MainWindow::checkFreqRanges(double _f)
{
return 0;
}
return 0;
}
//void MainWindow::clusterSpotToLog(const QStringList _qs)
@ -7106,7 +7106,7 @@ void MainWindow::slotShowQSOsFromDXCCWidget(QList<int> _qsos)
void MainWindow::slotWSJTXloggedQSO(const int _type, const QString _dxcall, const double _freq, const QString _mode,
const QString _dx_grid, const QString _time_off, const QString _report_sent, const QString _report_rec,
const QString _tx_power, const QString _comments, const QString _name, const QString _time_on, const QString _de_call, const QString _opCall, const QString _de_grid)
const QString _tx_power, const QString _comments, const QString _name, const QString _time_on, const QString _de_call, const QString _de_grid)
{
//qDebug() << "MainWindow::slotWSJTX-loggedQSO type: " << QString::number(_type) << endl;
@ -7119,8 +7119,6 @@ void MainWindow::slotWSJTXloggedQSO(const int _type, const QString _dxcall, cons
//qDebug() << "MainWindow::slotWSJTX-loggedQSO mode: " << _mode << endl;
//qDebug() << "MainWindow::slotWSJTX-loggedQSO dx_grid: " << _dx_grid << endl;
//qDebug() << "MainWindow::slotWSJTX-loggedQSO dx_grid: " << _de_grid << endl;
//qDebug() << "MainWindow::slotWSJTX-loggedQSO opCall: " << _opCall << endl;
//qDebug() << "MainWindow::slotWSJTX-loggedQSO time_on: " << _time_on << endl;
//qDebug() << "MainWindow::slotWSJTX-loggedQSO time_off: " << _time_off << endl;
@ -7130,26 +7128,8 @@ void MainWindow::slotWSJTXloggedQSO(const int _type, const QString _dxcall, cons
//qDebug() << "MainWindow::slotWSJTX-loggedQSO comments: " << _comments << endl;
//qDebug() << "MainWindow::slotWSJTX-loggedQSO name: " << _name << endl;
QString _oper = QString();
QString _myLoc = QString();
if (_type == 5)
{
_oper = _opCall;
_myLoc = _de_grid;
if (!(util->isValidCall(_oper)))
{
_oper = operatorQRZ;
}
if (!(locator->isValidLocator(_myLoc)))
{
_myLoc = myLocator;
}
if (wsjtxAutoLog)
{ // Log automatically, without confirmation
logTheQso = true;
@ -7196,10 +7176,10 @@ void MainWindow::slotWSJTXloggedQSO(const int _type, const QString _dxcall, cons
"<b>" + tr("TX Pwr") + ": " + "</b>" + _tx_power +
"</LI>" +
"<LI>" +
"<b>" + tr("Operator") + ": " + "</b>" + _oper.toUpper() +
"<b>" + tr("Operator") + ": " + "</b>" + _de_call.toUpper() +
"</LI>" +
"<LI>" +
"<b>" + tr("Local-Grid") + ": " + "</b>" + _myLoc +
"<b>" + tr("Local-Grid") + ": " + "</b>" + _de_grid +
"</LI>" +
"</UL>" ;
@ -7228,6 +7208,17 @@ void MainWindow::slotWSJTXloggedQSO(const int _type, const QString _dxcall, cons
int dxcc = world->getQRZARRLId(_dxcall);
dxcc = util->getNormalizedDXCCValue(dxcc);
QString _oper = _de_call;
if (!(util->isValidCall(_oper)))
{
_oper = operatorQRZ;
}
QString _myLoc = _de_grid;
if (!(locator->isValidLocator(_myLoc)))
{
_myLoc = myLocator;
}
qsoLogged = dataProxy->addQSOFromWSJTX(_dxcall.toUpper(), _freq, _mode, _dx_grid, _time_off, _report_sent, _report_rec, _tx_power, _comments, _name, _time_on, dxcc, _oper, stationQRZ, _myLoc, currentLog);

View File

@ -64,6 +64,8 @@
#include "infowidget.h"
#include "showerrordialog.h"
#include "udpserver.h"
#include "statisticswidget.h"
@ -216,6 +218,7 @@ private slots:
void slotSetPropMode(const QString _p);
void slotFillEmptyDXCCInTheLog();
void slotUpdateCTYDAT();
void slotShowStats();
void slotWorldReload();
void slotExitFromSlotDialog(const int exitID);
@ -286,11 +289,8 @@ private slots:
void slotWSJTXloggedQSO(const int _type, const QString _dxcall, const double _freq, const QString _mode,
const QString _dx_grid, const QString _time_off, const QString _report_sent,
const QString _report_rec, const QString _tx_power, const QString _comments,
const QString _name, const QString _time_on, const QString _de_call, const QString _opCall, const QString _de_grid);
const QString _dx_grid, const QString _time_off, const QString _report_sent, const QString _report_rec,
const QString _tx_power, const QString _comments, const QString _name, const QString _time_on, const QString _de_call, const QString _de_grid);
private:
bool maybeSave();
@ -386,7 +386,7 @@ private:
QPushButton *addButton;
//QLabel *distShortLabelN;
//QLabel *distLongLabelN;
StatisticsWidget *statsWidget;
DXCCStatusWidget *dxccStatusWidget;
//QSqlRelationalTableModel *logModel;
//QWidget *logPanel;
@ -463,6 +463,7 @@ private:
QAction *lotwMarkSentYesAct;
QAction *downloadCTYAct;
QAction *showStatsAct;
QAction *loggWinAct;
/*

View File

@ -75,12 +75,12 @@ void MainWindowInputOthers::createUI()
entityNameLabel->setAlignment(Qt::AlignVCenter| Qt::AlignRight);
propModeLabel->setAlignment(Qt::AlignVCenter| Qt::AlignRight);
entityPrimDivComboBox->setToolTip(tr("Select the primary division for this QSO"));
entitySecDivComboBox->setToolTip(tr("Select the secondary division for this QSO"));
entityNameComboBox->setToolTip(tr("Select the entity for this QSO"));
propModeComboBox->setToolTip(tr("Select the propagation mode for this QSO"));
iotaContinentComboBox->setToolTip(tr("Select the IOTA continent for this QSO"));
iotaNumberLineEdit->setToolTip(tr("Select the IOTA reference number for this QSO"));
entityPrimDivComboBox->setToolTip(tr("Select the primary division for this QSO."));
entitySecDivComboBox->setToolTip(tr("Select the secondary division for this QSO."));
entityNameComboBox->setToolTip(tr("Select the entity for this QSO."));
propModeComboBox->setToolTip(tr("Select the propagation mode for this QSO."));
iotaContinentComboBox->setToolTip(tr("Select the IOTA continent for this QSO."));
iotaNumberLineEdit->setToolTip(tr("Select the IOTA reference number for this QSO."));
entityPrimDivComboBox->setEnabled(false);
entitySecDivComboBox->setEnabled(false);

View File

@ -63,14 +63,14 @@ void MainWindowMyDataTab::createUI()
QLabel *keepLabel = new QLabel();
keepLabel->setText(tr("Keep this data"));
keepLabel->setAlignment(Qt::AlignVCenter| Qt::AlignRight);
keepLabel->setToolTip(tr("Data entered in this tab will be copied into the next QSO"));
keepLabel->setToolTip(tr("Data entered in this tab will be copied into the next QSO."));
keepThisDataForNextQSORadiobutton->setToolTip(tr("Data entered in this tab will be copied into the next QSO"));
keepThisDataForNextQSORadiobutton->setToolTip(tr("Data entered in this tab will be copied into the next QSO."));
myPowerSpinBox->setToolTip(tr("Power used for the QSO in watts"));
operatorLineEdit->setToolTip(tr("Logging operator's callsign"));
stationCallSignLineEdit->setToolTip(tr("Callsign used over the air"));
myLocatorLineEdit->setToolTip(tr("My QTH locator"));
myPowerSpinBox->setToolTip(tr("Power used for the QSO in watts."));
operatorLineEdit->setToolTip(tr("Logging operator's callsign."));
stationCallSignLineEdit->setToolTip(tr("Callsign used over the air."));
myLocatorLineEdit->setToolTip(tr("My QTH locator."));
QLabel *myPowerSpinBoxLabelN = new QLabel(tr("Power"));
myPowerSpinBoxLabelN->setAlignment(Qt::AlignVCenter| Qt::AlignRight);

View File

@ -77,19 +77,19 @@ void MainWindowSatTab::createUI()
QLabel *keepLabel = new QLabel();
keepLabel->setText(tr("Keep this data"));
keepLabel->setAlignment(Qt::AlignVCenter| Qt::AlignRight);
keepLabel->setToolTip(tr("Data entered in this tab will be copied into the next QSO"));
keepLabel->setToolTip(tr("Data entered in this tab will be copied into the next QSO."));
keepThisDataForNextQSORadiobutton->setToolTip(tr("Data entered in this tab will be copied into the next QSO"));
keepThisDataForNextQSORadiobutton->setToolTip(tr("Data entered in this tab will be copied into the next QSO."));
QString othersat = tr("Other - Sat not in the list");
QString aux;
aux.clear();
aux = QString(tr("Name of the Satellite if not in the list. Select: \"")) + othersat + QString(tr("\" to enable this box. (format like AO-51)"));
aux = QString(tr("Name of the Satellite if not in the list. Select: \"")) + othersat + QString(tr("\" to enable this box. (format like AO-51)."));
satNameLineEdit->setToolTip(aux);
//satNameLineEdit->setToolTip(tr("Name of the Satellite if not in the list. Select Other Sat (format like AO-51)"));
satModeLineEdit->setToolTip(tr("Satellite mode used"));
satNameComboBox->setToolTip(tr("Select the satellite you are using"));
satBandTXComboBox->setToolTip(tr("UpLink band"));
satBandRXComboBox->setToolTip(tr("DownLink band"));
satModeLineEdit->setToolTip(tr("Satellite mode used."));
satNameComboBox->setToolTip(tr("Select the satellite you are using."));
satBandTXComboBox->setToolTip(tr("UpLink band."));
satBandRXComboBox->setToolTip(tr("DownLink band."));
satDXLocatorLineEdit->setToolTip(tr("Locator of the DX station. This box is syncronized with the Locator box in the QSO tab."));
QLabel *upLinkLabel = new QLabel();

View File

@ -68,15 +68,15 @@ SetupEntityDialog::SetupEntityDialog(){
QLabel *entityLabel = new QLabel(tr("Entity"));
entityLineEdit = new QLineEdit;
entityLineEdit->setToolTip(tr("Name of the Entity"));
entityLineEdit->setToolTip(tr("Name of the Entity."));
QLabel *cqLabel = new QLabel(tr("CQ"));
cqLineEdit = new QLineEdit;
cqLineEdit->setToolTip(tr("CQ zone"));
cqLineEdit->setToolTip(tr("CQ zone."));
QLabel *ituLabel = new QLabel(tr("ITU"));
ituLineEdit = new QLineEdit;
ituLineEdit->setToolTip(tr("ITU zone"));
ituLineEdit->setToolTip(tr("ITU zone."));
//QLabel *contLabel = new QLabel(tr("Continent"));
//contLineEdit = new QLineEdit;
@ -84,25 +84,25 @@ SetupEntityDialog::SetupEntityDialog(){
QLabel *latLabel = new QLabel(tr("Latitude"));
latLineEdit = new QLineEdit;
latLineEdit->setToolTip(tr("Longitude of the Entity"));
latLineEdit->setToolTip(tr("Longitude of the Entity."));
QLabel *lonLabel = new QLabel(tr("Longitude"));
lonLineEdit = new QLineEdit;
lonLineEdit->setToolTip(tr("Longitude of the Entity"));
lonLineEdit->setToolTip(tr("Longitude of the Entity."));
QLabel *utcLabel = new QLabel(tr("UTC"));
utcLineEdit = new QLineEdit;
utcLineEdit->setToolTip(tr("Local time difference to UTC"));
utcLineEdit->setToolTip(tr("Local time difference to UTC."));
QLabel *mprefLabel = new QLabel(tr("Main prefix"));
mprefLineEdit = new QLineEdit;
mprefLineEdit->setToolTip(tr("Main prefix of the entity"));
mprefLineEdit->setToolTip(tr("Main prefix of the entity."));
//qDebug() << "SetupEntityDialog::SetupEntityDialog - 1" << endl;
QLabel *arrlidLabel = new QLabel(tr("ARRL ID"));
arrlidLineEdit = new QLineEdit;
arrlidLineEdit->setToolTip(tr("ARRL ID"));
arrlidLineEdit->setToolTip(tr("ARRL ID."));
//QLabel *deletedLabel = new QLabel(tr("Deleted"));
//deletedLineEdit = new QLineEdit;
@ -113,7 +113,7 @@ SetupEntityDialog::SetupEntityDialog(){
prefLineEdit->setToolTip(tr("Comma separated possible prefixes, e.g. EA1, EA2, ..."));
delQDateEdit = new QDateEdit;
delQDateEdit->setToolTip(tr("Date of the deletion"));
delQDateEdit->setToolTip(tr("Date of the deletion."));
delRbutton = new QRadioButton(tr("Deleted"), this);

View File

@ -60,9 +60,9 @@ SetupPageClubLog::SetupPageClubLog(QWidget *parent) : QWidget(parent)
sendInRealTimeCheckBox = new QCheckBox(tr("&Send QSOs in real time"), this);
clubLogActiveCheckBox = new QCheckBox(tr("&Activate ClubLog"), this);
useQSOStationCallCheckBox = new QCheckBox(tr("Use QSO Station &Callsign"), this);
sendInRealTimeCheckBox->setToolTip(tr("Send each QSO to ClubLog in real time, as they are added (or modified) in KLog"));
clubLogActiveCheckBox->setToolTip(tr("Starts the ClubLog support in KLog"));
useQSOStationCallCheckBox->setToolTip(tr("Use the Station Callsign defined in each QSO instead of the one defined here"));
sendInRealTimeCheckBox->setToolTip(tr("Send each QSO to ClubLog in real time, as they are added (or modified) in KLog."));
clubLogActiveCheckBox->setToolTip(tr("Starts the ClubLog support in KLog."));
useQSOStationCallCheckBox->setToolTip(tr("Use the Station Callsign defined in each QSO instead of the one defined here."));
QHBoxLayout *callSLayout = new QHBoxLayout;
callSLayout->addWidget(callLineEdit);

View File

@ -72,14 +72,14 @@ SetupPageLogs::SetupPageLogs(DataProxy *dp, QWidget *parent) : QWidget(parent){
removePushButton = new QPushButton(tr("&Remove"), this);
newLogPushButton->setToolTip(tr("Add a new log"));
newLogPushButton->setToolTip(tr("Add a new log."));
//loadAllPushButton->setToolTip(tr("Load all the logs"));
//loadSelectedPushButton->setToolTip(tr("Load only the selected log"));
//clearPushButton->setToolTip(tr("Clear selection"));
editPushButton->setToolTip(tr("Edit the selected log"));
removePushButton->setToolTip(tr("Remove the selected log"));
editPushButton->setToolTip(tr("Edit the selected log."));
removePushButton->setToolTip(tr("Remove the selected log."));
currentLogs->setToolTip(tr("Select the log you want to open"));
currentLogs->setToolTip(tr("Select the log you want to open."));
QHBoxLayout *buttonsLayout = new QHBoxLayout;
buttonsLayout->addWidget(newLogPushButton);

View File

@ -156,11 +156,11 @@ void SetupPageLogsNew::createWidget()
validCats->setWordWrap(true);
stationCallsignLineEdit->setToolTip(tr("Callsign used for this log"));
operatorsLineEdit->setToolTip(tr("Comma separated list of operators: callsign1, callsign2"));
stationCallsignLineEdit->setToolTip(tr("Callsign used for this log."));
operatorsLineEdit->setToolTip(tr("Comma separated list of operators: callsign1, callsign2."));
dateEdit->setToolTip(tr("Start date of this log"));
commentLineEdit->setToolTip(tr("Add a comment about this log"));
dateEdit->setToolTip(tr("Start date of this log."));
commentLineEdit->setToolTip(tr("Add a comment about this log."));
typeLabel->setText(tr("&Type of Operation"));
typeLabel->setWordWrap(true);
@ -169,7 +169,7 @@ void SetupPageLogsNew::createWidget()
dateLabel->setWordWrap(true);
typeComboBox->setToolTip(tr("Select the kind of operation for this log"));
typeComboBox->setToolTip(tr("Select the kind of operation for this log."));
QStringList _qs;
_qs.clear();
_qs.append(dataProxy->getContestNames());
@ -178,7 +178,7 @@ void SetupPageLogsNew::createWidget()
catModeLabel->setText(tr("&Mode Category"));
catModeLabel->setWordWrap(true);
contestCatModeComboBox->setToolTip(tr("Select the mode category"));
contestCatModeComboBox->setToolTip(tr("Select the mode category."));
_qs.clear();
_qs.append(dataProxy->getContestCat(6));
contestCatModeComboBox->addItems(_qs);
@ -186,14 +186,14 @@ void SetupPageLogsNew::createWidget()
//QLabel *catOpLabel = new QLabel(tr("Operators Category"));
catOpLabel->setText(tr("O&perators Category"));
catOpLabel->setWordWrap(true);
contestCatOperatorsComboBox->setToolTip(tr("Select the operators category"));
contestCatOperatorsComboBox->setToolTip(tr("Select the operators category."));
_qs.clear();
_qs.append(dataProxy->getContestCat(1));
contestCatOperatorsComboBox->addItems(_qs);
catAsLabel->setText(tr("&Assisted Category"));
catOpLabel->setWordWrap(true);
contestCatAssistedComboBox->setToolTip(tr("Select the assisted category"));
contestCatAssistedComboBox->setToolTip(tr("Select the assisted category."));
_qs.clear();
_qs.append(dataProxy->getContestCat(2));
contestCatAssistedComboBox->addItems(_qs);
@ -201,7 +201,7 @@ void SetupPageLogsNew::createWidget()
//QLabel *catPowerLabel = new QLabel(tr("Power Category"));
catPowerLabel->setText(tr("Po&wer Category"));
catPowerLabel->setWordWrap(true);
contestCatPowerComboBox->setToolTip(tr("Select the power category"));
contestCatPowerComboBox->setToolTip(tr("Select the power category."));
_qs.clear();
_qs.append(dataProxy->getContestCat(3));
contestCatPowerComboBox->addItems(_qs);
@ -209,14 +209,14 @@ void SetupPageLogsNew::createWidget()
//QLabel *catBandsLabel = new QLabel(tr("Bands Category"));
catBandsLabel->setText(tr("&Bands Category"));
catBandsLabel->setWordWrap(true);
contestCatBandsComboBox->setToolTip(tr("Select the bands category"));
contestCatBandsComboBox->setToolTip(tr("Select the bands category."));
_qs.clear();
_qs.append(dataProxy->getContestCat(4));
contestCatBandsComboBox->addItems(_qs);
overlayLabel->setText(tr("O&verlay"));
overlayLabel->setWordWrap(true);
contestCatOverlayComboBox->setToolTip(tr("Select the Overlay category"));
contestCatOverlayComboBox->setToolTip(tr("Select the Overlay category."));
_qs.clear();
_qs.append(dataProxy->getContestOverlays());
contestCatOverlayComboBox->addItems(_qs);

View File

@ -117,7 +117,7 @@ void SetupPageMisc::createUI()
keepMyDataCheckBox->setToolTip(tr("All the data from the My Data tab will be used or data from the previous QSO will be maintained."));
checkNewVersionCheckBox->setToolTip(tr("Check if there is a new release of KLog available every time you start KLog."));
provideCallCheckBox->setToolTip(tr("If new version checking is selected, KLog will send the developer your callsign, KLog version & Operating system to help in improving KLog."));
imperialCheckBox ->setToolTip(tr("Check it for Imperial system (Miles instead of Kilometres)."));
imperialCheckBox ->setToolTip(tr("Check it for Imperial system (Miles instead of Kilometers)."));
realTimeCheckbox->setToolTip(tr("Select to use real time."));
UTCCheckbox->setToolTip(tr("Select to use UTC time."));
alwaysADIFCheckBox->setToolTip(tr("Select if you want to save to ADIF on exit."));

View File

@ -67,15 +67,15 @@ SetupPageUserDataPage::SetupPageUserDataPage(DataProxy *dp, QWidget *parent) : Q
provinceLineEdit = new QLineEdit;
countryLineEdit = new QLineEdit;
nameLineEdit->setToolTip(tr("Enter your name"));
address1LineEdit->setToolTip(tr("Enter your address - 1st line"));
address2LineEdit->setToolTip(tr("Enter your address - 2nd line"));
address3LineEdit->setToolTip(tr("Enter your address - 3rd line"));
address4LineEdit->setToolTip(tr("Enter your address - 4th line"));
cityLineEdit->setToolTip(tr("Enter your city"));
zipLineEdit->setToolTip(tr("Enter your zip code"));
provinceLineEdit->setToolTip(tr("Enter your province or state"));
countryLineEdit->setToolTip(tr("Enter your country"));
nameLineEdit->setToolTip(tr("Enter your name."));
address1LineEdit->setToolTip(tr("Enter your address - 1st line."));
address2LineEdit->setToolTip(tr("Enter your address - 2nd line."));
address3LineEdit->setToolTip(tr("Enter your address - 3rd line."));
address4LineEdit->setToolTip(tr("Enter your address - 4th line."));
cityLineEdit->setToolTip(tr("Enter your city."));
zipLineEdit->setToolTip(tr("Enter your zip code."));
provinceLineEdit->setToolTip(tr("Enter your province or state."));
countryLineEdit->setToolTip(tr("Enter your country."));
QLabel *nameLabel = new QLabel(tr("&Name"));
QLabel *addressLabel = new QLabel(tr("&Address"));
@ -136,13 +136,13 @@ SetupPageUserDataPage::SetupPageUserDataPage(DataProxy *dp, QWidget *parent) : Q
myPowerSpinBox->setDecimals(2);
myPowerSpinBox->setMaximum(9999);
rig1LineEdit->setToolTip(tr("Enter your information for rig") + " #1");
rig2LineEdit->setToolTip(tr("Enter your information for rig") + " #2");
rig3LineEdit->setToolTip(tr("Enter your information for rig") + " #3");
ant1LineEdit->setToolTip(tr("Enter your information for antenna") + " #1");
ant2LineEdit->setToolTip(tr("Enter your information for antenna") + " #2");
ant3LineEdit->setToolTip(tr("Enter your information for antenna") + " #3");
myPowerSpinBox->setToolTip(tr("Enter your power information"));
rig1LineEdit->setToolTip(tr("Enter your information for rig") + " #1.");
rig2LineEdit->setToolTip(tr("Enter your information for rig") + " #2.");
rig3LineEdit->setToolTip(tr("Enter your information for rig") + " #3.");
ant1LineEdit->setToolTip(tr("Enter your information for antenna") + " #1.");
ant2LineEdit->setToolTip(tr("Enter your information for antenna") + " #2.");
ant3LineEdit->setToolTip(tr("Enter your information for antenna") + " #3.");
myPowerSpinBox->setToolTip(tr("Enter your power information."));
QLabel *rig1Label = new QLabel(tr("&Rig 1"));
QLabel *rig2Label = new QLabel(tr("R&ig 2"));
@ -183,7 +183,7 @@ SetupPageUserDataPage::SetupPageUserDataPage(DataProxy *dp, QWidget *parent) : Q
stationTab->setLayout(stationLayout);
//TODO:Defining ALL the tooltips
qrzLineEdit->setToolTip(tr("Enter the station callsign that will be used for logging"));
qrzLineEdit->setToolTip(tr("Enter the station callsign that will be used for logging."));
operatorsLineEdit->setToolTip(tr("Enter the operators (comma separated if more than one)."));
myLocatorLineEdit->setToolTip(tr("Enter the locator of your station. Alternatively, KLog can use an approximate locator based on your callsign."));

View File

@ -58,10 +58,10 @@ void SoftwareUpdate::slotReadyRead()
//qDebug() << "SoftwareUpdate::slotReadyRead: " << endl;
}
//void SoftwareUpdate::slotError(int _p)
//{
void SoftwareUpdate::slotError(int _p)
{
//qDebug() << "SoftwareUpdate::slotError: " << endl;
//}
}
void SoftwareUpdate::slotDownloadFinished(QNetworkReply *reply)
{

View File

@ -55,7 +55,7 @@ public:
private slots:
void slotReadyRead();
//void slotError(int _p);
void slotError(int _p);
//void slotSslErrors(QList _p);
//void replyFinished(QNetworkReply *data);

View File

@ -61,7 +61,6 @@ void UDPServer::parse(const QByteArray &msg)
QDateTime time_off;
QByteArray dx_call;
QByteArray dx_grid;
QByteArray op_call;
quint64 frequency = 0; // In Hz??
double frequencyDouble;
@ -165,19 +164,12 @@ void UDPServer::parse(const QByteArray &msg)
//qDebug() << "UDPServer::parse: - type = " << QString::number(type) << " - OUT - QSO logged" << endl;
if (logging)
{
in >> time_off >> dx_call >> dx_grid >> frequency >> mode >> report_sent >> report_received
>> tx_power >> comments >> name >> time_on >> op_call >> de_call >> de_grid;
//qDebug() << "UDPServer::parse: - type = " << QString::number(type) << " - DE_GRID: " << de_grid << endl;
in >> time_off >> dx_call >> dx_grid >> frequency >> mode >> report_sent >> report_received >> tx_power >> comments >> name >> time_on >> de_call >> de_grid;
frequencyDouble = (double)frequency;
frequencyDouble = frequencyDouble/1000000; // Change to MHz
emit logged_qso (type, dx_call, frequencyDouble, mode, dx_grid,
time_off.toString("yyyyMMddHHmmss"), report_sent, report_received, tx_power, comments,
name, time_on.toString("yyyyMMddHHmmss"), de_call, op_call, de_grid);
name, time_on.toString("yyyyMMddHHmmss"), de_call, de_grid);
}
else

View File

@ -38,8 +38,9 @@ signals:
void logged_qso (const int _type, const QString _dxcall, const double _freq, const QString _mode,
const QString _dx_grid, const QString _time_off, const QString _report_sent, const QString _report_rec,
const QString _tx_power, const QString _comments, const QString _name, const QString _time_on,
const QString _de_call, const QString _de_opCall, const QString _de_grid);
const QString _tx_power, const QString _comments, const QString _name, const QString _time_on, const QString _de_call, const QString _de_grid);
private slots:
void slotReadPendingDatagrams();

View File

@ -485,7 +485,7 @@ QString World::getEntityName(const int _entityN)
int prefixIDNumber = _entityN;
if (prefixIDNumber<=0)
{
return "";
return QString();
}
return dataProxy->getEntityNameFromId(prefixIDNumber);
/*