[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 prettyDescription() const;
|
||||||
virtual QString prettyStatusMessage() const;
|
virtual QString prettyStatusMessage() const;
|
||||||
virtual JobResult exec() = 0;
|
virtual JobResult exec() = 0;
|
||||||
|
|
||||||
|
bool isEmergency() const { return m_emergency; }
|
||||||
|
void setEmergency( bool e ) { m_emergency = e; }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void progress( qreal percent );
|
void progress( qreal percent );
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_emergency = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Calamares
|
} // namespace Calamares
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <ExecutionViewStep.h>
|
#include <ExecutionViewStep.h>
|
||||||
|
|
||||||
#include "Branding.h"
|
#include "Branding.h"
|
||||||
|
#include "Job.h"
|
||||||
#include "JobQueue.h"
|
#include "JobQueue.h"
|
||||||
#include "modulesystem/Module.h"
|
#include "modulesystem/Module.h"
|
||||||
#include "modulesystem/ModuleManager.h"
|
#include "modulesystem/ModuleManager.h"
|
||||||
@ -142,7 +143,15 @@ ExecutionViewStep::onActivate()
|
|||||||
Calamares::Module* module = Calamares::ModuleManager::instance()
|
Calamares::Module* module = Calamares::ModuleManager::instance()
|
||||||
->moduleInstance( instanceKey );
|
->moduleInstance( instanceKey );
|
||||||
if ( module )
|
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();
|
queue->start();
|
||||||
|
Loading…
Reference in New Issue
Block a user