@ -27,10 +27,9 @@
# include <QProcess>
FinishedPage : : FinishedPage ( QWidget* parent )
FinishedPage : : FinishedPage ( Config* config , QWidget* parent )
: QWidget ( parent )
, ui ( new Ui : : FinishedPage )
, m_mode ( Config : : RestartMode : : UserDefaultUnchecked )
{
ui - > setupUi ( this ) ;
@ -38,9 +37,44 @@ FinishedPage::FinishedPage( QWidget* parent )
ui - > mainText - > setWordWrap ( true ) ;
ui - > mainText - > setOpenExternalLinks ( true ) ;
CALAMARES_RETRANSLATE (
const auto * branding = Calamares : : Branding : : instance ( ) ; ui - > retranslateUi ( this ) ;
if ( Calamares : : Settings : : instance ( ) - > isSetupMode ( ) ) {
connect ( config , & Config : : restartModeChanged , [ this ] ( Config : : RestartMode mode ) {
using Mode = Config : : RestartMode ;
ui - > restartCheckBox - > setVisible ( mode ! = Mode : : Never ) ;
ui - > restartCheckBox - > setEnabled ( mode ! = Mode : : Always ) ;
} ) ;
connect ( config , & Config : : restartNowWantedChanged , ui - > restartCheckBox , & QCheckBox : : setChecked ) ;
connect ( ui - > restartCheckBox , & QCheckBox : : stateChanged , [ config ] ( int state ) {
config - > setRestartNowWanted ( state ! = 0 ) ;
} ) ;
CALAMARES_RETRANSLATE_SLOT ( & FinishedPage : : retranslate ) ;
}
void
FinishedPage : : focusInEvent ( QFocusEvent * e )
{
e - > accept ( ) ;
}
void
FinishedPage : : onInstallationFailed ( const QString & message , const QString & details )
{
m_failure = ! message . isEmpty ( ) ? message : details ;
retranslate ( ) ;
}
void
FinishedPage : : retranslate ( )
{
const auto * branding = Calamares : : Branding : : instance ( ) ;
ui - > retranslateUi ( this ) ;
if ( ! m_failure . has_value ( ) )
{
if ( Calamares : : Settings : : instance ( ) - > isSetupMode ( ) )
{
ui - > mainText - > setText ( tr ( " <h1>All done.</h1><br/> "
" %1 has been set up on your computer.<br/> "
" You may now start using your new system. " )
@ -50,7 +84,9 @@ FinishedPage::FinishedPage( QWidget* parent )
" restart immediately when you click on "
" <span style= \" font-style:italic; \" >Done</span> "
" or close the setup program.</p></body></html> " ) ) ;
} else {
}
else
{
ui - > mainText - > setText ( tr ( " <h1>All done.</h1><br/> "
" %1 has been installed on your computer.<br/> "
" You may now restart into your new system, or continue "
@ -61,68 +97,27 @@ FinishedPage::FinishedPage( QWidget* parent )
" restart immediately when you click on "
" <span style= \" font-style:italic; \" >Done</span> "
" or close the installer.</p></body></html> " ) ) ;
} )
}
void
FinishedPage : : setRestart ( Config : : RestartMode mode )
{
using Mode = Config : : RestartMode ;
m_mode = mode ;
ui - > restartCheckBox - > setVisible ( mode ! = Mode : : Never ) ;
ui - > restartCheckBox - > setEnabled ( mode ! = Mode : : Always ) ;
ui - > restartCheckBox - > setChecked ( ( mode = = Mode : : Always ) | | ( mode = = Mode : : UserDefaultChecked ) ) ;
}
void
FinishedPage : : setRestartNowCommand ( const QString & command )
{
m_restartNowCommand = command ;
}
void
FinishedPage : : setUpRestart ( )
{
cDebug ( ) < < " FinishedPage::setUpRestart(), Quit button "
< < " setup= " < < restartModes ( ) . find ( m_mode ) < < " command= " < < m_restartNowCommand ;
}
}
else
{
const QString message = m_failure . value ( ) ;
connect ( qApp , & QApplication : : aboutToQuit , [ this ] ( ) {
if ( ui - > restartCheckBox - > isVisible ( ) & & ui - > restartCheckBox - > isChecked ( ) )
if ( Calamares : : Settings : : instance ( ) - > isSetupMode ( ) )
{
cDebug ( ) < < " Running restart command " < < m_restartNowCommand ;
QProcess : : execute ( " /bin/sh " , { " -c " , m_restartNowCommand } ) ;
ui - > mainText - > setText ( tr ( " <h1>Setup Failed</h1><br/> "
" %1 has not been set up on your computer.<br/> "
" The error message was: %2. " )
. arg ( branding - > versionedName ( ) )
. arg ( message ) ) ;
}
} ) ;
}
void
FinishedPage : : focusInEvent ( QFocusEvent * e )
{
e - > accept ( ) ;
}
void
FinishedPage : : onInstallationFailed ( const QString & message , const QString & details )
{
const auto * branding = Calamares : : Branding : : instance ( ) ;
Q_UNUSED ( details )
if ( Calamares : : Settings : : instance ( ) - > isSetupMode ( ) )
ui - > mainText - > setText ( tr ( " <h1>Setup Failed</h1><br/> "
" %1 has not been set up on your computer.<br/> "
" The error message was: %2. " )
. arg ( branding - > versionedName ( ) )
. arg ( message ) ) ;
else
ui - > mainText - > setText ( tr ( " <h1>Installation Failed</h1><br/> "
" %1 has not been installed on your computer.<br/> "
" The error message was: %2. " )
. arg ( branding - > versionedName ( ) )
. arg ( message ) ) ;
setRestart ( Config : : RestartMode : : Never ) ;
else
{
ui - > mainText - > setText ( tr ( " <h1>Installation Failed</h1><br/> "
" %1 has not been installed on your computer.<br/> "
" The error message was: %2. " )
. arg ( branding - > versionedName ( ) )
. arg ( message ) ) ;
}
}
}