aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qbsprojectmanager
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-12-17 18:25:21 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-12-18 09:39:07 +0000
commit2225387b40329951b616802388b0be78a3afd2d9 (patch)
tree315b4dd3f6761d6eb74ae97bfdd44774edd73a4a /src/plugins/qbsprojectmanager
parentfa89a452ae47052e12304eacc00a90a159d563b1 (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.cpp5
-rw-r--r--src/plugins/qbsprojectmanager/qbssession.cpp7
-rw-r--r--src/plugins/qbsprojectmanager/qbssettings.cpp5
-rw-r--r--src/plugins/qbsprojectmanager/qbssettings.h1
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();