/* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac * Copyright 2017-2018, Adriaan de Groot * Copyright 2019, Collabora Ltd * * 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 . */ #include "FinishedPage.h" #include "ui_FinishedPage.h" #include "CalamaresVersion.h" #include "utils/Logger.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Retranslator.h" #include "ViewManager.h" #include #include #include #include #include #include "Branding.h" #include "Settings.h" FinishedPage::FinishedPage( QWidget* parent ) : QWidget( parent ) , ui( new Ui::FinishedPage ) , m_mode( FinishedViewStep::RestartMode::UserUnchecked ) { ui->setupUi( this ); ui->mainText->setAlignment( Qt::AlignCenter ); ui->mainText->setWordWrap( true ); ui->mainText->setOpenExternalLinks( true ); CALAMARES_RETRANSLATE( ui->retranslateUi( this ); if ( Calamares::Settings::instance()->isSetupMode() ) { ui->mainText->setText( tr( "

All done.


" "%1 has been set up on your computer.
" "You may now start using your new system." ) .arg( *Calamares::Branding::VersionedName ) ); ui->restartCheckBox->setToolTip( tr ( "" "

When this box is checked, your system will " "restart immediately when you click on " "Done " "or close the setup program.

" ) ); } else { ui->mainText->setText( tr( "

All done.


" "%1 has been installed on your computer.
" "You may now restart into your new system, or continue " "using the %2 Live environment." ) .arg( *Calamares::Branding::VersionedName, *Calamares::Branding::ProductName ) ); ui->restartCheckBox->setToolTip( tr ( "" "

When this box is checked, your system will " "restart immediately when you click on " "Done " "or close the installer.

" ) ); } ) } void FinishedPage::setRestart( FinishedViewStep::RestartMode mode ) { using Mode = FinishedViewStep::RestartMode; m_mode = mode; ui->restartCheckBox->setVisible( mode != Mode::Never ); ui->restartCheckBox->setEnabled( mode != Mode::Always ); ui->restartCheckBox->setChecked( ( mode == Mode::Always ) || ( mode == Mode::UserChecked ) ); } void FinishedPage::setRestartNowCommand( const QString& command ) { m_restartNowCommand = command; } void FinishedPage::setUpRestart() { cDebug() << "FinishedPage::setUpRestart(), Quit button" << "setup=" << FinishedViewStep::modeName( m_mode ) << "command=" << m_restartNowCommand; connect( qApp, &QApplication::aboutToQuit, [this]() { if ( ui->restartCheckBox->isVisible() && ui->restartCheckBox->isChecked() ) { cDebug() << "Running restart command" << m_restartNowCommand; QProcess::execute( "/bin/sh", { "-c", m_restartNowCommand } ); } } ); } void FinishedPage::focusInEvent( QFocusEvent* e ) { e->accept(); } void FinishedPage::onInstallationFailed( const QString& message, const QString& details ) { Q_UNUSED( details ) if ( Calamares::Settings::instance()->isSetupMode() ) ui->mainText->setText( tr( "

Setup Failed


" "%1 has not been set up on your computer.
" "The error message was: %2." ) .arg( *Calamares::Branding::VersionedName ) .arg( message ) ); else ui->mainText->setText( tr( "

Installation Failed


" "%1 has not been installed on your computer.
" "The error message was: %2." ) .arg( *Calamares::Branding::VersionedName ) .arg( message ) ); setRestart( FinishedViewStep::RestartMode::Never ); }