[libcalamaresui] Chase changes in instanceDescriptor

- this is mostly about deleting code, since the special-cases
  now live in libcalamares where `settings.conf` is interpreted.
This commit is contained in:
Adriaan de Groot 2020-08-11 14:50:15 +02:00
parent 57f5a92d96
commit b23dbd47c7

View File

@ -1,7 +1,8 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
* Copyright 2018, Adriaan de Groot <groot@kde.org>
* SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac <teo@kde.org>
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -157,49 +158,16 @@ ModuleManager::moduleInstance( const ModuleSystem::InstanceKey& instanceKey )
}
/**
* @brief Search a list of instance descriptions for one matching @p module and @p id
*
* @return -1 on failure, otherwise index of the instance that matches.
*/
static int
findCustomInstance( const Settings::InstanceDescriptionList& customInstances, const ModuleSystem::InstanceKey& m )
{
for ( int i = 0; i < customInstances.count(); ++i )
{
const auto& thisInstance = customInstances[ i ];
if ( thisInstance.module == m.module() && thisInstance.id == m.id() )
{
return i;
}
}
return -1;
}
/** @brief Returns the config file name for the fiven @p instanceKey
/** @brief Returns the config file name for the given @p instanceKey
*
* Custom instances have custom config files, non-custom ones
* have a <modulename>.conf file. Returns an empty QString on
* errors.
*/
static QString
getConfigFileName( const Settings::InstanceDescriptionList& customInstances,
getConfigFileName( const Settings::InstanceDescriptionList& descriptorList,
const ModuleSystem::InstanceKey& instanceKey,
const ModuleSystem::Descriptor& descriptor )
{
if ( instanceKey.isCustom() )
{
int found = findCustomInstance( customInstances, instanceKey );
if ( found < 0 )
{
// This should already have been checked and failed the module already
return QString();
}
return customInstances[ found ].config;
}
else
{
if ( descriptor.value( "noconfig", false ).toBool() )
{
@ -209,10 +177,20 @@ getConfigFileName( const Settings::InstanceDescriptionList& customInstances,
// config file for more than one module.
return QString();
}
return QString( "%1.conf" ).arg( instanceKey.module() );
for ( const auto& descriptor : descriptorList )
{
if ( descriptor.key() == instanceKey )
{
return descriptor.configFileName();
}
}
// This should already have been checked and failed the module already
return QString();
}
void
ModuleManager::loadModules()
{
@ -220,7 +198,7 @@ ModuleManager::loadModules()
{
cWarning() << "Some installed modules have unmet dependencies.";
}
Settings::InstanceDescriptionList customInstances = Settings::instance()->customModuleInstances();
Settings::InstanceDescriptionList customInstances = Settings::instance()->moduleInstances();
QStringList failedModules;
const auto modulesSequence = Settings::instance()->modulesSequence();
@ -237,16 +215,6 @@ ModuleManager::loadModules()
failedModules.append( moduleEntry );
continue;
}
if ( instanceKey.isCustom() )
{
int found = findCustomInstance( customInstances, instanceKey );
if ( found < 0 )
{
cError() << "Custom instance" << moduleEntry << "not found in custom instances section.";
failedModules.append( moduleEntry );
continue;
}
}
ModuleSystem::Descriptor descriptor
= m_availableDescriptorsByModuleName.value( instanceKey.module(), ModuleSystem::Descriptor() );
@ -383,7 +351,9 @@ ModuleManager::checkRequirements()
RequirementsChecker* rq = new RequirementsChecker( modules, m_requirementsModel, this );
connect( rq, &RequirementsChecker::done, rq, &RequirementsChecker::deleteLater );
connect( rq, &RequirementsChecker::done, this, [=](){ this->requirementsComplete( m_requirementsModel->satisfiedMandatory() ); } );
connect( rq, &RequirementsChecker::done, this, [=]() {
this->requirementsComplete( m_requirementsModel->satisfiedMandatory() );
} );
QTimer::singleShot( 0, rq, &RequirementsChecker::run );
}