diff --git a/ui/DxWidget.cpp b/ui/DxWidget.cpp index 06b6794f..1c662a94 100644 --- a/ui/DxWidget.cpp +++ b/ui/DxWidget.cpp @@ -1231,8 +1231,37 @@ void DxWidget::setLastQSO(QSqlRecord qsoRecord) FCT_IDENTIFICATION; lastQSO = qsoRecord; + dxTableModel->updateWorkedStation(qsoRecord); } +void DxTableModel::updateWorkedStation(QSqlRecord qsoRecord) +{ + FCT_IDENTIFICATION; + + QString callsign = qsoRecord.value("callsign").toString(); + + for (int row = 0; row < dxData.size(); ++row) + { + DxSpot &spot = dxData[row]; + if (spot.callsign == callsign) + { + spot.status = Data::instance()->dxccStatus( + spot.dxcc.dxcc, + spot.band, + spot.modeGroupString + ); + + QModelIndex topLeft = index(row, 0); + QModelIndex bottomRight = index(row, columnCount() - 1); + emit dataChanged(topLeft, bottomRight); + + break; + } + } +} + + + void DxWidget::reloadSetting() { FCT_IDENTIFICATION; diff --git a/ui/DxWidget.h b/ui/DxWidget.h index afd2dab8..b1c4b075 100644 --- a/ui/DxWidget.h +++ b/ui/DxWidget.h @@ -43,6 +43,7 @@ class DxTableModel : public QAbstractTableModel { qint16 dedup_interval = DEDUPLICATION_TIME, double dedup_freq_tolerance = DEDUPLICATION_FREQ_TOLERANCE); const DxSpot getSpot(const QModelIndex& index) const {return dxData.at(index.row());}; + void updateWorkedStation(QSqlRecord qsoRecord); void clear(); private: