mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 10:25:36 +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();
|
const QString csString = ui->le_Callsign->text().trimmed().toUpper();
|
||||||
if (!this->isValidKnownCallsign(csString)) { return CCallsign(); }
|
if (!this->isValidKnownCallsign(csString)) { return CCallsign(); }
|
||||||
return CCallsign(csString);
|
return CCallsign(csString, CCallsign::Aircraft);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CCallsignCompleter::getRawCallsignString() const
|
QString CCallsignCompleter::getRawCallsignString() const
|
||||||
@@ -70,8 +70,8 @@ namespace BlackGui
|
|||||||
if (!sGui || sGui->isShuttingDown()) { return; }
|
if (!sGui || sGui->isShuttingDown()) { return; }
|
||||||
if (!sGui->getIContextNetwork()) { return; }
|
if (!sGui->getIContextNetwork()) { return; }
|
||||||
if (completer()->wasUpdatedWithinTime(1500)) { return; } // avoid context call via DBus
|
if (completer()->wasUpdatedWithinTime(1500)) { return; } // avoid context call via DBus
|
||||||
m_validCallsigns = sGui->getIContextNetwork()->getAircraftInRangeCallsigns();
|
const CCallsignSet validCallsigns = sGui->getIContextNetwork()->getAircraftInRangeCallsigns();
|
||||||
const QStringList modelData = m_validCallsigns.getCallsignStrings(true);
|
const QStringList modelData = validCallsigns.getCallsignStrings(true);
|
||||||
completer()->updateData(modelData, 2000);
|
completer()->updateData(modelData, 2000);
|
||||||
ui->led_Status->setTriState(500);
|
ui->led_Status->setTriState(500);
|
||||||
}
|
}
|
||||||
@@ -79,6 +79,8 @@ namespace BlackGui
|
|||||||
void CCallsignCompleter::onEditingFinished()
|
void CCallsignCompleter::onEditingFinished()
|
||||||
{
|
{
|
||||||
const CCallsign cs = this->getCallsign();
|
const CCallsign cs = this->getCallsign();
|
||||||
|
if (cs.asString() == m_lastValue) { return; } // avoid unnecessary signals
|
||||||
|
m_lastValue = cs.asString();
|
||||||
emit this->editingFinished();
|
emit this->editingFinished();
|
||||||
if (cs.isValid())
|
if (cs.isValid())
|
||||||
{
|
{
|
||||||
@@ -106,9 +108,9 @@ namespace BlackGui
|
|||||||
|
|
||||||
bool CCallsignCompleter::isValidKnownCallsign(const QString &callsignString) const
|
bool CCallsignCompleter::isValidKnownCallsign(const QString &callsignString) const
|
||||||
{
|
{
|
||||||
if (m_validCallsigns.isEmpty()) { return false; }
|
|
||||||
if (!CCallsign::isValidAircraftCallsign(callsignString)) { 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()
|
CSharedStringListCompleter *CCallsignCompleter::completer()
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ namespace BlackGui
|
|||||||
static CSharedStringListCompleter *completer();
|
static CSharedStringListCompleter *completer();
|
||||||
|
|
||||||
QScopedPointer <Ui::CCallsignCompleter> ui;
|
QScopedPointer <Ui::CCallsignCompleter> ui;
|
||||||
BlackMisc::Aviation::CCallsignSet m_validCallsigns;
|
|
||||||
BlackMisc::CDigestSignal m_dsAircraftsInRangeChanged { this, &CCallsignCompleter::onChangedAircraftInRange, 5000, 5 };
|
BlackMisc::CDigestSignal m_dsAircraftsInRangeChanged { this, &CCallsignCompleter::onChangedAircraftInRange, 5000, 5 };
|
||||||
|
QString m_lastValue;
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
Reference in New Issue
Block a user