Merge bitcoin-core/gui#547: Override BitcoinApplication::event() to handle QEvent::Quit

e7fc50681e qt: Override BitcoinApplication::event() to handle QEvent::Quit (Hennadii Stepanov)

Pull request description:

  bitcoin-core/gui#336 introduced a regression when termination requests from a platform are not handled properly.

  This PR fixes this regression. On macOS shutdown after clicking "Quit" in Dock icon menu, and during logout works again.

  Fixes bitcoin-core/gui#545.

ACKs for top commit:
  RandyMcMillan:
    tACK e7fc50681e
  Sjors:
    tACK e7fc50681e (rebased on master) indeed fixes the crash described in #545
  promag:
    Tested ACK e7fc50681e on macOS 10.15 with Qt 5.15.2.

Tree-SHA512: 236a483dc0828f22999469e133b8ac9f0b6267ec2a27004c3ebaa967689ddb972ea1fa90c1dd41f3bff3d17bf571a707babcef53bd79fd711fda98cfbf120131
pull/24415/head
Hennadii Stepanov 3 years ago
commit 00f8492eeb
No known key found for this signature in database
GPG Key ID: 410108112E7EA81F

@ -454,6 +454,16 @@ WId BitcoinApplication::getMainWinId() const
return window->winId();
}
bool BitcoinApplication::event(QEvent* e)
{
if (e->type() == QEvent::Quit) {
requestShutdown();
return true;
}
return QApplication::event(e);
}
static void SetupUIArgs(ArgsManager& argsman)
{
argsman.AddArg("-choosedatadir", strprintf("Choose data directory on startup (default: %u)", DEFAULT_CHOOSE_DATADIR), ArgsManager::ALLOW_ANY, OptionsCategory::GUI);

@ -92,6 +92,9 @@ Q_SIGNALS:
void splashFinished();
void windowShown(BitcoinGUI* window);
protected:
bool event(QEvent* e) override;
private:
std::optional<InitExecutor> m_executor;
OptionsModel *optionsModel;

Loading…
Cancel
Save