diff --git a/src/plugins/coreplugin/sessiondialog.cpp b/src/plugins/coreplugin/sessiondialog.cpp index 3fc53738506..a02988a4262 100644 --- a/src/plugins/coreplugin/sessiondialog.cpp +++ b/src/plugins/coreplugin/sessiondialog.cpp @@ -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; }