diff --git a/src/core/installation.cpp b/src/core/installation.cpp --- a/src/core/installation.cpp +++ b/src/core/installation.cpp @@ -352,7 +352,17 @@ }; if (!postInstallationCommand.isEmpty()) { QProcess* p = runPostInstallationCommand(installedFiles.size() == 1 ? installedFiles.first() : targetPath); - connect(p, static_cast(&QProcess::finished), this, installationFinished); + connect(p, qOverload(&QProcess::finished), this, + [entry, installationFinished, this] (int exitCode, QProcess::ExitStatus) { + if (exitCode) { + EntryInternal newEntry = entry; + newEntry.setStatus(KNS3::Entry::Invalid); + emit signalEntryChanged(newEntry); + emit signalInstallationFailed(i18n("Failed to execute install script")); + } else { + installationFinished(); + } + }); } else { installationFinished(); }