[libcalamares] Allow emergency jobs
Any job can be an emergency job; emergency modules spawn emergency jobs (but conversely, a non-emergency module can spawn an emergency job explicitly).
This commit is contained in:
parent
3ed6f13fa8
commit
8387d5d81f
@ -66,8 +66,15 @@ public:
|
||||
virtual QString prettyDescription() const;
|
||||
virtual QString prettyStatusMessage() const;
|
||||
virtual JobResult exec() = 0;
|
||||
|
||||
bool isEmergency() const { return m_emergency; }
|
||||
void setEmergency( bool e ) { m_emergency = e; }
|
||||
|
||||
signals:
|
||||
void progress( qreal percent );
|
||||
|
||||
private:
|
||||
bool m_emergency = false;
|
||||
};
|
||||
|
||||
} // namespace Calamares
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <ExecutionViewStep.h>
|
||||
|
||||
#include "Branding.h"
|
||||
#include "Job.h"
|
||||
#include "JobQueue.h"
|
||||
#include "modulesystem/Module.h"
|
||||
#include "modulesystem/ModuleManager.h"
|
||||
@ -142,7 +143,15 @@ ExecutionViewStep::onActivate()
|
||||
Calamares::Module* module = Calamares::ModuleManager::instance()
|
||||
->moduleInstance( instanceKey );
|
||||
if ( module )
|
||||
queue->enqueue( module->jobs() );
|
||||
{
|
||||
auto jl = module->jobs();
|
||||
if ( module->isEmergency() )
|
||||
{
|
||||
for( auto& j : jl )
|
||||
j->setEmergency( true );
|
||||
}
|
||||
queue->enqueue( jl );
|
||||
}
|
||||
}
|
||||
|
||||
queue->start();
|
||||
|
Loading…
Reference in New Issue
Block a user