forked from qt-creator/qt-creator
ChangeSelectionDialog: Connect to done() signal instead of finished()
Don't call blocking waitForStarted() and handle failed to start case inside done() handler. Change-Id: I6f88703c4ddc2c26af27b449eaa5be9ef087b1a2 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -165,6 +165,8 @@ void ChangeSelectionDialog::setDetails()
|
|||||||
m_ui->detailsText->setPlainText(m_process->cleanedStdOut());
|
m_ui->detailsText->setPlainText(m_process->cleanedStdOut());
|
||||||
palette.setColor(QPalette::Text, theme->color(Theme::TextColorNormal));
|
palette.setColor(QPalette::Text, theme->color(Theme::TextColorNormal));
|
||||||
m_ui->changeNumberEdit->setPalette(palette);
|
m_ui->changeNumberEdit->setPalette(palette);
|
||||||
|
} else if (m_process->result() == ProcessResult::StartFailed) {
|
||||||
|
m_ui->detailsText->setPlainText(tr("Error: Could not start Git."));
|
||||||
} else {
|
} else {
|
||||||
m_ui->detailsText->setPlainText(tr("Error: Unknown reference"));
|
m_ui->detailsText->setPlainText(tr("Error: Unknown reference"));
|
||||||
palette.setColor(QPalette::Text, theme->color(Theme::TextColorError));
|
palette.setColor(QPalette::Text, theme->color(Theme::TextColorError));
|
||||||
@@ -218,16 +220,11 @@ void ChangeSelectionDialog::recalculateDetails()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_process.reset(new QtcProcess);
|
m_process.reset(new QtcProcess);
|
||||||
|
connect(m_process.get(), &QtcProcess::done, this, &ChangeSelectionDialog::setDetails);
|
||||||
m_process->setWorkingDirectory(workingDir);
|
m_process->setWorkingDirectory(workingDir);
|
||||||
m_process->setEnvironment(m_gitEnvironment);
|
m_process->setEnvironment(m_gitEnvironment);
|
||||||
m_process->setCommand({m_gitExecutable, {"show", "--decorate", "--stat=80", ref}});
|
m_process->setCommand({m_gitExecutable, {"show", "--decorate", "--stat=80", ref}});
|
||||||
|
|
||||||
connect(m_process.get(), &QtcProcess::finished, this, &ChangeSelectionDialog::setDetails);
|
|
||||||
|
|
||||||
m_process->start();
|
m_process->start();
|
||||||
if (!m_process->waitForStarted())
|
|
||||||
m_ui->detailsText->setPlainText(tr("Error: Could not start Git."));
|
|
||||||
else
|
|
||||||
m_ui->detailsText->setPlainText(tr("Fetching commit data..."));
|
m_ui->detailsText->setPlainText(tr("Fetching commit data..."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user