qt: Avoid splash-screen related memory leak
Make splash screen queue its own deletion when it receives the finished command, instead of relying on WA_DeleteOnClose which doesn't work under these circumstances.
This commit is contained in:
parent
693384eedb
commit
e4f126a7ba
2 changed files with 3 additions and 3 deletions
|
@ -365,9 +365,8 @@ void BitcoinApplication::createWindow(const NetworkStyle *networkStyle)
|
||||||
void BitcoinApplication::createSplashScreen(const NetworkStyle *networkStyle)
|
void BitcoinApplication::createSplashScreen(const NetworkStyle *networkStyle)
|
||||||
{
|
{
|
||||||
SplashScreen *splash = new SplashScreen(0, networkStyle);
|
SplashScreen *splash = new SplashScreen(0, networkStyle);
|
||||||
// We don't hold a direct pointer to the splash screen after creation, so use
|
// We don't hold a direct pointer to the splash screen after creation, but the splash
|
||||||
// Qt::WA_DeleteOnClose to make sure that the window will be deleted eventually.
|
// screen will take care of deleting itself when slotFinish happens.
|
||||||
splash->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
splash->show();
|
splash->show();
|
||||||
connect(this, SIGNAL(splashFinished(QWidget*)), splash, SLOT(slotFinish(QWidget*)));
|
connect(this, SIGNAL(splashFinished(QWidget*)), splash, SLOT(slotFinish(QWidget*)));
|
||||||
connect(this, SIGNAL(requestedShutdown()), splash, SLOT(close()));
|
connect(this, SIGNAL(requestedShutdown()), splash, SLOT(close()));
|
||||||
|
|
|
@ -147,6 +147,7 @@ void SplashScreen::slotFinish(QWidget *mainWin)
|
||||||
if (isMinimized())
|
if (isMinimized())
|
||||||
showNormal();
|
showNormal();
|
||||||
hide();
|
hide();
|
||||||
|
deleteLater(); // No more need for this
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InitMessage(SplashScreen *splash, const std::string &message)
|
static void InitMessage(SplashScreen *splash, const std::string &message)
|
||||||
|
|
Loading…
Reference in a new issue