mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-03 07:35:48 +08:00
Ref T180, check callsign completer agains shared values
* avoid unnecessary loads via DBus * fixes wrong m_validCallsign values (not updated) * no signal when edited but no value changed
This commit is contained in:
@@ -51,7 +51,7 @@ namespace BlackGui
|
||||
{
|
||||
const QString csString = ui->le_Callsign->text().trimmed().toUpper();
|
||||
if (!this->isValidKnownCallsign(csString)) { return CCallsign(); }
|
||||
return CCallsign(csString);
|
||||
return CCallsign(csString, CCallsign::Aircraft);
|
||||
}
|
||||
|
||||
QString CCallsignCompleter::getRawCallsignString() const
|
||||
@@ -70,8 +70,8 @@ namespace BlackGui
|
||||
if (!sGui || sGui->isShuttingDown()) { return; }
|
||||
if (!sGui->getIContextNetwork()) { return; }
|
||||
if (completer()->wasUpdatedWithinTime(1500)) { return; } // avoid context call via DBus
|
||||
m_validCallsigns = sGui->getIContextNetwork()->getAircraftInRangeCallsigns();
|
||||
const QStringList modelData = m_validCallsigns.getCallsignStrings(true);
|
||||
const CCallsignSet validCallsigns = sGui->getIContextNetwork()->getAircraftInRangeCallsigns();
|
||||
const QStringList modelData = validCallsigns.getCallsignStrings(true);
|
||||
completer()->updateData(modelData, 2000);
|
||||
ui->led_Status->setTriState(500);
|
||||
}
|
||||
@@ -79,6 +79,8 @@ namespace BlackGui
|
||||
void CCallsignCompleter::onEditingFinished()
|
||||
{
|
||||
const CCallsign cs = this->getCallsign();
|
||||
if (cs.asString() == m_lastValue) { return; } // avoid unnecessary signals
|
||||
m_lastValue = cs.asString();
|
||||
emit this->editingFinished();
|
||||
if (cs.isValid())
|
||||
{
|
||||
@@ -106,9 +108,9 @@ namespace BlackGui
|
||||
|
||||
bool CCallsignCompleter::isValidKnownCallsign(const QString &callsignString) const
|
||||
{
|
||||
if (m_validCallsigns.isEmpty()) { return false; }
|
||||
if (!CCallsign::isValidAircraftCallsign(callsignString)) { return false; }
|
||||
return m_validCallsigns.contains(CCallsign(callsignString));
|
||||
if (!completer()) { return false; }
|
||||
return completer()->contains(callsignString);
|
||||
}
|
||||
|
||||
CSharedStringListCompleter *CCallsignCompleter::completer()
|
||||
|
||||
@@ -68,8 +68,8 @@ namespace BlackGui
|
||||
static CSharedStringListCompleter *completer();
|
||||
|
||||
QScopedPointer <Ui::CCallsignCompleter> ui;
|
||||
BlackMisc::Aviation::CCallsignSet m_validCallsigns;
|
||||
BlackMisc::CDigestSignal m_dsAircraftsInRangeChanged { this, &CCallsignCompleter::onChangedAircraftInRange, 5000, 5 };
|
||||
QString m_lastValue;
|
||||
};
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
Reference in New Issue
Block a user