[netinstall] Move package-listing wrangling to the Config object
Now all the business logic is in Config, the door is open to building a QML-ified netinstall module. I'm not sure that would be worth it: packagechooser offers more space for a nice UI and should be QML'ed first.
This commit is contained in:
parent
9acd2fe458
commit
603a7106b3
@ -15,6 +15,7 @@
|
|||||||
#include "GlobalStorage.h"
|
#include "GlobalStorage.h"
|
||||||
#include "JobQueue.h"
|
#include "JobQueue.h"
|
||||||
#include "network/Manager.h"
|
#include "network/Manager.h"
|
||||||
|
#include "packages/Globals.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
#include "utils/RAII.h"
|
#include "utils/RAII.h"
|
||||||
#include "utils/Retranslator.h"
|
#include "utils/Retranslator.h"
|
||||||
@ -25,12 +26,13 @@
|
|||||||
|
|
||||||
Config::Config( QObject* parent )
|
Config::Config( QObject* parent )
|
||||||
: QObject( parent )
|
: QObject( parent )
|
||||||
, m_model( new PackageModel( this ) ) { CALAMARES_RETRANSLATE_SLOT( &Config::retranslate ) }
|
, m_model( new PackageModel( this ) )
|
||||||
|
|
||||||
Config::~Config()
|
|
||||||
{
|
{
|
||||||
|
CALAMARES_RETRANSLATE_SLOT( &Config::retranslate );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Config::~Config() {}
|
||||||
|
|
||||||
void
|
void
|
||||||
Config::retranslate()
|
Config::retranslate()
|
||||||
{
|
{
|
||||||
@ -238,3 +240,29 @@ Config::setConfigurationMap( const QVariantMap& configurationMap )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Config::finalizeGlobalStorage( const Calamares::ModuleSystem::InstanceKey& key )
|
||||||
|
{
|
||||||
|
auto packages = model()->getPackages();
|
||||||
|
|
||||||
|
// This netinstall module may add two sub-steps to the packageOperations,
|
||||||
|
// one for installing and one for try-installing.
|
||||||
|
QVariantList installPackages;
|
||||||
|
QVariantList tryInstallPackages;
|
||||||
|
|
||||||
|
for ( const auto& package : packages )
|
||||||
|
{
|
||||||
|
if ( package->isCritical() )
|
||||||
|
{
|
||||||
|
installPackages.append( package->toOperation() );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tryInstallPackages.append( package->toOperation() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CalamaresUtils::Packages::setGSPackageAdditions(
|
||||||
|
Calamares::JobQueue::instance()->globalStorage(), key, installPackages, tryInstallPackages );
|
||||||
|
}
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "PackageModel.h"
|
#include "PackageModel.h"
|
||||||
|
|
||||||
#include "locale/TranslatableConfiguration.h"
|
#include "locale/TranslatableConfiguration.h"
|
||||||
|
#include "modulesystem/InstanceKey.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QQueue>
|
#include <QQueue>
|
||||||
@ -74,6 +75,12 @@ public:
|
|||||||
*/
|
*/
|
||||||
void loadGroupList( const QVariantList& groupData );
|
void loadGroupList( const QVariantList& groupData );
|
||||||
|
|
||||||
|
/** @brief Write the selected package lists to global storage
|
||||||
|
*
|
||||||
|
* Since the config doesn't know what module it is for,
|
||||||
|
* pass in an instance key.
|
||||||
|
*/
|
||||||
|
void finalizeGlobalStorage( const Calamares::ModuleSystem::InstanceKey& key );
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void statusChanged( QString status ); ///< Something changed
|
void statusChanged( QString status ); ///< Something changed
|
||||||
|
@ -11,11 +11,6 @@
|
|||||||
|
|
||||||
#include "NetInstallViewStep.h"
|
#include "NetInstallViewStep.h"
|
||||||
|
|
||||||
#include "JobQueue.h"
|
|
||||||
#include "packages/Globals.h"
|
|
||||||
#include "utils/Logger.h"
|
|
||||||
#include "utils/Variant.h"
|
|
||||||
|
|
||||||
#include "NetInstallPage.h"
|
#include "NetInstallPage.h"
|
||||||
|
|
||||||
CALAMARES_PLUGIN_FACTORY_DEFINITION( NetInstallViewStepFactory, registerPlugin< NetInstallViewStep >(); )
|
CALAMARES_PLUGIN_FACTORY_DEFINITION( NetInstallViewStepFactory, registerPlugin< NetInstallViewStep >(); )
|
||||||
@ -125,27 +120,7 @@ NetInstallViewStep::onActivate()
|
|||||||
void
|
void
|
||||||
NetInstallViewStep::onLeave()
|
NetInstallViewStep::onLeave()
|
||||||
{
|
{
|
||||||
auto packages = m_config.model()->getPackages();
|
m_config.finalizeGlobalStorage( moduleInstanceKey() );
|
||||||
|
|
||||||
// This netinstall module may add two sub-steps to the packageOperations,
|
|
||||||
// one for installing and one for try-installing.
|
|
||||||
QVariantList installPackages;
|
|
||||||
QVariantList tryInstallPackages;
|
|
||||||
|
|
||||||
for ( const auto& package : packages )
|
|
||||||
{
|
|
||||||
if ( package->isCritical() )
|
|
||||||
{
|
|
||||||
installPackages.append( package->toOperation() );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tryInstallPackages.append( package->toOperation() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CalamaresUtils::Packages::setGSPackageAdditions(
|
|
||||||
Calamares::JobQueue::instance()->globalStorage(), moduleInstanceKey(), installPackages, tryInstallPackages );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user