From ef6249e5d39c4462b2fbdfbe536ebbae4c648f3d Mon Sep 17 00:00:00 2001 From: d Date: Sat, 27 Jul 2024 21:22:20 +0200 Subject: [PATCH] prefixes for subdivisions --- src/dataproxy_sqlite.cpp | 30 ++++++++---- src/dataproxy_sqlite.h | 3 +- src/inputwidgets/mainwindowinputothers.cpp | 57 +++++++++++++++++----- src/inputwidgets/mainwindowinputothers.h | 7 ++- src/mainwindow.cpp | 5 +- 5 files changed, 76 insertions(+), 26 deletions(-) diff --git a/src/dataproxy_sqlite.cpp b/src/dataproxy_sqlite.cpp index a58975bd..43e2c3fb 100644 --- a/src/dataproxy_sqlite.cpp +++ b/src/dataproxy_sqlite.cpp @@ -5600,20 +5600,31 @@ bool DataProxy_SQLite::addDXCCEntitySubdivision(const QString &_name, const QStr } -QList DataProxy_SQLite::getPrimarySubDivisions(const int _entity) +QList DataProxy_SQLite::getPrimarySubDivisions(const int _entity, const QString &_pref) { // Returns the Primary Subdivision for an Entity - qDebug() << Q_FUNC_INFO << " - Start: " << QString::number(_entity) ; + // If _pref is empty, and entity >=0 we look for all the subdivisions of the Entity, + // If _pref is not empty, we look for the subdivisions with that entity, if none, we look for the number. + qDebug() << Q_FUNC_INFO << " - Start: " << QString::number(_entity) << "/" << _pref; QList list; list.clear(); - if (_entity<=0) - return list; - - - QString queryString = QString("SELECT name, shortname, cqz, ituz FROM primary_subdivisions WHERE dxcc = :dxcc"); QSqlQuery query; - query.prepare(queryString); - query.bindValue(":dxcc", _entity); + QString queryString; + if (!_pref.isEmpty()) + { + queryString = QString("SELECT name, shortname, cqz, ituz FROM primary_subdivisions WHERE prefix = :prefix"); + query.prepare(queryString); + query.bindValue(":prefix", _pref); + } + else + { + if (_entity<=0) + return list; + queryString = QString("SELECT name, shortname, cqz, ituz FROM primary_subdivisions WHERE dxcc = :dxcc"); + query.prepare(queryString); + query.bindValue(":dxcc", _entity); + } + bool sqlOK = query.exec(); if (sqlOK) @@ -5643,6 +5654,7 @@ QList DataProxy_SQLite::getPrimarySubDivisions(const int _en return list; } + int DataProxy_SQLite::getNumberOfManagedLogs() { //qDebug() << "DataProxy_SQLite::getNumberOfManagedLogs"; diff --git a/src/dataproxy_sqlite.h b/src/dataproxy_sqlite.h index 9d7c3f9d..ae68f958 100644 --- a/src/dataproxy_sqlite.h +++ b/src/dataproxy_sqlite.h @@ -309,7 +309,8 @@ class DataProxy_SQLite : public QObject //bool addRegionalAward(RegionalAward _regionalAward); bool addDXCCEntitySubdivision(const QString &_name, const QString &_short, const QString &_pref, const QString &_group, const int _regId, const int _dxcc, const int _cq, const int _itu, const QDate &_startDate, const QDate &_endDate, const bool _deleted); - QList getPrimarySubDivisions(const int _entity); // Get the Primary subdivisions for an entity + QList getPrimarySubDivisions(const int _entity, const QString &_pref); // Get the Primary subdivisions for an entity + //void getFoundInLog(const QString &_txt, const int _log=-1); KLOG_DEPRECATED QString getADIFQSO(const int _qsoId, ExportMode _em = ModeADIF); QString getADIFValueFromRec(QSqlRecord _rec, const QString &_fieldName); // To refactor the getADIFFromQSOQuery function diff --git a/src/inputwidgets/mainwindowinputothers.cpp b/src/inputwidgets/mainwindowinputothers.cpp index 4357f8ec..f8524a5d 100644 --- a/src/inputwidgets/mainwindowinputothers.cpp +++ b/src/inputwidgets/mainwindowinputothers.cpp @@ -235,7 +235,7 @@ void MainWindowInputOthers::setEntity(const int _ent) //qDebug() << "MainWindow::selectCorrectEntity: " << pref << "/" << QString::number(indexC); entityNameComboBox->setCurrentIndex(indexC); setIOTAContinentFromEntity(_ent); - updatePrimarySubDivisions(_ent); + updatePrimarySubDivisions(_ent, QString()); logEvent (Q_FUNC_INFO, "END", Debug); } @@ -691,31 +691,62 @@ bool MainWindowInputOthers::setInitialADIFValues() return true; } -void MainWindowInputOthers::updatePrimarySubDivisions(const int _n) +void MainWindowInputOthers::updatePrimarySubdivisionsComboBox(QList _subdivisions) { - qDebug() << Q_FUNC_INFO << " - Start"; - if (_n<1) - return; - QList subdivisions; - subdivisions.clear(); - subdivisions.append(dataProxy->getPrimarySubDivisions(_n)); - - qDebug() << Q_FUNC_INFO << " - count: " << QString::number(subdivisions.count()); - if (subdivisions.count()<1) + //qDebug() << Q_FUNC_INFO << " - count: " << QString::number(_subdivisions.count()); + if (_subdivisions.count()<1) return; QStringList listOfSubdivisions; listOfSubdivisions.clear(); - foreach (PrimarySubdivision ps, subdivisions) + foreach (PrimarySubdivision ps, _subdivisions) { QString subdivision = ps.shortName + "-" + ps.name; listOfSubdivisions.append(subdivision); - qDebug() << Q_FUNC_INFO << ": Subdivision added: " << subdivision; + //qDebug() << Q_FUNC_INFO << ": Subdivision added: " << subdivision; } if (listOfSubdivisions.count()<1) return; entityPrimDivComboBox->clear(); entityPrimDivComboBox->addItems(listOfSubdivisions); + //qDebug() << Q_FUNC_INFO << " - END"; +} + +/* + void MainWindowInputOthers::updatePrimarySubDivisions(const int _n) +{ + qDebug() << Q_FUNC_INFO << " - Start"; + if (_n<1) + return; + QList subdivisions; + subdivisions.clear(); + subdivisions.append(dataProxy->getPrimarySubDivisions(_n, QString())); + + qDebug() << Q_FUNC_INFO << " - count: " << QString::number(subdivisions.count()); + if (subdivisions.count()<1) + return; + updatePrimarySubdivisionsComboBox(subdivisions); + qDebug() << Q_FUNC_INFO << " - END"; +} +*/ + +void MainWindowInputOthers::updatePrimarySubDivisions(const int _n, const QString &_pref) +{ + qDebug() << Q_FUNC_INFO << " - Start: " << QString::number(_n) << "/" << _pref; + if (_n<1) + return; + + QList subdivisions; + subdivisions.clear(); + subdivisions.append(dataProxy->getPrimarySubDivisions(_n, _pref)); + if (subdivisions.isEmpty()) + subdivisions.append(dataProxy->getPrimarySubDivisions(_n, QString())); + + + qDebug() << Q_FUNC_INFO << " - count: " << QString::number(subdivisions.count()); + if (subdivisions.count()<1) + return; + updatePrimarySubdivisionsComboBox(subdivisions); qDebug() << Q_FUNC_INFO << " - END"; } diff --git a/src/inputwidgets/mainwindowinputothers.h b/src/inputwidgets/mainwindowinputothers.h index 7afb1afd..2e839d29 100644 --- a/src/inputwidgets/mainwindowinputothers.h +++ b/src/inputwidgets/mainwindowinputothers.h @@ -49,6 +49,10 @@ class MainWindowInputOthers : public QWidget int getEntity(); QString getEntityPrefix(); + void updatePrimarySubDivisions(const int _n, const QString &_pref); // Receives the entity & prefix of the call to check if + // It is possible to focus the primary + // subdivision + void setPropMode(const QString &_qs, bool _keep); QString getPropModeFromComboBox(); bool isSATPropagation(); @@ -103,7 +107,8 @@ private slots: void setColorsForUserDefinedADIFValueLineEdit(); bool checkVUCC_GRIDS(const QString &_string); bool setInitialADIFValues(); - void updatePrimarySubDivisions(const int _n); + + void updatePrimarySubdivisionsComboBox(QList _subdivisions); bool getDarkMode(); void logEvent(const QString &_func, const QString &_msg, DebugLogLevel _level); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b77e2aff..84a6f8e9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2073,7 +2073,7 @@ void MainWindow::slotQRZTextChanged(QString _qrz) cleanQRZCOMreceivedDataFromUI(); //qDebug()<< Q_FUNC_INFO << ": currentQRZ: " <<_qrz ; - //QString pref = util->getPrefixFromCall(_qrz); + QString pref = util->getPrefixFromCall(_qrz); //logEvent(Q_FUNC_INFO, QString("Call/Prefix: %1/%2").arg(_qrz).arg(pref), Devel); //currentEntity = world->getQRZARRLId(pref); //validar por que no puedo tirar o usar el prefijo directamente @@ -2091,7 +2091,8 @@ void MainWindow::slotQRZTextChanged(QString _qrz) */ logEvent(Q_FUNC_INFO, QString("Entity: %1").arg(currentEntity), Devel); - othersTabWidget->setEntity(currentEntity); + othersTabWidget->updatePrimarySubDivisions(currentEntity, util->getPrefixFromCall(_qrz, true)); + //othersTabWidget->setEntity(currentEntity); dxE_CQz = world->getEntityCqz(currentEntity); dx_CQz = world->getQRZCqz(_qrz); dx_ITUz = world->getQRZItuz(_qrz);