AyuGramDesktop/Telegram/SourceFiles/ayu/ui/boxes/confirmation_box.cpp
ZavaruKitsu ffd42f043d fix: refactor read all
fix: read mentions and reactions too
2023-09-22 10:31:55 +03:00

69 lines
1.5 KiB
C++

// This is the source code of AyuGram for Desktop.
//
// We do not and cannot prevent the use of our code,
// but be respectful and credit the original author.
//
// Copyright @Radolyn, 2023
#include "confirmation_box.h"
#include "lang_auto.h"
#include "ayu/ayu_settings.h"
#include "ayu/utils/telegram_helpers.h"
#include "data/data_session.h"
#include "main/main_session.h"
#include "styles/style_layers.h"
#include "ui/text/text_utilities.h"
#include "window/window_peer_menu.h"
#include "window/window_session_controller.h"
namespace AyuUi
{
ConfirmationBox::ConfirmationBox(
QWidget *,
not_null<Window::SessionController *> controller)
: _controller(controller)
{
//
}
void ConfirmationBox::prepare()
{
_text.create(this, tr::ayu_ReadConfirmationBoxQuestion(), st::boxLabel);
auto fullHeight = st::boxPadding.top()
+ _text->height()
+ st::boxPadding.bottom();
setDimensions(st::boxWidth, fullHeight);
addButton(tr::ayu_ReadConfirmationBoxActionText(), [=, this]
{
ReadAllPeers();
closeBox();
});
addButton(tr::lng_cancel(), [=, this]
{ closeBox(); });
}
void ConfirmationBox::resizeEvent(QResizeEvent *e)
{
BoxContent::resizeEvent(e);
const auto &padding = st::boxPadding;
_text->moveToLeft(padding.left(), padding.top());
}
void ConfirmationBox::ReadAllPeers()
{
auto settings = &AyuSettings::getInstance();
auto prev = settings->sendReadMessages;
settings->set_sendReadMessages(true);
auto chats = _controller->session().data().chatsList();
MarkAsReadChatList(chats);
settings->set_sendReadMessages(prev);
}
}