Feature request based on new VATSIM code of conduct, allow empty homebase

This commit is contained in:
Klaus Basan
2019-08-01 21:25:08 +02:00
committed by Mat Sutcliffe
parent 4030a1a730
commit 740cb5a536
6 changed files with 31 additions and 2 deletions

View File

@@ -76,6 +76,11 @@ namespace BlackGui
return ui->le_Icao->text().trimmed().toUpper();
}
bool CAirportSmallCompleter::isEmpty() const
{
return ui->le_Icao->text().isEmpty();
}
void CAirportSmallCompleter::setReadOnly(bool readOnly)
{
ui->le_Icao->setReadOnly(readOnly);
@@ -88,6 +93,15 @@ namespace BlackGui
m_current = CAirport();
}
void CAirportSmallCompleter::clearIfInvalidCode(bool strictValidation)
{
const CAirportIcaoCode icao = this->getAirportIcaoCode();
if (!icao.hasValidIcaoCode(strictValidation))
{
this->clear();
}
}
void CAirportSmallCompleter::onIcaoChanged()
{
if (!sGui && !sGui->hasWebDataServices()) { return; }

View File

@@ -49,12 +49,18 @@ namespace BlackGui
//! The raw ICAO code text
QString getIcaoText() const;
//! Empty field
bool isEmpty() const;
//! Read only
void setReadOnly(bool readOnly);
//! Clear
void clear();
//! Clear if code not valid
void clearIfInvalidCode(bool strictValidation);
signals:
//! Airport has been changed
void changedAirport(const BlackMisc::Aviation::CAirport &airport);

View File

@@ -122,7 +122,8 @@ namespace BlackGui
ui->lblp_Id->setTicked(validId);
if (!validId) { msgs.push_back(CStatusMessage(this).validationError(u"Invalid id")); }
const bool validHomeAirport = user.hasValidHomeBase();
// check against user and if the data entry contains a valid code (or is empty)
const bool validHomeAirport = user.hasValidOrEmptyHomeBase() && (ui->comp_HomeAirport->isEmpty() || ui->comp_HomeAirport->getAirportIcaoCode().hasValidIcaoCode(false));
ui->lblp_HomeAirport->setTicked(validHomeAirport);
if (!validHomeAirport) { msgs.push_back(CStatusMessage(this).validationError(u"Wromg home airport")); }
@@ -144,6 +145,7 @@ namespace BlackGui
void CPilotForm::doValidation()
{
// ui->comp_HomeAirport->clearIfInvalidCode(false);
this->validate();
}
} // ns

View File

@@ -9,7 +9,6 @@ namespace BlackMisc
{
namespace Aviation
{
QString CAirportIcaoCode::convertToQString(bool /** i18n **/) const
{
return m_icaoCode;

View File

@@ -141,6 +141,11 @@ namespace BlackMisc
return m_homebase.hasValidIcaoCode(false);
}
bool CUser::hasValidOrEmptyHomeBase() const
{
return m_homebase.isEmpty() || this->hasValidHomeBase();
}
CStatusMessageList CUser::validate() const
{
CStatusMessageList msgs;

View File

@@ -103,6 +103,9 @@ namespace BlackMisc
//! Has valid home base?
bool hasValidHomeBase() const;
//! Has valid or empty home base?
bool hasValidOrEmptyHomeBase() const;
//! Real name + homebase
QString getRealNameAndHomeBase(const QString &separator = QString(" ")) const;