diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 3eba42cdcd45b5a211b14902ca99eb934bb86358..4e891641d1960f177373ac71085d0654a1784adb 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -491,8 +491,19 @@ void QmlRunConfiguration::restore(const ProjectExplorer::PersistentSettingsReade m_qmlViewerArgs = reader.restoreValue(QLatin1String("qmlviewerargs")).toString(); m_scriptFile = reader.restoreValue(QLatin1String("mainscript")).toString(); - if (m_qmlViewer.isEmpty()) - m_qmlViewer = Utils::SynchronousProcess::locateBinary(QLatin1String("qmlviewer")); + if (m_qmlViewer.isEmpty()) { + // first see if there is a bundled qmlviewer +#ifdef Q_OS_WIN32 + const QLatin1String qmlViewerExe("qmlviewer.exe"); +#else + const QLatin1String qmlViewerExe("qmlviewer"); +#endif + const QFileInfo info(QCoreApplication::applicationDirPath(), qmlViewerExe); + if (info.exists() && info.isExecutable()) + m_qmlViewer = info.absoluteFilePath(); + else // if not, then try to locate it elsewhere + m_qmlViewer = Utils::SynchronousProcess::locateBinary(QLatin1String("qmlviewer")); + } if (m_scriptFile.isEmpty()) m_scriptFile = tr("<Current File>");