mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
qt: Make splash and shutdown window ignore close events
It's strange to be able to close these windows while there is work in progress. Also set Qt::WA_DeleteOnClose on both windows to make sure that they are deleted eventually, no matter what happens.
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <QCloseEvent>
|
||||
#include <QLabel>
|
||||
#include <QRegExp>
|
||||
#include <QVBoxLayout>
|
||||
@@ -106,18 +107,26 @@ void HelpMessageDialog::on_okButton_accepted()
|
||||
|
||||
|
||||
/** "Shutdown" window */
|
||||
ShutdownWindow::ShutdownWindow(QWidget *parent, Qt::WindowFlags f):
|
||||
QWidget(parent, f)
|
||||
{
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
layout->addWidget(new QLabel(
|
||||
tr("Bitcoin Core is shutting down...") + "<br /><br />" +
|
||||
tr("Do not shut down the computer until this window disappears.")));
|
||||
setLayout(layout);
|
||||
}
|
||||
|
||||
void ShutdownWindow::showShutdownWindow(BitcoinGUI *window)
|
||||
{
|
||||
if (!window)
|
||||
return;
|
||||
|
||||
// Show a simple window indicating shutdown status
|
||||
QWidget *shutdownWindow = new QWidget();
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
layout->addWidget(new QLabel(
|
||||
tr("Bitcoin Core is shutting down...") + "<br /><br />" +
|
||||
tr("Do not shut down the computer until this window disappears.")));
|
||||
shutdownWindow->setLayout(layout);
|
||||
QWidget *shutdownWindow = new ShutdownWindow();
|
||||
// We don't hold a direct pointer to the shutdown window after creation, so use
|
||||
// Qt::WA_DeleteOnClose to make sure that the window will be deleted eventually.
|
||||
shutdownWindow->setAttribute(Qt::WA_DeleteOnClose);
|
||||
shutdownWindow->setWindowTitle(window->windowTitle());
|
||||
|
||||
// Center shutdown window at where main window was
|
||||
@@ -125,3 +134,8 @@ void ShutdownWindow::showShutdownWindow(BitcoinGUI *window)
|
||||
shutdownWindow->move(global.x() - shutdownWindow->width() / 2, global.y() - shutdownWindow->height() / 2);
|
||||
shutdownWindow->show();
|
||||
}
|
||||
|
||||
void ShutdownWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user