calamares/src/modules/welcome/WelcomeViewStep.cpp
Adriaan de Groot 8a8ec01380 [welcome] Don't enable next early
- Next was enabled early; presumably to cover the case that no requirements
   were checked and the requirements checker never emitted an update signal.
   Drop that since the module manager is now responsible for doing that checking.
2019-02-25 07:00:22 -05:00

140 lines
3.5 KiB
C++

/* === 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>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
#include "WelcomeViewStep.h"
#include "WelcomePage.h"
#include "checker/GeneralRequirements.h"
#include "modulesystem/ModuleManager.h"
#include "utils/Logger.h"
#include <QVariant>
CALAMARES_PLUGIN_FACTORY_DEFINITION( WelcomeViewStepFactory, registerPlugin<WelcomeViewStep>(); )
WelcomeViewStep::WelcomeViewStep( QObject* parent )
: Calamares::ViewStep( parent )
, m_requirementsChecker( new GeneralRequirements( this ) )
{
connect( Calamares::ModuleManager::instance(), &Calamares::ModuleManager::requirementsComplete, this, &WelcomeViewStep::nextStatusChanged );
m_widget = new WelcomePage();
}
WelcomeViewStep::~WelcomeViewStep()
{
if ( m_widget && m_widget->parent() == nullptr )
m_widget->deleteLater();
}
QString
WelcomeViewStep::prettyName() const
{
return tr( "Welcome" );
}
QWidget*
WelcomeViewStep::widget()
{
return m_widget;
}
void
WelcomeViewStep::next()
{
emit done();
}
void
WelcomeViewStep::back()
{}
bool
WelcomeViewStep::isNextEnabled() const
{
return m_widget->verdict();
}
bool
WelcomeViewStep::isBackEnabled() const
{
return false;
}
bool
WelcomeViewStep::isAtBeginning() const
{
return true;
}
bool
WelcomeViewStep::isAtEnd() const
{
return true;
}
QList< Calamares::job_ptr >
WelcomeViewStep::jobs() const
{
return QList< Calamares::job_ptr >();
}
void
WelcomeViewStep::setConfigurationMap( const QVariantMap& configurationMap )
{
bool showSupportUrl =
configurationMap.contains( "showSupportUrl" ) &&
configurationMap.value( "showSupportUrl" ).type() == QVariant::Bool &&
configurationMap.value( "showSupportUrl" ).toBool();
bool showKnownIssuesUrl =
configurationMap.contains( "showKnownIssuesUrl" ) &&
configurationMap.value( "showKnownIssuesUrl" ).type() == QVariant::Bool &&
configurationMap.value( "showKnownIssuesUrl" ).toBool();
bool showReleaseNotesUrl =
configurationMap.contains( "showReleaseNotesUrl" ) &&
configurationMap.value( "showReleaseNotesUrl" ).type() == QVariant::Bool &&
configurationMap.value( "showReleaseNotesUrl" ).toBool();
m_widget->setUpLinks( showSupportUrl,
showKnownIssuesUrl,
showReleaseNotesUrl );
if ( configurationMap.contains( "requirements" ) &&
configurationMap.value( "requirements" ).type() == QVariant::Map )
m_requirementsChecker->setConfigurationMap( configurationMap.value( "requirements" ).toMap() );
else
cWarning() << "no valid requirements map found in welcome "
"module configuration.";
}
Calamares::RequirementsList WelcomeViewStep::checkRequirements()
{
return m_requirementsChecker->checkRequirements();
}