mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-17 22:57:11 +02:00
Slightly improved code style of controllers for privacy settings.
This commit is contained in:
parent
67195f3825
commit
3fe83282a8
4 changed files with 223 additions and 162 deletions
|
@ -112,7 +112,7 @@ std::unique_ptr<PrivacyExceptionsBoxController::Row> PrivacyExceptionsBoxControl
|
|||
|
||||
} // namespace
|
||||
|
||||
QString EditPrivacyController::optionLabel(Option option) {
|
||||
QString EditPrivacyController::optionLabel(Option option) const {
|
||||
switch (option) {
|
||||
case Option::Everyone: return tr::lng_edit_privacy_everyone(tr::now);
|
||||
case Option::Contacts: return tr::lng_edit_privacy_contacts(tr::now);
|
||||
|
|
|
@ -7,7 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
#include "boxes/abstract_box.h"
|
||||
#include "ui/layers/box_content.h"
|
||||
#include "mtproto/sender.h"
|
||||
#include "api/api_user_privacy.h"
|
||||
|
||||
|
@ -38,25 +38,25 @@ public:
|
|||
Never,
|
||||
};
|
||||
|
||||
[[nodiscard]] virtual Key key() = 0;
|
||||
[[nodiscard]] virtual Key key() const = 0;
|
||||
|
||||
[[nodiscard]] virtual rpl::producer<QString> title() = 0;
|
||||
[[nodiscard]] virtual bool hasOption(Option option) {
|
||||
[[nodiscard]] virtual rpl::producer<QString> title() const = 0;
|
||||
[[nodiscard]] virtual bool hasOption(Option option) const {
|
||||
return true;
|
||||
}
|
||||
[[nodiscard]] virtual rpl::producer<QString> optionsTitleKey() = 0;
|
||||
[[nodiscard]] virtual QString optionLabel(Option option);
|
||||
[[nodiscard]] virtual rpl::producer<TextWithEntities> warning() {
|
||||
[[nodiscard]] virtual rpl::producer<QString> optionsTitleKey() const = 0;
|
||||
[[nodiscard]] virtual QString optionLabel(Option option) const;
|
||||
[[nodiscard]] virtual rpl::producer<TextWithEntities> warning() const {
|
||||
return nullptr;
|
||||
}
|
||||
virtual void prepareWarningLabel(not_null<Ui::FlatLabel*> warning) {
|
||||
virtual void prepareWarningLabel(not_null<Ui::FlatLabel*> warning) const {
|
||||
}
|
||||
[[nodiscard]] virtual rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) = 0;
|
||||
Exception exception) const = 0;
|
||||
[[nodiscard]] virtual rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) = 0;
|
||||
Exception exception) const = 0;
|
||||
[[nodiscard]] virtual auto exceptionsDescription()
|
||||
-> rpl::producer<QString> = 0;
|
||||
const -> rpl::producer<QString> = 0;
|
||||
|
||||
[[nodiscard]] virtual object_ptr<Ui::RpWidget> setupAboveWidget(
|
||||
not_null<QWidget*> parent,
|
||||
|
@ -72,7 +72,7 @@ public:
|
|||
}
|
||||
[[nodiscard]] virtual object_ptr<Ui::RpWidget> setupBelowWidget(
|
||||
not_null<Window::SessionController*> controller,
|
||||
not_null<QWidget*> parent) {
|
||||
not_null<QWidget*> parent) const {
|
||||
return { nullptr };
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ public:
|
|||
virtual ~EditPrivacyController() = default;
|
||||
|
||||
protected:
|
||||
EditPrivacyBox *view() const {
|
||||
[[nodiscard]] EditPrivacyBox *view() const {
|
||||
return _view;
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ private:
|
|||
|
||||
};
|
||||
|
||||
class EditPrivacyBox : public Ui::BoxContent {
|
||||
class EditPrivacyBox final : public Ui::BoxContent {
|
||||
public:
|
||||
using Value = Api::UserPrivacy::Rule;
|
||||
using Option = Api::UserPrivacy::Option;
|
||||
|
|
|
@ -10,7 +10,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "settings/settings_common.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "apiwrap.h"
|
||||
#include "mainwidget.h"
|
||||
#include "main/main_session.h"
|
||||
#include "data/data_user.h"
|
||||
#include "data/data_session.h"
|
||||
|
@ -111,9 +110,16 @@ void BlockPeerBoxController::prepareViewHook() {
|
|||
}, lifetime());
|
||||
}
|
||||
|
||||
void BlockPeerBoxController::updateIsBlocked(not_null<PeerListRow*> row, PeerData *peer) const {
|
||||
auto blocked = peer->isBlocked();
|
||||
row->setDisabledState(blocked ? PeerListRow::State::DisabledChecked : PeerListRow::State::Active);
|
||||
void BlockPeerBoxController::updateIsBlocked(
|
||||
not_null<PeerListRow*> row,
|
||||
PeerData *peer) const {
|
||||
if (!peer) {
|
||||
return;
|
||||
}
|
||||
const auto blocked = peer->isBlocked();
|
||||
row->setDisabledState(blocked
|
||||
? PeerListRow::State::DisabledChecked
|
||||
: PeerListRow::State::Active);
|
||||
if (blocked) {
|
||||
row->setCustomStatus(tr::lng_blocked_list_already_blocked(tr::now));
|
||||
} else {
|
||||
|
@ -453,19 +459,20 @@ PhoneNumberPrivacyController::PhoneNumberPrivacyController(
|
|||
: _controller(controller) {
|
||||
}
|
||||
|
||||
UserPrivacy::Key PhoneNumberPrivacyController::key() {
|
||||
UserPrivacy::Key PhoneNumberPrivacyController::key() const {
|
||||
return Key::PhoneNumber;
|
||||
}
|
||||
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::title() {
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_phone_number_title();
|
||||
}
|
||||
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_phone_number_header();
|
||||
}
|
||||
|
||||
rpl::producer<TextWithEntities> PhoneNumberPrivacyController::warning() {
|
||||
auto PhoneNumberPrivacyController::warning() const
|
||||
-> rpl::producer<TextWithEntities> {
|
||||
using namespace rpl::mappers;
|
||||
const auto self = _controller->session().user();
|
||||
return rpl::combine(
|
||||
|
@ -490,7 +497,7 @@ rpl::producer<TextWithEntities> PhoneNumberPrivacyController::warning() {
|
|||
}
|
||||
|
||||
void PhoneNumberPrivacyController::prepareWarningLabel(
|
||||
not_null<Ui::FlatLabel*> warning) {
|
||||
not_null<Ui::FlatLabel*> warning) const {
|
||||
warning->setClickHandlerFilter([=](
|
||||
const ClickHandlerPtr &link,
|
||||
Qt::MouseButton button) {
|
||||
|
@ -506,7 +513,7 @@ void PhoneNumberPrivacyController::prepareWarningLabel(
|
|||
}
|
||||
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always:
|
||||
return tr::lng_edit_privacy_phone_number_always_empty();
|
||||
|
@ -517,15 +524,20 @@ rpl::producer<QString> PhoneNumberPrivacyController::exceptionButtonTextKey(
|
|||
}
|
||||
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_phone_number_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_phone_number_never_title();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_phone_number_always_title();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_phone_number_never_title();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> PhoneNumberPrivacyController::exceptionsDescription() {
|
||||
auto PhoneNumberPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString> {
|
||||
return tr::lng_edit_privacy_phone_number_exceptions();
|
||||
}
|
||||
|
||||
|
@ -591,24 +603,25 @@ LastSeenPrivacyController::LastSeenPrivacyController(
|
|||
: _session(session) {
|
||||
}
|
||||
|
||||
UserPrivacy::Key LastSeenPrivacyController::key() {
|
||||
UserPrivacy::Key LastSeenPrivacyController::key() const {
|
||||
return Key::LastSeen;
|
||||
}
|
||||
|
||||
rpl::producer<QString> LastSeenPrivacyController::title() {
|
||||
rpl::producer<QString> LastSeenPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_lastseen_title();
|
||||
}
|
||||
|
||||
rpl::producer<QString> LastSeenPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> LastSeenPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_lastseen_header();
|
||||
}
|
||||
|
||||
rpl::producer<TextWithEntities> LastSeenPrivacyController::warning() {
|
||||
auto LastSeenPrivacyController::warning() const
|
||||
-> rpl::producer<TextWithEntities> {
|
||||
return tr::lng_edit_privacy_lastseen_warning(Ui::Text::WithEntities);
|
||||
}
|
||||
|
||||
rpl::producer<QString> LastSeenPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always:
|
||||
return tr::lng_edit_privacy_lastseen_always_empty();
|
||||
|
@ -619,15 +632,20 @@ rpl::producer<QString> LastSeenPrivacyController::exceptionButtonTextKey(
|
|||
}
|
||||
|
||||
rpl::producer<QString> LastSeenPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_lastseen_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_lastseen_never_title();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_lastseen_always_title();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_lastseen_never_title();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> LastSeenPrivacyController::exceptionsDescription() {
|
||||
auto LastSeenPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString>{
|
||||
return tr::lng_edit_privacy_lastseen_exceptions();
|
||||
}
|
||||
|
||||
|
@ -655,24 +673,25 @@ void LastSeenPrivacyController::confirmSave(
|
|||
}
|
||||
}
|
||||
|
||||
UserPrivacy::Key GroupsInvitePrivacyController::key() {
|
||||
UserPrivacy::Key GroupsInvitePrivacyController::key() const {
|
||||
return Key::Invites;
|
||||
}
|
||||
|
||||
rpl::producer<QString> GroupsInvitePrivacyController::title() {
|
||||
rpl::producer<QString> GroupsInvitePrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_groups_title();
|
||||
}
|
||||
|
||||
bool GroupsInvitePrivacyController::hasOption(Option option) {
|
||||
bool GroupsInvitePrivacyController::hasOption(Option option) const {
|
||||
return (option != Option::Nobody);
|
||||
}
|
||||
|
||||
rpl::producer<QString> GroupsInvitePrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> GroupsInvitePrivacyController::optionsTitleKey(
|
||||
) const {
|
||||
return tr::lng_edit_privacy_groups_header();
|
||||
}
|
||||
|
||||
rpl::producer<QString> GroupsInvitePrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_groups_always_empty();
|
||||
case Exception::Never: return tr::lng_edit_privacy_groups_never_empty();
|
||||
|
@ -681,7 +700,7 @@ rpl::producer<QString> GroupsInvitePrivacyController::exceptionButtonTextKey(
|
|||
}
|
||||
|
||||
rpl::producer<QString> GroupsInvitePrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_groups_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_groups_never_title();
|
||||
|
@ -689,25 +708,25 @@ rpl::producer<QString> GroupsInvitePrivacyController::exceptionBoxTitle(
|
|||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
auto GroupsInvitePrivacyController::exceptionsDescription()
|
||||
auto GroupsInvitePrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString> {
|
||||
return tr::lng_edit_privacy_groups_exceptions();
|
||||
}
|
||||
|
||||
UserPrivacy::Key CallsPrivacyController::key() {
|
||||
UserPrivacy::Key CallsPrivacyController::key() const {
|
||||
return Key::Calls;
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPrivacyController::title() {
|
||||
rpl::producer<QString> CallsPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_calls_title();
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> CallsPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_calls_header();
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_calls_always_empty();
|
||||
case Exception::Never: return tr::lng_edit_privacy_calls_never_empty();
|
||||
|
@ -716,7 +735,7 @@ rpl::producer<QString> CallsPrivacyController::exceptionButtonTextKey(
|
|||
}
|
||||
|
||||
rpl::producer<QString> CallsPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_calls_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_calls_never_title();
|
||||
|
@ -724,13 +743,14 @@ rpl::producer<QString> CallsPrivacyController::exceptionBoxTitle(
|
|||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPrivacyController::exceptionsDescription() {
|
||||
auto CallsPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString>{
|
||||
return tr::lng_edit_privacy_calls_exceptions();
|
||||
}
|
||||
|
||||
object_ptr<Ui::RpWidget> CallsPrivacyController::setupBelowWidget(
|
||||
not_null<Window::SessionController*> controller,
|
||||
not_null<QWidget*> parent) {
|
||||
not_null<QWidget*> parent) const {
|
||||
auto result = object_ptr<Ui::VerticalLayout>(parent);
|
||||
const auto content = result.data();
|
||||
|
||||
|
@ -748,51 +768,67 @@ object_ptr<Ui::RpWidget> CallsPrivacyController::setupBelowWidget(
|
|||
return result;
|
||||
}
|
||||
|
||||
UserPrivacy::Key CallsPeer2PeerPrivacyController::key() {
|
||||
UserPrivacy::Key CallsPeer2PeerPrivacyController::key() const {
|
||||
return Key::CallsPeer2Peer;
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::title() {
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_calls_p2p_title();
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_calls_p2p_header();
|
||||
}
|
||||
|
||||
QString CallsPeer2PeerPrivacyController::optionLabel(
|
||||
EditPrivacyBox::Option option) {
|
||||
EditPrivacyBox::Option option) const {
|
||||
switch (option) {
|
||||
case Option::Everyone: return tr::lng_edit_privacy_calls_p2p_everyone(tr::now);
|
||||
case Option::Contacts: return tr::lng_edit_privacy_calls_p2p_contacts(tr::now);
|
||||
case Option::Nobody: return tr::lng_edit_privacy_calls_p2p_nobody(tr::now);
|
||||
case Option::Everyone: {
|
||||
return tr::lng_edit_privacy_calls_p2p_everyone(tr::now);
|
||||
};
|
||||
case Option::Contacts: {
|
||||
return tr::lng_edit_privacy_calls_p2p_contacts(tr::now);
|
||||
};
|
||||
case Option::Nobody: {
|
||||
return tr::lng_edit_privacy_calls_p2p_nobody(tr::now);
|
||||
};
|
||||
}
|
||||
Unexpected("Option value in optionsLabelKey.");
|
||||
}
|
||||
|
||||
rpl::producer<TextWithEntities> CallsPeer2PeerPrivacyController::warning() {
|
||||
auto CallsPeer2PeerPrivacyController::warning() const
|
||||
-> rpl::producer<TextWithEntities> {
|
||||
return tr::lng_settings_peer_to_peer_about(Ui::Text::WithEntities);
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_calls_p2p_always_empty();
|
||||
case Exception::Never: return tr::lng_edit_privacy_calls_p2p_never_empty();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_calls_p2p_always_empty();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_calls_p2p_never_empty();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_calls_p2p_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_calls_p2p_never_title();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_calls_p2p_always_title();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_calls_p2p_never_title();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> CallsPeer2PeerPrivacyController::exceptionsDescription() {
|
||||
auto CallsPeer2PeerPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString>{
|
||||
return tr::lng_edit_privacy_calls_p2p_exceptions();
|
||||
}
|
||||
|
||||
|
@ -804,41 +840,50 @@ ForwardsPrivacyController::ForwardsPrivacyController(
|
|||
_chatStyle->apply(controller->defaultChatTheme().get());
|
||||
}
|
||||
|
||||
UserPrivacy::Key ForwardsPrivacyController::key() {
|
||||
UserPrivacy::Key ForwardsPrivacyController::key() const {
|
||||
return Key::Forwards;
|
||||
}
|
||||
|
||||
rpl::producer<QString> ForwardsPrivacyController::title() {
|
||||
rpl::producer<QString> ForwardsPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_forwards_title();
|
||||
}
|
||||
|
||||
rpl::producer<QString> ForwardsPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> ForwardsPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_forwards_header();
|
||||
}
|
||||
|
||||
rpl::producer<TextWithEntities> ForwardsPrivacyController::warning() {
|
||||
auto ForwardsPrivacyController::warning() const
|
||||
-> rpl::producer<TextWithEntities> {
|
||||
return tr::lng_edit_privacy_forwards_warning(Ui::Text::WithEntities);
|
||||
}
|
||||
|
||||
rpl::producer<QString> ForwardsPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_forwards_always_empty();
|
||||
case Exception::Never: return tr::lng_edit_privacy_forwards_never_empty();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_forwards_always_empty();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_forwards_never_empty();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> ForwardsPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_forwards_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_forwards_never_title();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_forwards_always_title();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_forwards_never_title();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
auto ForwardsPrivacyController::exceptionsDescription()
|
||||
auto ForwardsPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString> {
|
||||
return tr::lng_edit_privacy_forwards_exceptions();
|
||||
}
|
||||
|
@ -969,41 +1014,49 @@ HistoryView::Context ForwardsPrivacyController::elementContext() {
|
|||
return HistoryView::Context::ContactPreview;
|
||||
}
|
||||
|
||||
UserPrivacy::Key ProfilePhotoPrivacyController::key() {
|
||||
UserPrivacy::Key ProfilePhotoPrivacyController::key() const {
|
||||
return Key::ProfilePhoto;
|
||||
}
|
||||
|
||||
rpl::producer<QString> ProfilePhotoPrivacyController::title() {
|
||||
rpl::producer<QString> ProfilePhotoPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_profile_photo_title();
|
||||
}
|
||||
|
||||
bool ProfilePhotoPrivacyController::hasOption(Option option) {
|
||||
bool ProfilePhotoPrivacyController::hasOption(Option option) const {
|
||||
return (option != Option::Nobody);
|
||||
}
|
||||
|
||||
rpl::producer<QString> ProfilePhotoPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> ProfilePhotoPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_profile_photo_header();
|
||||
}
|
||||
|
||||
rpl::producer<QString> ProfilePhotoPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_profile_photo_always_empty();
|
||||
case Exception::Never: return tr::lng_edit_privacy_profile_photo_never_empty();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_profile_photo_always_empty();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_profile_photo_never_empty();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
rpl::producer<QString> ProfilePhotoPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_profile_photo_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_profile_photo_never_title();
|
||||
case Exception::Always: {
|
||||
return tr::lng_edit_privacy_profile_photo_always_title();
|
||||
};
|
||||
case Exception::Never: {
|
||||
return tr::lng_edit_privacy_profile_photo_never_title();
|
||||
};
|
||||
}
|
||||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
auto ProfilePhotoPrivacyController::exceptionsDescription()
|
||||
auto ProfilePhotoPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString> {
|
||||
return tr::lng_edit_privacy_profile_photo_exceptions();
|
||||
}
|
||||
|
@ -1021,24 +1074,24 @@ VoicesPrivacyController::VoicesPrivacyController(
|
|||
}, _lifetime);
|
||||
}
|
||||
|
||||
UserPrivacy::Key VoicesPrivacyController::key() {
|
||||
UserPrivacy::Key VoicesPrivacyController::key() const {
|
||||
return Key::Voices;
|
||||
}
|
||||
|
||||
rpl::producer<QString> VoicesPrivacyController::title() {
|
||||
rpl::producer<QString> VoicesPrivacyController::title() const {
|
||||
return tr::lng_edit_privacy_voices_title();
|
||||
}
|
||||
|
||||
bool VoicesPrivacyController::hasOption(Option option) {
|
||||
bool VoicesPrivacyController::hasOption(Option option) const {
|
||||
return (option != Option::Nobody);
|
||||
}
|
||||
|
||||
rpl::producer<QString> VoicesPrivacyController::optionsTitleKey() {
|
||||
rpl::producer<QString> VoicesPrivacyController::optionsTitleKey() const {
|
||||
return tr::lng_edit_privacy_voices_header();
|
||||
}
|
||||
|
||||
rpl::producer<QString> VoicesPrivacyController::exceptionButtonTextKey(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_voices_always_empty();
|
||||
case Exception::Never: return tr::lng_edit_privacy_voices_never_empty();
|
||||
|
@ -1047,7 +1100,7 @@ rpl::producer<QString> VoicesPrivacyController::exceptionButtonTextKey(
|
|||
}
|
||||
|
||||
rpl::producer<QString> VoicesPrivacyController::exceptionBoxTitle(
|
||||
Exception exception) {
|
||||
Exception exception) const {
|
||||
switch (exception) {
|
||||
case Exception::Always: return tr::lng_edit_privacy_voices_always_title();
|
||||
case Exception::Never: return tr::lng_edit_privacy_voices_never_title();
|
||||
|
@ -1055,7 +1108,7 @@ rpl::producer<QString> VoicesPrivacyController::exceptionBoxTitle(
|
|||
Unexpected("Invalid exception value.");
|
||||
}
|
||||
|
||||
auto VoicesPrivacyController::exceptionsDescription()
|
||||
auto VoicesPrivacyController::exceptionsDescription() const
|
||||
-> rpl::producer<QString> {
|
||||
return tr::lng_edit_privacy_voices_exceptions();
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ class ChatStyle;
|
|||
|
||||
namespace Settings {
|
||||
|
||||
class BlockedBoxController : public PeerListController {
|
||||
class BlockedBoxController final : public PeerListController {
|
||||
public:
|
||||
explicit BlockedBoxController(
|
||||
not_null<Window::SessionController*> window);
|
||||
|
@ -56,7 +56,7 @@ private:
|
|||
|
||||
};
|
||||
|
||||
class PhoneNumberPrivacyController : public EditPrivacyController {
|
||||
class PhoneNumberPrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
@ -64,16 +64,17 @@ public:
|
|||
explicit PhoneNumberPrivacyController(
|
||||
not_null<Window::SessionController*> controller);
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<TextWithEntities> warning() override;
|
||||
void prepareWarningLabel(not_null<Ui::FlatLabel*> warning) override;
|
||||
rpl::producer<QString> title() const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<TextWithEntities> warning() const override;
|
||||
void prepareWarningLabel(not_null<Ui::FlatLabel*> warning) const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
object_ptr<Ui::RpWidget> setupMiddleWidget(
|
||||
not_null<Window::SessionController*> controller,
|
||||
|
@ -90,22 +91,23 @@ private:
|
|||
|
||||
};
|
||||
|
||||
class LastSeenPrivacyController : public EditPrivacyController {
|
||||
class LastSeenPrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
||||
explicit LastSeenPrivacyController(not_null<::Main::Session*> session);
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<TextWithEntities> warning() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<TextWithEntities> warning() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
void confirmSave(
|
||||
bool someAreDisallowed,
|
||||
|
@ -116,58 +118,61 @@ private:
|
|||
|
||||
};
|
||||
|
||||
class GroupsInvitePrivacyController : public EditPrivacyController {
|
||||
class GroupsInvitePrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
bool hasOption(Option option) override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
bool hasOption(Option option) const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
};
|
||||
|
||||
class CallsPrivacyController : public EditPrivacyController {
|
||||
class CallsPrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
object_ptr<Ui::RpWidget> setupBelowWidget(
|
||||
not_null<Window::SessionController*> controller,
|
||||
not_null<QWidget*> parent) override;
|
||||
not_null<QWidget*> parent) const override;
|
||||
|
||||
};
|
||||
|
||||
class CallsPeer2PeerPrivacyController : public EditPrivacyController {
|
||||
class CallsPeer2PeerPrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
QString optionLabel(EditPrivacyBox::Option option) override;
|
||||
rpl::producer<TextWithEntities> warning() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
QString optionLabel(EditPrivacyBox::Option option) const override;
|
||||
rpl::producer<TextWithEntities> warning() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
};
|
||||
|
||||
|
@ -181,15 +186,16 @@ public:
|
|||
explicit ForwardsPrivacyController(
|
||||
not_null<Window::SessionController*> controller);
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<TextWithEntities> warning() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<TextWithEntities> warning() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
object_ptr<Ui::RpWidget> setupAboveWidget(
|
||||
not_null<QWidget*> parent,
|
||||
|
@ -206,39 +212,41 @@ private:
|
|||
|
||||
};
|
||||
|
||||
class ProfilePhotoPrivacyController : public EditPrivacyController {
|
||||
class ProfilePhotoPrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
bool hasOption(Option option) override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
bool hasOption(Option option) const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
};
|
||||
|
||||
class VoicesPrivacyController : public EditPrivacyController {
|
||||
class VoicesPrivacyController final : public EditPrivacyController {
|
||||
public:
|
||||
using Option = EditPrivacyBox::Option;
|
||||
using Exception = EditPrivacyBox::Exception;
|
||||
|
||||
explicit VoicesPrivacyController(not_null<::Main::Session*> session);
|
||||
|
||||
Key key() override;
|
||||
Key key() const override;
|
||||
|
||||
rpl::producer<QString> title() override;
|
||||
bool hasOption(Option option) override;
|
||||
rpl::producer<QString> optionsTitleKey() override;
|
||||
rpl::producer<QString> title() const override;
|
||||
bool hasOption(Option option) const override;
|
||||
rpl::producer<QString> optionsTitleKey() const override;
|
||||
rpl::producer<QString> exceptionButtonTextKey(
|
||||
Exception exception) override;
|
||||
rpl::producer<QString> exceptionBoxTitle(Exception exception) override;
|
||||
rpl::producer<QString> exceptionsDescription() override;
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionBoxTitle(
|
||||
Exception exception) const override;
|
||||
rpl::producer<QString> exceptionsDescription() const override;
|
||||
|
||||
private:
|
||||
rpl::lifetime _lifetime;
|
||||
|
|
Loading…
Add table
Reference in a new issue