forked from qt-creator/qt-creator
BuildStep: Make runRecipe() pure virtual
Task-number: QTCREATORBUG-29168 Change-Id: I8a73325b095b86e5cc625348f615705ed3da3dd5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -139,13 +139,33 @@ bool BuildStep::init()
|
||||
void BuildStep::run()
|
||||
{
|
||||
m_cancelFlag = false;
|
||||
doRun();
|
||||
QTC_ASSERT(!m_taskTree, return);
|
||||
|
||||
m_taskTree.reset(new TaskTree({runRecipe()}));
|
||||
connect(m_taskTree.get(), &TaskTree::progressValueChanged, this, [this](int value) {
|
||||
emit progress(qRound(double(value) * 100 / std::max(m_taskTree->progressMaximum(), 1)), {});
|
||||
});
|
||||
connect(m_taskTree.get(), &TaskTree::done, this, [this] {
|
||||
emit finished(true);
|
||||
m_taskTree.release()->deleteLater();
|
||||
});
|
||||
connect(m_taskTree.get(), &TaskTree::errorOccurred, this, [this] {
|
||||
emit finished(false);
|
||||
m_taskTree.release()->deleteLater();
|
||||
});
|
||||
m_taskTree->start();
|
||||
}
|
||||
|
||||
void BuildStep::cancel()
|
||||
{
|
||||
m_cancelFlag = true;
|
||||
doCancel();
|
||||
if (!m_taskTree)
|
||||
return;
|
||||
|
||||
m_taskTree.reset();
|
||||
if (!m_cancelMessage.isEmpty())
|
||||
emit addOutput(m_cancelMessage, OutputFormat::ErrorMessage);
|
||||
emit finished(false);
|
||||
}
|
||||
|
||||
QWidget *BuildStep::doCreateConfigWidget()
|
||||
@@ -311,41 +331,6 @@ void BuildStep::setCancelMessage(const QString &message)
|
||||
m_cancelMessage = message;
|
||||
}
|
||||
|
||||
Tasking::GroupItem BuildStep::runRecipe()
|
||||
{
|
||||
return Group {};
|
||||
}
|
||||
|
||||
void BuildStep::doRun()
|
||||
{
|
||||
QTC_ASSERT(!m_taskTree, return);
|
||||
|
||||
m_taskTree.reset(new TaskTree({runRecipe()}));
|
||||
connect(m_taskTree.get(), &TaskTree::progressValueChanged, this, [this](int value) {
|
||||
emit progress(qRound(double(value) * 100 / std::max(m_taskTree->progressMaximum(), 1)), {});
|
||||
});
|
||||
connect(m_taskTree.get(), &TaskTree::done, this, [this] {
|
||||
emit finished(true);
|
||||
m_taskTree.release()->deleteLater();
|
||||
});
|
||||
connect(m_taskTree.get(), &TaskTree::errorOccurred, this, [this] {
|
||||
emit finished(false);
|
||||
m_taskTree.release()->deleteLater();
|
||||
});
|
||||
m_taskTree->start();
|
||||
}
|
||||
|
||||
void BuildStep::doCancel()
|
||||
{
|
||||
if (!m_taskTree)
|
||||
return;
|
||||
|
||||
m_taskTree.reset();
|
||||
if (!m_cancelMessage.isEmpty())
|
||||
emit addOutput(m_cancelMessage, OutputFormat::ErrorMessage);
|
||||
emit finished(false);
|
||||
}
|
||||
|
||||
void BuildStep::addMacroExpander()
|
||||
{
|
||||
m_addMacroExpander = true;
|
||||
|
@@ -133,9 +133,7 @@ protected:
|
||||
private:
|
||||
using ProjectConfiguration::parent;
|
||||
|
||||
virtual Tasking::GroupItem runRecipe(); // TODO: Make pure virtual when all subclasses implement it.
|
||||
virtual void doRun();
|
||||
virtual void doCancel();
|
||||
virtual Tasking::GroupItem runRecipe() = 0;
|
||||
|
||||
BuildStepList * const m_stepList;
|
||||
std::atomic_bool m_cancelFlag;
|
||||
|
Reference in New Issue
Block a user