[packagechooser] Ensure multiple instances don't override the GS values
This commit is contained in:
parent
b4ac6b73c8
commit
2aa8c2f0e0
@ -132,13 +132,46 @@ Config::updateGlobalStorage( const QStringList& selected ) const
|
||||
}
|
||||
else
|
||||
{
|
||||
Calamares::JobQueue::instance()->globalStorage()->insert( "NetinstallAdd", netinstallDataList );
|
||||
auto* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||
|
||||
// If an earlier packagechooser instance added this data to global storage, combine them
|
||||
if ( gs->contains( "NetinstallAdd" ) )
|
||||
{
|
||||
auto netinstallAddOrig = gs->value( "NetinstallAdd" );
|
||||
if ( netinstallAddOrig.canConvert( QVariant::List ) )
|
||||
{
|
||||
netinstallDataList += netinstallAddOrig.toList();
|
||||
}
|
||||
else
|
||||
{
|
||||
cWarning() << "Invalid NetinstallAdd data in global storage. Earlier selections purged";
|
||||
}
|
||||
gs->remove( "NetinstallAdd" );
|
||||
}
|
||||
gs->insert( "NetinstallAdd", netinstallDataList );
|
||||
}
|
||||
}
|
||||
else if ( m_method == PackageChooserMethod::NetSelect )
|
||||
{
|
||||
cDebug() << m_defaultId << "groups to select in netinstall" << selected;
|
||||
Calamares::JobQueue::instance()->globalStorage()->insert( "NetinstallSelect", selected );
|
||||
QStringList newSelected = selected;
|
||||
auto* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||
|
||||
// If an earlier packagechooser instance added this data to global storage, combine them
|
||||
if ( gs->contains( "NetinstallSelect" ) )
|
||||
{
|
||||
auto selectedOrig = gs->value( "NetinstallSelect" );
|
||||
if ( selectedOrig.canConvert( QVariant::StringList ) )
|
||||
{
|
||||
newSelected += selectedOrig.toStringList();
|
||||
}
|
||||
else
|
||||
{
|
||||
cWarning() << "Invalid NetinstallSelect data in global storage. Earlier selections purged";
|
||||
}
|
||||
gs->remove( "NetinstallSelect" );
|
||||
}
|
||||
gs->insert( "NetinstallSelect", newSelected );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user