FinishedPage: no modal pop-ups in a slot

Switch the failure popup to non-modal, and quit the application when
the pop-up is closed. This allows signals to be delivered to other
slots connected to JobQueue::failed.
This commit is contained in:
Adriaan de Groot 2017-07-04 08:14:30 -04:00 committed by Philip
parent 5be4a00f62
commit a5604aa978

View File

@ -165,22 +165,23 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail
cLog() << "- message:" << message;
cLog() << "- details:" << details;
QMessageBox msgBox;
msgBox.setIcon( QMessageBox::Critical );
msgBox.setWindowTitle( tr("Error") );
msgBox.setText( "<strong>" + tr( "Installation Failed" ) + "</strong>" );
msgBox.setStandardButtons( QMessageBox::Close );
QMessageBox* msgBox = new QMessageBox();
msgBox->setIcon( QMessageBox::Critical );
msgBox->setWindowTitle( tr("Error") );
msgBox->setText( "<strong>" + tr( "Installation Failed" ) + "</strong>" );
msgBox->setStandardButtons( QMessageBox::Close );
msgBox->button( QMessageBox::Close )->setText( tr( "&Close" ) );
QString text = "<p>" + message + "</p>";
if ( !details.isEmpty() )
{
text += "<p>" + details + "</p>";
}
msgBox.setInformativeText( text );
msgBox->setInformativeText( text );
msgBox.exec();
cLog() << "Calamares will now quit.";
qApp->quit();
connect(msgBox, &QMessageBox::buttonClicked, qApp, &QApplication::quit);
cLog() << "Calamares will quit when the dialog closes.";
msgBox->show();
}