mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 15:17:07 +02:00
Moved showLogoutConfirmation from MainWindow to Window::Controller.
This commit is contained in:
parent
1f80c297ec
commit
b4af805521
8 changed files with 51 additions and 45 deletions
Telegram/SourceFiles
|
@ -670,39 +670,6 @@ void MainWindow::updateTrayMenu(bool force) {
|
|||
psTrayMenuUpdated();
|
||||
}
|
||||
|
||||
void MainWindow::showLogoutConfirmation() {
|
||||
if (isHidden()) {
|
||||
showFromTray();
|
||||
}
|
||||
|
||||
const auto account = Core::App().passcodeLocked()
|
||||
? nullptr
|
||||
: sessionController()
|
||||
? &sessionController()->session().account()
|
||||
: nullptr;
|
||||
const auto weak = base::make_weak(account);
|
||||
const auto callback = [=] {
|
||||
if (account && !weak) {
|
||||
return;
|
||||
}
|
||||
if (account
|
||||
&& account->sessionExists()
|
||||
&& Core::App().exportManager().inProgress(&account->session())) {
|
||||
Ui::hideLayer();
|
||||
Core::App().exportManager().stopWithConfirmation([=] {
|
||||
Core::App().logout(account);
|
||||
});
|
||||
} else {
|
||||
Core::App().logout(account);
|
||||
}
|
||||
};
|
||||
Ui::show(Box<ConfirmBox>(
|
||||
tr::lng_sure_logout(tr::now),
|
||||
tr::lng_settings_logout(tr::now),
|
||||
st::attentionBoxButton,
|
||||
callback));
|
||||
}
|
||||
|
||||
bool MainWindow::takeThirdSectionFromLayer() {
|
||||
return _layer ? _layer->takeToThirdSection() : false;
|
||||
}
|
||||
|
|
|
@ -103,8 +103,6 @@ public:
|
|||
not_null<PhotoData*> photo);
|
||||
void hideMediaPreview();
|
||||
|
||||
void showLogoutConfirmation();
|
||||
|
||||
void updateControlsGeometry() override;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -942,10 +942,13 @@ void MainWindow::createGlobalMenu() {
|
|||
|
||||
auto file = psMainMenu->addMenu(tr::lng_mac_menu_file(tr::now));
|
||||
|
||||
psLogout = file->addAction(tr::lng_mac_menu_logout(tr::now));
|
||||
connect(psLogout, &QAction::triggered, psLogout, [] {
|
||||
if (App::wnd()) App::wnd()->showLogoutConfirmation();
|
||||
});
|
||||
psLogout = file->addAction(
|
||||
tr::lng_mac_menu_logout(tr::now),
|
||||
this,
|
||||
[=] {
|
||||
ensureWindowShown();
|
||||
controller().showLogoutConfirmation();
|
||||
});
|
||||
|
||||
auto quit = file->addAction(
|
||||
tr::lng_mac_menu_quit_telegram(tr::now, lt_telegram, qsl("Telegram")),
|
||||
|
|
|
@ -713,10 +713,16 @@ void MainWindow::createGlobalMenu() {
|
|||
}
|
||||
|
||||
QMenu *file = psMainMenu.addMenu(tr::lng_mac_menu_file(tr::now));
|
||||
psLogout = file->addAction(tr::lng_mac_menu_logout(tr::now));
|
||||
connect(psLogout, &QAction::triggered, psLogout, [] {
|
||||
if (App::wnd()) App::wnd()->showLogoutConfirmation();
|
||||
});
|
||||
{
|
||||
auto callback = [=] {
|
||||
ensureWindowShown();
|
||||
controller().showLogoutConfirmation();
|
||||
};
|
||||
psLogout = file->addAction(
|
||||
tr::lng_mac_menu_logout(tr::now),
|
||||
this,
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
QMenu *edit = psMainMenu.addMenu(tr::lng_mac_menu_edit(tr::now));
|
||||
psUndo = edit->addAction(tr::lng_mac_menu_undo(tr::now), this, SLOT(psMacUndo()), QKeySequence::Undo);
|
||||
|
|
|
@ -210,7 +210,7 @@ void FillMenu(
|
|||
}
|
||||
addAction(
|
||||
tr::lng_settings_logout(tr::now),
|
||||
[=] { window->widget()->showLogoutConfirmation(); });
|
||||
[=] { window->showLogoutConfirmation(); });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "api/api_updates.h"
|
||||
#include "core/application.h"
|
||||
#include "core/click_handler_types.h"
|
||||
#include "export/export_manager.h"
|
||||
#include "platform/platform_window_title.h"
|
||||
#include "main/main_account.h"
|
||||
#include "main/main_domain.h"
|
||||
|
@ -329,4 +330,33 @@ QPoint Controller::getPointForCallPanelCenter() const {
|
|||
: _widget.windowHandle()->screen()->geometry().center();
|
||||
}
|
||||
|
||||
void Controller::showLogoutConfirmation() {
|
||||
const auto account = Core::App().passcodeLocked()
|
||||
? nullptr
|
||||
: sessionController()
|
||||
? &sessionController()->session().account()
|
||||
: nullptr;
|
||||
const auto weak = base::make_weak(account);
|
||||
const auto callback = [=] {
|
||||
if (account && !weak) {
|
||||
return;
|
||||
}
|
||||
if (account
|
||||
&& account->sessionExists()
|
||||
&& Core::App().exportManager().inProgress(&account->session())) {
|
||||
Ui::hideLayer();
|
||||
Core::App().exportManager().stopWithConfirmation([=] {
|
||||
Core::App().logout(account);
|
||||
});
|
||||
} else {
|
||||
Core::App().logout(account);
|
||||
}
|
||||
};
|
||||
show(Box<ConfirmBox>(
|
||||
tr::lng_sure_logout(tr::now),
|
||||
tr::lng_settings_logout(tr::now),
|
||||
st::attentionBoxButton,
|
||||
callback));
|
||||
}
|
||||
|
||||
} // namespace Window
|
||||
|
|
|
@ -46,6 +46,8 @@ public:
|
|||
void setupIntro();
|
||||
void setupMain();
|
||||
|
||||
void showLogoutConfirmation();
|
||||
|
||||
void showSettings();
|
||||
|
||||
[[nodiscard]] int verticalShadowTop() const;
|
||||
|
|
|
@ -120,7 +120,7 @@ PasscodeLockWidget::PasscodeLockWidget(
|
|||
|
||||
_submit->setClickedCallback([=] { submit(); });
|
||||
_logout->setClickedCallback([=] {
|
||||
window->widget()->showLogoutConfirmation();
|
||||
window->showLogoutConfirmation();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue