diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-12-17 18:25:21 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-12-18 09:39:07 +0000 |
commit | 2225387b40329951b616802388b0be78a3afd2d9 (patch) | |
tree | 315b4dd3f6761d6eb74ae97bfdd44774edd73a4a /src/plugins/qbsprojectmanager | |
parent | fa89a452ae47052e12304eacc00a90a159d563b1 (diff) |
QbsProjectManager: Do not try to call qbs if there is no executable
Otherwise, we'll get warnings from QProcess.
Change-Id: Ibaa536729fa644583c8ddc7a2931ac0ee11c0c9e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/plugins/qbsprojectmanager')
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsprofilemanager.cpp | 5 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbssession.cpp | 7 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbssettings.cpp | 5 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbssettings.h | 1 |
4 files changed, 15 insertions, 3 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsprofilemanager.cpp b/src/plugins/qbsprojectmanager/qbsprofilemanager.cpp index de8a0becc6..1d81e6c507 100644 --- a/src/plugins/qbsprojectmanager/qbsprofilemanager.cpp +++ b/src/plugins/qbsprojectmanager/qbsprofilemanager.cpp @@ -247,7 +247,10 @@ QString QbsProfileManager::runQbsConfig(QbsConfigOp op, const QString &key, cons args << "--unset" << key; break; } - qbsConfig.start(QbsSettings::qbsExecutableFilePath().toString(), args); + const Utils::FilePath qbsExe = QbsSettings::qbsExecutableFilePath(); + if (qbsExe.isEmpty() || !qbsExe.exists()) + return {}; + qbsConfig.start(qbsExe.toString(), args); if (!qbsConfig.waitForStarted(3000) || !qbsConfig.waitForFinished(5000)) { Core::MessageManager::write(tr("Failed run qbs config: %1").arg(qbsConfig.errorString())); } else if (qbsConfig.exitCode() != 0) { diff --git a/src/plugins/qbsprojectmanager/qbssession.cpp b/src/plugins/qbsprojectmanager/qbssession.cpp index 96606ebb70..dffbdf6b0c 100644 --- a/src/plugins/qbsprojectmanager/qbssession.cpp +++ b/src/plugins/qbsprojectmanager/qbssession.cpp @@ -219,7 +219,12 @@ void QbsSession::initialize() }); connect(d->packetReader, &PacketReader::packetReceived, this, &QbsSession::handlePacket); d->state = State::Initializing; - d->qbsProcess->start(QbsSettings::qbsExecutableFilePath().toString(), {"session"}); + const FilePath qbsExe = QbsSettings::qbsExecutableFilePath(); + if (qbsExe.isEmpty() || !qbsExe.exists()) { + QTimer::singleShot(0, this, [this] { setError(Error::QbsFailedToStart); }); + return; + } + d->qbsProcess->start(qbsExe.toString(), {"session"}); } void QbsSession::sendQuitPacket() diff --git a/src/plugins/qbsprojectmanager/qbssettings.cpp b/src/plugins/qbsprojectmanager/qbssettings.cpp index 649908c221..5e3e3f0b88 100644 --- a/src/plugins/qbsprojectmanager/qbssettings.cpp +++ b/src/plugins/qbsprojectmanager/qbssettings.cpp @@ -159,8 +159,11 @@ public: private: static QString getQbsVersion() { + const FilePath qbsExe = QbsSettings::qbsExecutableFilePath(); + if (qbsExe.isEmpty() || !qbsExe.exists()) + return tr("Failed to retrieve version."); QProcess qbsProc; - qbsProc.start(QbsSettings::qbsExecutableFilePath().toString(), {"--version"}); + qbsProc.start(qbsExe.toString(), {"--version"}); if (!qbsProc.waitForStarted(3000) || !qbsProc.waitForFinished(5000) || qbsProc.exitCode() != 0) { return tr("Failed to retrieve version."); diff --git a/src/plugins/qbsprojectmanager/qbssettings.h b/src/plugins/qbsprojectmanager/qbssettings.h index 024416db15..f5e2bd343c 100644 --- a/src/plugins/qbsprojectmanager/qbssettings.h +++ b/src/plugins/qbsprojectmanager/qbssettings.h @@ -48,6 +48,7 @@ public: static QbsSettings &instance(); static Utils::FilePath qbsExecutableFilePath(); + static bool hasQbsExecutable(); static QString defaultInstallDirTemplate(); static bool useCreatorSettingsDirForQbs(); static QString qbsSettingsBaseDir(); |