diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp index 40135181aef3234275e7b92bce9c7b4f037f7e6f..d675d2778af8db2f0effbc35914d7ecad910bdab 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp @@ -300,6 +300,16 @@ S60Devices::Device S60Devices::deviceForEpocRoot(const QString &root) const return Device(); } +S60Devices::Device S60Devices::defaultDevice() const +{ + foreach (const S60Devices::Device &i, m_devices) { + if (i.isDefault) { + return i; + } + } + return Device(); +} + QString S60Devices::cleanedRootPath(const QString &deviceRoot) { QString path = deviceRoot; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devices.h b/src/plugins/qt4projectmanager/qt-s60/s60devices.h index 895b89ce7b7b98aff2bfe359e58448c50f77caa9..7bd9d03dd0402cc3a47516781e8c4118ddfa9058 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devices.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60devices.h @@ -66,6 +66,7 @@ public: bool detectQtForDevices(); Device deviceForId(const QString &id) const; Device deviceForEpocRoot(const QString &root) const; + Device defaultDevice() const; static QString cleanedRootPath(const QString &deviceRoot); signals: diff --git a/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp b/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp index ec555019adbb483d01c4e3481032a613f2162572..e163b8f894428f7374fbad48c6a4c20cc73300a5 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp @@ -245,18 +245,31 @@ S60Devices::Device S60Manager::deviceForQtVersion(const Qt4ProjectManager::QtVer if (deviceId.isEmpty()) { // it's not an s60 autodetected version // try to find a device entry belonging to the root given in Qt prefs QString sdkRoot = version->s60SDKDirectory(); - device = m_devices->deviceForEpocRoot(sdkRoot); + if (sdkRoot.isEmpty()) { // no sdk explicitly set in the preferences + // check if EPOCROOT is set and use that + QString epocRootEnv = QProcessEnvironment::systemEnvironment() + .value(QLatin1String("EPOCROOT")); + if (!epocRootEnv.isEmpty()) + sdkRoot = QDir::fromNativeSeparators(epocRootEnv); + } + if (sdkRoot.isEmpty()) { // no sdk set via preference or EPOCROOT + // try default device + device = m_devices->defaultDevice(); + } else { + device = m_devices->deviceForEpocRoot(sdkRoot); + } if (device.epocRoot.isEmpty()) { // no device found // check if we can construct a dummy one if (QFile::exists(QString::fromLatin1("%1/epoc32").arg(sdkRoot))) { device.epocRoot = sdkRoot; device.toolsRoot = device.epocRoot; - device.qt = QFileInfo(QFileInfo(version->qmakeCommand()).path()).path(); device.isDefault = false; device.name = QString::fromLatin1("Manual"); device.id = QString::fromLatin1("Manual"); } } + // override any Qt version that might be still autodetected + device.qt = QFileInfo(QFileInfo(version->qmakeCommand()).path()).path(); } else { device = m_devices->deviceForId(deviceId); } diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp index 2bda2880511aea4a58525a27a3e7771b892a0437..5f983952b72ad9955c8fc0a8200351ba478e1ce0 100644 --- a/src/plugins/qt4projectmanager/qtoptionspage.cpp +++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp @@ -492,9 +492,9 @@ void QtOptionsPageWidget::showEnvironmentPage(QTreeWidgetItem *item) makeMSVCVisible(false); makeMingwVisible(false); makeS60Visible(true); - m_ui->mwcPath->setPath(m_versions.at(index)->mwcDirectory()); - m_ui->s60SDKPath->setPath(m_versions.at(index)->s60SDKDirectory()); - m_ui->gccePath->setPath(m_versions.at(index)->gcceDirectory()); + m_ui->mwcPath->setPath(QDir::toNativeSeparators(m_versions.at(index)->mwcDirectory())); + m_ui->s60SDKPath->setPath(QDir::toNativeSeparators(m_versions.at(index)->s60SDKDirectory())); + m_ui->gccePath->setPath(QDir::toNativeSeparators(m_versions.at(index)->gcceDirectory())); } else { //ProjectExplorer::ToolChain::GCC makeMSVCVisible(false); makeMingwVisible(false); @@ -689,7 +689,8 @@ void QtOptionsPageWidget::updateCurrentMwcDirectory() int currentItemIndex = indexForTreeItem(currentItem); if (currentItemIndex < 0) return; - m_versions[currentItemIndex]->setMwcDirectory(m_ui->mwcPath->path()); + m_versions[currentItemIndex]->setMwcDirectory( + QDir::fromNativeSeparators(m_ui->mwcPath->path())); } void QtOptionsPageWidget::updateCurrentS60SDKDirectory() { @@ -698,7 +699,8 @@ void QtOptionsPageWidget::updateCurrentS60SDKDirectory() int currentItemIndex = indexForTreeItem(currentItem); if (currentItemIndex < 0) return; - m_versions[currentItemIndex]->setS60SDKDirectory(m_ui->s60SDKPath->path()); + m_versions[currentItemIndex]->setS60SDKDirectory( + QDir::fromNativeSeparators(m_ui->s60SDKPath->path())); } void QtOptionsPageWidget::updateCurrentGcceDirectory() { @@ -707,7 +709,8 @@ void QtOptionsPageWidget::updateCurrentGcceDirectory() int currentItemIndex = indexForTreeItem(currentItem); if (currentItemIndex < 0) return; - m_versions[currentItemIndex]->setGcceDirectory(m_ui->gccePath->path()); + m_versions[currentItemIndex]->setGcceDirectory( + QDir::fromNativeSeparators(m_ui->gccePath->path())); } QList<QSharedPointerQtVersion> QtOptionsPageWidget::versions() const diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 54499dac4336ad9155a112afe1fb9e25c893ec69..9d03dafddfa777d1b3a68538cbe0e57c2944a3dd 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -337,11 +337,11 @@ void QtVersionManager::addNewVersionsFromInstaller() if (newVersionData.count() >= 3) version->setMingwDirectory(newVersionData[2]); if (newVersionData.count() >= 4) - version->setS60SDKDirectory(newVersionData[3]); + version->setS60SDKDirectory(QDir::fromNativeSeparators(newVersionData[3])); if (newVersionData.count() >= 5) - version->setGcceDirectory(newVersionData[4]); + version->setGcceDirectory(QDir::fromNativeSeparators(newVersionData[4])); if (newVersionData.count() >= 6) - version->setMwcDirectory(newVersionData[5]); + version->setMwcDirectory(QDir::fromNativeSeparators(newVersionData[5])); bool versionWasAlreadyInList = false; foreach(const QtVersion * const it, m_versions) {