diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index c07eb664c..c43af1265 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -122,8 +122,12 @@ namespace BlackGui // So I use no ranges in the CUpperCaseValidators, as this disables the signals for invalid values // own aircraft - ui->le_Callsign->setMaxLength(LogoffIntervalSeconds); - ui->le_Callsign->setValidator(new CUpperCaseValidator(this)); + constexpr int MaxLength = 10; + constexpr int MinLength = 0; + CUpperCaseValidator *ucv = new CUpperCaseValidator(MinLength, MaxLength, ui->le_Callsign); + // ucv->setAllowedCharacters09AZ(); + ui->le_Callsign->setMaxLength(MaxLength); + ui->le_Callsign->setValidator(ucv); connect(ui->le_Callsign, &QLineEdit::editingFinished, this, &CLoginComponent::validateAircraftValues); ui->le_AircraftCombinedType->setMaxLength(3); diff --git a/src/blackgui/uppercasevalidator.cpp b/src/blackgui/uppercasevalidator.cpp index 91ab28e79..3b8ad2db5 100644 --- a/src/blackgui/uppercasevalidator.cpp +++ b/src/blackgui/uppercasevalidator.cpp @@ -30,11 +30,17 @@ namespace BlackGui if (minLength < 1) { m_optionalValue = true; }; } + void CUpperCaseValidator::setAllowedCharacters09AZ() + { + static const QString chars("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + this->setAllowedCharacters(chars); + } + QValidator::State CUpperCaseValidator::validate(QString &input, int &pos) const { Q_UNUSED(input); Q_UNUSED(pos); - fixup(input); + this->fixup(input); if (m_optionalValue && input.isEmpty()) { return Acceptable; } if (input.length() > m_maxLength) { return Invalid; } diff --git a/src/blackgui/uppercasevalidator.h b/src/blackgui/uppercasevalidator.h index 83c849ff6..13cd84dcb 100644 --- a/src/blackgui/uppercasevalidator.h +++ b/src/blackgui/uppercasevalidator.h @@ -38,6 +38,9 @@ namespace BlackGui //! Allowed characters void setAllowedCharacters(const QString &chars) { m_allowedCharacters = chars.toUpper(); } + //! Set the allowed characters as 0-9 and A-Z + void setAllowedCharacters09AZ(); + //! \copydoc QValidator::validate virtual State validate(QString &input, int &pos) const override;