diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index 70f8b08eda9..17ba2f8ab16 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -635,19 +635,24 @@ static QString filterForQmakeFileDialog() void QtOptionsPageWidget::addQtDir() { Utils::FileName qtVersion = Utils::FileName::fromString( - QFileDialog::getOpenFileName(this, - tr("Select a qmake executable"), - QString(), - filterForQmakeFileDialog(), - 0, - QFileDialog::DontResolveSymlinks)); + QFileInfo(QFileDialog::getOpenFileName(this, + tr("Select a qmake executable"), + QString(), + filterForQmakeFileDialog(), + 0, + QFileDialog::DontResolveSymlinks)).canonicalFilePath()); if (qtVersion.isNull()) return; - if (QtVersionManager::instance()->qtVersionForQMakeBinary(qtVersion)) { + BaseQtVersion *version = QtVersionManager::instance()->qtVersionForQMakeBinary(qtVersion); + if (version) { // Already exist + QMessageBox::warning(this, tr("Qt known"), + tr("This Qt version was already registered as \"%1\".") + .arg(version->displayName())); + return; } - BaseQtVersion *version = QtVersionFactory::createQtVersionFromQMakePath(qtVersion); + version = QtVersionFactory::createQtVersionFromQMakePath(qtVersion); if (version) { m_versions.append(version); diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index 1f13abf33dc..81fa5b99b6e 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -623,9 +623,8 @@ Utils::FileName QtVersionManager::findQMakeBinaryFromMakefile(const QString &mak #endif // Is qmake still installed? QFileInfo fi(qmakePath); - if (fi.exists()) { - return Utils::FileName(fi); - } + if (fi.exists()) + return Utils::FileName::fromString(fi.canonicalFilePath()); } } }