diff --git a/src/plugins/vcsbase/checkoutjobs.cpp b/src/plugins/vcsbase/checkoutjobs.cpp index 7a419a009829a9166e2b2e679d4b64a4f9e38bd9..257068d5b50158d00b310c695ff9b510be019f6f 100644 --- a/src/plugins/vcsbase/checkoutjobs.cpp +++ b/src/plugins/vcsbase/checkoutjobs.cpp @@ -94,9 +94,16 @@ void ProcessCheckoutJob::slotOutput() emit output(s); } -void ProcessCheckoutJob::slotError(QProcess::ProcessError /* error */) +void ProcessCheckoutJob::slotError(QProcess::ProcessError error) { - emit failed(d->process.errorString()); + switch (error) { + case QProcess::FailedToStart: + emit failed(tr("Unable to start %1: %2").arg(d->binary, d->process.errorString())); + break; + default: + emit failed(d->process.errorString()); + break; + } } void ProcessCheckoutJob::slotFinished (int exitCode, QProcess::ExitStatus exitStatus) diff --git a/src/plugins/vcsbase/checkoutprogresswizardpage.cpp b/src/plugins/vcsbase/checkoutprogresswizardpage.cpp index 6af15fb0f8b90478c14206d1ce91f86fd98e171c..8fcaef51fc3db364744a548cf7a8548553e0f11b 100644 --- a/src/plugins/vcsbase/checkoutprogresswizardpage.cpp +++ b/src/plugins/vcsbase/checkoutprogresswizardpage.cpp @@ -63,10 +63,11 @@ void CheckoutProgressWizardPage::start(const QSharedPointer<AbstractCheckoutJob> connect(job.data(), SIGNAL(succeeded()), this, SLOT(slotSucceeded())); QApplication::setOverrideCursor(Qt::WaitCursor); ui->logPlainTextEdit->clear(); - setSubTitle(tr("Checkout started...")); - job->start(); + setSubTitle(tr("Checkout started...")); m_state = Running; - + // Note: Process jobs can emit failed() right from + // the start() method on Windows. + job->start(); } void CheckoutProgressWizardPage::slotFailed(const QString &why) diff --git a/src/plugins/vcsbase/checkoutwizarddialog.cpp b/src/plugins/vcsbase/checkoutwizarddialog.cpp index 9cb5a6a45e85a4420a7a940c56e015bfbd597d31..36b9c271ee02e1af7efc06320acfb7195e845c6a 100644 --- a/src/plugins/vcsbase/checkoutwizarddialog.cpp +++ b/src/plugins/vcsbase/checkoutwizarddialog.cpp @@ -70,9 +70,9 @@ void CheckoutWizardDialog::slotTerminated(bool success) void CheckoutWizardDialog::start(const QSharedPointer<AbstractCheckoutJob> &job) { - m_progressPage->start(job); // No "back" available while running. button(QWizard::BackButton)->setEnabled(false); + m_progressPage->start(job); } void CheckoutWizardDialog::reject()