mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 15:43:55 +02:00
Added entry point to settings section for login email change.
This commit is contained in:
parent
23d1394fb2
commit
793e15f80c
2 changed files with 74 additions and 0 deletions
|
@ -15,6 +15,13 @@ settingsButton: SettingsButton(infoProfileButton) {
|
||||||
padding: margins(60px, 10px, 22px, 10px);
|
padding: margins(60px, 10px, 22px, 10px);
|
||||||
iconLeft: 20px;
|
iconLeft: 20px;
|
||||||
}
|
}
|
||||||
|
settingsButtonRightLabelSpoiler: SettingsButton(settingsButton) {
|
||||||
|
rightLabel: FlatLabel(defaultSettingsRightLabel) {
|
||||||
|
palette: TextPalette(defaultTextPalette) {
|
||||||
|
spoilerFg: windowActiveTextFg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
settingsButtonNoIcon: SettingsButton(settingsButton) {
|
settingsButtonNoIcon: SettingsButton(settingsButton) {
|
||||||
padding: margins(22px, 10px, 22px, 8px);
|
padding: margins(22px, 10px, 22px, 8px);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "api/api_websites.h"
|
#include "api/api_websites.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_email_confirm.h"
|
#include "settings/cloud_password/settings_cloud_password_email_confirm.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_input.h"
|
#include "settings/cloud_password/settings_cloud_password_input.h"
|
||||||
|
#include "settings/cloud_password/settings_cloud_password_login_email.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_start.h"
|
#include "settings/cloud_password/settings_cloud_password_start.h"
|
||||||
#include "settings/settings_active_sessions.h"
|
#include "settings/settings_active_sessions.h"
|
||||||
#include "settings/settings_blocked_peers.h"
|
#include "settings/settings_blocked_peers.h"
|
||||||
|
@ -567,6 +568,71 @@ void SetupCloudPassword(
|
||||||
session->api().cloudPassword().reload();
|
session->api().cloudPassword().reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetupLoginEmail(
|
||||||
|
not_null<Window::SessionController*> controller,
|
||||||
|
not_null<Ui::VerticalLayout*> container,
|
||||||
|
Fn<void(Type)> showOther) {
|
||||||
|
using namespace rpl::mappers;
|
||||||
|
using State = Core::CloudPasswordState;
|
||||||
|
|
||||||
|
const auto session = &controller->session();
|
||||||
|
auto passwordState = session->api().cloudPassword().state(
|
||||||
|
) | rpl::map([](const State &state) {
|
||||||
|
return !state.loginEmailPattern.isEmpty();
|
||||||
|
}) | rpl::distinct_until_changed();
|
||||||
|
|
||||||
|
const auto wrap = container->add(
|
||||||
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
|
container,
|
||||||
|
object_ptr<Ui::VerticalLayout>(container)));
|
||||||
|
wrap->toggleOn(rpl::duplicate(passwordState));
|
||||||
|
wrap->finishAnimating();
|
||||||
|
|
||||||
|
auto email = session->api().cloudPassword().state(
|
||||||
|
) | rpl::map([](const State &state) { return state.loginEmailPattern; });
|
||||||
|
auto text = tr::lng_settings_cloud_login_email_section_title();
|
||||||
|
auto label = rpl::duplicate(email) | rpl::map([](QString email) {
|
||||||
|
return Ui::Text::WrapEmailPattern(
|
||||||
|
email.replace(QRegularExpression("\\*{4,}"), "****"));
|
||||||
|
});
|
||||||
|
const auto &st = st::settingsButtonRightLabelSpoiler;
|
||||||
|
const auto button = AddButtonWithIcon(
|
||||||
|
wrap->entity(),
|
||||||
|
rpl::duplicate(text),
|
||||||
|
st,
|
||||||
|
{ &st::menuIconRecoveryEmail });
|
||||||
|
CreateRightLabel(button, std::move(label), st, std::move(text));
|
||||||
|
|
||||||
|
button->addClickHandler([=, email = std::move(email)] {
|
||||||
|
controller->uiShow()->show(Box([=](not_null<Ui::GenericBox*> box) {
|
||||||
|
Ui::ConfirmBox(box, Ui::ConfirmBoxArgs{
|
||||||
|
.text = tr::lng_settings_cloud_login_email_box_about(),
|
||||||
|
.confirmed = [=](Fn<void()> close) {
|
||||||
|
showOther(CloudLoginEmailId());
|
||||||
|
close();
|
||||||
|
},
|
||||||
|
.confirmText = tr::lng_settings_cloud_login_email_box_ok(),
|
||||||
|
});
|
||||||
|
box->getDelegate()->setTitle(rpl::duplicate(
|
||||||
|
email
|
||||||
|
) | rpl::map(Ui::Text::WrapEmailPattern));
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
|
||||||
|
const auto reloadOnActivation = [=](Qt::ApplicationState state) {
|
||||||
|
if (wrap->toggled() && state == Qt::ApplicationActive) {
|
||||||
|
controller->session().api().cloudPassword().reload();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
QObject::connect(
|
||||||
|
static_cast<QGuiApplication*>(QCoreApplication::instance()),
|
||||||
|
&QGuiApplication::applicationStateChanged,
|
||||||
|
container,
|
||||||
|
reloadOnActivation);
|
||||||
|
|
||||||
|
session->api().cloudPassword().reload();
|
||||||
|
}
|
||||||
|
|
||||||
void SetupTopPeers(
|
void SetupTopPeers(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
|
@ -870,6 +936,7 @@ void SetupSecurity(
|
||||||
rpl::duplicate(updateTrigger),
|
rpl::duplicate(updateTrigger),
|
||||||
showOther);
|
showOther);
|
||||||
SetupLocalPasscode(controller, container, showOther);
|
SetupLocalPasscode(controller, container, showOther);
|
||||||
|
SetupLoginEmail(controller, container, showOther);
|
||||||
SetupBlockedList(
|
SetupBlockedList(
|
||||||
controller,
|
controller,
|
||||||
container,
|
container,
|
||||||
|
|
Loading…
Add table
Reference in a new issue