2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-05 00:46:08 +00:00

Added Ui::Show implementation for Window::SessionController.

This commit is contained in:
23rd
2022-02-25 09:21:53 +03:00
parent ed5b83bc62
commit 6bcca6c94e
3 changed files with 58 additions and 1 deletions

View File

@@ -1802,4 +1802,44 @@ SessionController::~SessionController() {
resetFakeUnreadWhileOpened();
}
Show::Show(not_null<SessionNavigation*> navigation)
: Show(&navigation->parentController()->window()) {
}
Show::Show(not_null<Controller*> window)
: _window(base::make_weak(window.get())) {
}
Show::~Show() = default;
void Show::showBox(
object_ptr<Ui::BoxContent> content,
Ui::LayerOptions options) const {
if (const auto window = _window.get()) {
window->show(std::move(content), options);
}
}
void Show::hideLayer() const {
if (const auto window = _window.get()) {
window->show(
object_ptr<Ui::BoxContent>{ nullptr },
Ui::LayerOption::CloseOther);
}
}
not_null<QWidget*> Show::toastParent() const {
const auto window = _window.get();
Assert(window != nullptr);
return window->widget()->bodyWidget();
}
bool Show::valid() const {
return !_window.empty();
}
Show::operator bool() const {
return valid();
}
} // namespace Window