[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).
main
Adriaan de Groot 7 years ago
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…
Cancel
Save