2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-05 09:05:14 +00:00

Improve quit prevent management.

This commit is contained in:
John Preston
2020-06-26 11:22:53 +04:00
parent 79a361ba43
commit 70fdc4eb39
2 changed files with 27 additions and 9 deletions

View File

@@ -939,18 +939,35 @@ void Application::refreshGlobalProxy() {
}
void Application::QuitAttempt() {
auto prevents = false;
if (IsAppLaunched() && !Sandbox::Instance().isSavingSession()) {
if (const auto session = App().maybeActiveSession()) {
if (session->updates().isQuitPrevent()
|| session->api().isQuitPrevent()
|| App().calls().isQuitPrevent()) {
App().quitDelayed();
return;
if (!IsAppLaunched()
|| Sandbox::Instance().isSavingSession()
|| App().readyToQuit()) {
QApplication::quit();
}
}
bool Application::readyToQuit() {
auto prevented = false;
if (_calls->isQuitPrevent()) {
prevented = true;
}
if (_domain->started()) {
for (const auto &[index, account] : _domain->accounts()) {
if (const auto session = account->maybeSession()) {
if (session->updates().isQuitPrevent()) {
prevented = true;
}
if (session->api().isQuitPrevent()) {
prevented = true;
}
}
}
}
QApplication::quit();
if (prevented) {
quitDelayed();
return false;
}
return true;
}
void Application::quitPreventFinished() {