forked from qt-creator/qt-creator
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:
@@ -34,6 +34,8 @@ public:
|
|||||||
void fixup(QString & input) const override;
|
void fixup(QString & input) const override;
|
||||||
QValidator::State validate(QString & input, int & pos) const override;
|
QValidator::State validate(QString & input, int & pos) const override;
|
||||||
private:
|
private:
|
||||||
|
bool hasSession(const QString &input) const;
|
||||||
|
|
||||||
QStringList m_sessions;
|
QStringList m_sessions;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -53,12 +55,17 @@ QValidator::State SessionValidator::validate(QString &input, int &pos) const
|
|||||||
|| input.contains(QLatin1Char('*')))
|
|| input.contains(QLatin1Char('*')))
|
||||||
return QValidator::Invalid;
|
return QValidator::Invalid;
|
||||||
|
|
||||||
if (m_sessions.contains(input))
|
if (hasSession(input))
|
||||||
return QValidator::Intermediate;
|
return QValidator::Intermediate;
|
||||||
else
|
else
|
||||||
return QValidator::Acceptable;
|
return QValidator::Acceptable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SessionValidator::hasSession(const QString &input) const
|
||||||
|
{
|
||||||
|
return m_sessions.contains(input, Qt::CaseInsensitive);
|
||||||
|
}
|
||||||
|
|
||||||
void SessionValidator::fixup(QString &input) const
|
void SessionValidator::fixup(QString &input) const
|
||||||
{
|
{
|
||||||
int i = 2;
|
int i = 2;
|
||||||
@@ -66,7 +73,7 @@ void SessionValidator::fixup(QString &input) const
|
|||||||
do {
|
do {
|
||||||
copy = input + QLatin1String(" (") + QString::number(i) + QLatin1Char(')');
|
copy = input + QLatin1String(" (") + QString::number(i) + QLatin1Char(')');
|
||||||
++i;
|
++i;
|
||||||
} while (m_sessions.contains(copy));
|
} while (hasSession(copy));
|
||||||
input = copy;
|
input = copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user