Avoid session names that differ only in case

Having such sessions is confusing in general, and on case-insensitive
file systems leads to even more issues.

Fixes: QTCREATORBUG-32523
Change-Id: Ie3e748d80d4711e831f53087f95b695ef697db7e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Eike Ziller
2025-05-20 11:05:34 +02:00
parent 811d369ce5
commit cc7ab7dc72

View File

@@ -34,6 +34,8 @@ public:
void fixup(QString & input) const override;
QValidator::State validate(QString & input, int & pos) const override;
private:
bool hasSession(const QString &input) const;
QStringList m_sessions;
};
@@ -53,12 +55,17 @@ QValidator::State SessionValidator::validate(QString &input, int &pos) const
|| input.contains(QLatin1Char('*')))
return QValidator::Invalid;
if (m_sessions.contains(input))
if (hasSession(input))
return QValidator::Intermediate;
else
return QValidator::Acceptable;
}
bool SessionValidator::hasSession(const QString &input) const
{
return m_sessions.contains(input, Qt::CaseInsensitive);
}
void SessionValidator::fixup(QString &input) const
{
int i = 2;
@@ -66,7 +73,7 @@ void SessionValidator::fixup(QString &input) const
do {
copy = input + QLatin1String(" (") + QString::number(i) + QLatin1Char(')');
++i;
} while (m_sessions.contains(copy));
} while (hasSession(copy));
input = copy;
}