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()
|
void BuildStep::run()
|
||||||
{
|
{
|
||||||
m_cancelFlag = false;
|
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()
|
void BuildStep::cancel()
|
||||||
{
|
{
|
||||||
m_cancelFlag = true;
|
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()
|
QWidget *BuildStep::doCreateConfigWidget()
|
||||||
@@ -311,41 +331,6 @@ void BuildStep::setCancelMessage(const QString &message)
|
|||||||
m_cancelMessage = 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()
|
void BuildStep::addMacroExpander()
|
||||||
{
|
{
|
||||||
m_addMacroExpander = true;
|
m_addMacroExpander = true;
|
||||||
|
@@ -133,9 +133,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
using ProjectConfiguration::parent;
|
using ProjectConfiguration::parent;
|
||||||
|
|
||||||
virtual Tasking::GroupItem runRecipe(); // TODO: Make pure virtual when all subclasses implement it.
|
virtual Tasking::GroupItem runRecipe() = 0;
|
||||||
virtual void doRun();
|
|
||||||
virtual void doCancel();
|
|
||||||
|
|
||||||
BuildStepList * const m_stepList;
|
BuildStepList * const m_stepList;
|
||||||
std::atomic_bool m_cancelFlag;
|
std::atomic_bool m_cancelFlag;
|
||||||
|
Reference in New Issue
Block a user