Improve code style a bit.

This commit is contained in:
John Preston 2019-03-19 19:45:46 +04:00
parent 4148099115
commit 241526f127
5 changed files with 114 additions and 115 deletions

View File

@ -23,7 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace { namespace {
void AddRoundButton( void AddRadioButton(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
HistoryVisibility value, HistoryVisibility value,
LangKey groupTextKey, LangKey groupTextKey,
@ -52,7 +52,6 @@ void FillContent(
not_null<PeerData*> peer, not_null<PeerData*> peer,
std::shared_ptr<Ui::RadioenumGroup<HistoryVisibility>> historyVisibility, std::shared_ptr<Ui::RadioenumGroup<HistoryVisibility>> historyVisibility,
std::optional<HistoryVisibility> savedValue = std::nullopt) { std::optional<HistoryVisibility> savedValue = std::nullopt) {
const auto canEdit = [&] { const auto canEdit = [&] {
if (const auto chat = peer->asChat()) { if (const auto chat = peer->asChat()) {
return chat->canEditPreHistoryHidden(); return chat->canEditPreHistoryHidden();
@ -75,21 +74,22 @@ void FillContent(
historyVisibility->setValue(defaultValue); historyVisibility->setValue(defaultValue);
const auto result = parent->add(object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>( const auto result = parent->add(
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
parent, parent,
object_ptr<Ui::VerticalLayout>(parent), object_ptr<Ui::VerticalLayout>(parent),
st::editPeerHistoryVisibilityMargins)); st::editPeerHistoryVisibilityMargins));
const auto container = result->entity(); const auto container = result->entity();
Expects(historyVisibility != nullptr); Assert(historyVisibility != nullptr);
AddRoundButton( AddRadioButton(
container, container,
HistoryVisibility::Visible, HistoryVisibility::Visible,
lng_manage_history_visibility_shown, lng_manage_history_visibility_shown,
lng_manage_history_visibility_shown_about, lng_manage_history_visibility_shown_about,
historyVisibility); historyVisibility);
AddRoundButton( AddRadioButton(
container, container,
HistoryVisibility::Hidden, HistoryVisibility::Hidden,
lng_manage_history_visibility_hidden, lng_manage_history_visibility_hidden,
@ -130,6 +130,10 @@ void EditPeerHistoryVisibilityBox::prepare() {
void EditPeerHistoryVisibilityBox::setupContent() { void EditPeerHistoryVisibilityBox::setupContent() {
const auto content = Ui::CreateChild<Ui::VerticalLayout>(this); const auto content = Ui::CreateChild<Ui::VerticalLayout>(this);
FillContent(content, _peer, _historyVisibility, _historyVisibilitySavedValue); FillContent(
content,
_peer,
_historyVisibility,
_historyVisibilitySavedValue);
setDimensionsToContent(st::boxWidth, content); setDimensionsToContent(st::boxWidth, content);
} }

View File

@ -31,12 +31,11 @@ enum class HistoryVisibility {
class EditPeerHistoryVisibilityBox : public BoxContent { class EditPeerHistoryVisibilityBox : public BoxContent {
public: public:
EditPeerHistoryVisibilityBox( EditPeerHistoryVisibilityBox(
QWidget*, QWidget*,
not_null<PeerData*> peer, not_null<PeerData*> peer,
FnMut<void(HistoryVisibility)> savedCallback, FnMut<void(HistoryVisibility)> savedCallback,
std::optional<HistoryVisibility> historyVisibilitySavedValue = std::nullopt); std::optional<HistoryVisibility> historyVisibilitySavedValue = {});
protected: protected:
void prepare() override; void prepare() override;
@ -48,6 +47,6 @@ private:
FnMut<void(HistoryVisibility)> _savedCallback; FnMut<void(HistoryVisibility)> _savedCallback;
std::optional<HistoryVisibility> _historyVisibilitySavedValue; std::optional<HistoryVisibility> _historyVisibilitySavedValue;
std::shared_ptr<Ui::RadioenumGroup<HistoryVisibility>> _historyVisibility = nullptr; std::shared_ptr<Ui::RadioenumGroup<HistoryVisibility>> _historyVisibility;
}; };

View File

@ -492,40 +492,37 @@ void Controller::showEditPeerTypeBox(std::optional<LangKey> error) {
_usernameSavedValue = publicLink; _usernameSavedValue = publicLink;
refreshHistoryVisibility(); refreshHistoryVisibility();
}; };
Ui::show(Box<EditPeerTypeBox>( Ui::show(
Box<EditPeerTypeBox>(
_peer, _peer,
boxCallback, boxCallback,
_privacySavedValue, _privacySavedValue,
_usernameSavedValue, _usernameSavedValue,
error error),
), LayerOption::KeepOther); LayerOption::KeepOther);
} }
void Controller::fillPrivacyTypeButton() { void Controller::fillPrivacyTypeButton() {
Expects(_controls.buttonsLayout != nullptr); Expects(_controls.buttonsLayout != nullptr);
// Create Privacy Button. // Create Privacy Button.
_privacySavedValue = (_peer->isChannel() _privacySavedValue = (_peer->isChannel()
&& _peer->asChannel()->isPublic()) && _peer->asChannel()->isPublic())
? Privacy::Public ? Privacy::Public
: Privacy::Private; : Privacy::Private;
const auto buttonCallback = [=] {
showEditPeerTypeBox();
};
AddButtonWithText( AddButtonWithText(
_controls.buttonsLayout, _controls.buttonsLayout,
std::move(Lang::Viewer((_peer->isChat() || _peer->isMegagroup()) Lang::Viewer((_peer->isChat() || _peer->isMegagroup())
? lng_manage_peer_group_type ? lng_manage_peer_group_type
: lng_manage_peer_channel_type)), : lng_manage_peer_channel_type),
_updadePrivacyType.events( _updadePrivacyType.events(
) | rpl::map([](Privacy flag) { ) | rpl::map([](Privacy flag) {
return lang(Privacy::Public == flag return lang(Privacy::Public == flag
? lng_manage_public_peer_title ? lng_manage_public_peer_title
: lng_manage_private_peer_title); : lng_manage_private_peer_title);
}), }),
buttonCallback); [=] { showEditPeerTypeBox(); });
_updadePrivacyType.fire(std::move(_privacySavedValue.value())); _updadePrivacyType.fire(std::move(_privacySavedValue.value()));
} }
@ -533,13 +530,13 @@ void Controller::fillPrivacyTypeButton() {
void Controller::fillInviteLinkButton() { void Controller::fillInviteLinkButton() {
Expects(_controls.buttonsLayout != nullptr); Expects(_controls.buttonsLayout != nullptr);
const auto boxCallback = [=](Privacy checked, QString publicLink) {}; const auto boxCallback = [=](Privacy checked, QString publicLink) {
};
const auto buttonCallback = [=] { const auto buttonCallback = [=] {
Ui::show(Box<EditPeerTypeBox>( Ui::show(
_peer, Box<EditPeerTypeBox>(_peer, boxCallback),
boxCallback LayerOption::KeepOther);
), LayerOption::KeepOther);
}; };
AddButtonWithText( AddButtonWithText(
@ -591,18 +588,19 @@ void Controller::fillHistoryVisibilityButton() {
_historyVisibilitySavedValue = checked; _historyVisibilitySavedValue = checked;
}; };
const auto buttonCallback = [=] { const auto buttonCallback = [=] {
Ui::show(Box<EditPeerHistoryVisibilityBox>( Ui::show(
Box<EditPeerHistoryVisibilityBox>(
_peer, _peer,
boxCallback, boxCallback,
_historyVisibilitySavedValue _historyVisibilitySavedValue),
), LayerOption::KeepOther); LayerOption::KeepOther);
}; };
AddButtonWithText( AddButtonWithText(
container, container,
std::move(Lang::Viewer(lng_manage_history_visibility_title)), std::move(Lang::Viewer(lng_manage_history_visibility_title)),
updateHistoryVisibility->events( updateHistoryVisibility->events(
) | rpl::map([](HistoryVisibility flag) { ) | rpl::map([](HistoryVisibility flag) {
return lang(HistoryVisibility::Visible == flag return lang((HistoryVisibility::Visible == flag)
? lng_manage_history_visibility_shown ? lng_manage_history_visibility_shown
: lng_manage_history_visibility_hidden); : lng_manage_history_visibility_hidden);
}), }),
@ -618,6 +616,7 @@ void Controller::fillHistoryVisibilityButton() {
void Controller::fillManageSection() { void Controller::fillManageSection() {
Expects(_controls.buttonsLayout != nullptr); Expects(_controls.buttonsLayout != nullptr);
const auto navigation = App::wnd()->controller(); const auto navigation = App::wnd()->controller();
const auto chat = _peer->asChat(); const auto chat = _peer->asChat();
@ -648,7 +647,6 @@ void Controller::fillManageSection() {
: chat->canEditPreHistoryHidden(); : chat->canEditPreHistoryHidden();
}(); }();
const auto canEditPermissions = [=] { const auto canEditPermissions = [=] {
return isChannel return isChannel
? channel->canEditPermissions() ? channel->canEditPermissions()
@ -705,7 +703,8 @@ void Controller::fillManageSection() {
|| canEditSignatures || canEditSignatures
|| canEditInviteLink || canEditInviteLink
|| canEditUsername) { || canEditUsername) {
AddSkip(_controls.buttonsLayout, AddSkip(
_controls.buttonsLayout,
st::editPeerTopButtonsLayoutSkip, st::editPeerTopButtonsLayoutSkip,
st::editPeerTopButtonsLayoutSkipCustomBottom); st::editPeerTopButtonsLayoutSkipCustomBottom);
} }
@ -784,9 +783,9 @@ void Controller::fillManageSection() {
if (canDeleteChannel) { if (canDeleteChannel) {
AddButtonDelete( AddButtonDelete(
_controls.buttonsLayout, _controls.buttonsLayout,
std::move(Lang::Viewer(_isGroup Lang::Viewer(_isGroup
? lng_profile_delete_group ? lng_profile_delete_group
: lng_profile_delete_channel)), : lng_profile_delete_channel),
[=]{ deleteWithConfirmation(); } [=]{ deleteWithConfirmation(); }
); );
} }
@ -868,9 +867,8 @@ bool Controller::validateDescription(Saving &to) const {
} }
bool Controller::validateHistoryVisibility(Saving &to) const { bool Controller::validateHistoryVisibility(Saving &to) const {
if (!_controls.historyVisibilityWrap) return true; if (!_controls.historyVisibilityWrap
|| !_controls.historyVisibilityWrap->toggled()
if (!_controls.historyVisibilityWrap->toggled()
|| (_privacySavedValue == Privacy::Public)) { || (_privacySavedValue == Privacy::Public)) {
return true; return true;
} }
@ -895,12 +893,12 @@ void Controller::save() {
} }
if (const auto saving = validate()) { if (const auto saving = validate()) {
_savingData = *saving; _savingData = *saving;
pushSaveStage([this] { saveUsername(); }); pushSaveStage([=] { saveUsername(); });
pushSaveStage([this] { saveTitle(); }); pushSaveStage([=] { saveTitle(); });
pushSaveStage([this] { saveDescription(); }); pushSaveStage([=] { saveDescription(); });
pushSaveStage([this] { saveHistoryVisibility(); }); pushSaveStage([=] { saveHistoryVisibility(); });
pushSaveStage([this] { saveSignatures(); }); pushSaveStage([=] { saveSignatures(); });
pushSaveStage([this] { savePhoto(); }); pushSaveStage([=] { savePhoto(); });
continueSave(); continueSave();
} }
} }
@ -1136,9 +1134,9 @@ void Controller::deleteWithConfirmation() {
} }
void Controller::deleteChannel() { void Controller::deleteChannel() {
const auto channel = _peer->asChannel(); Expects(_peer->isChannel());
Assert(channel != nullptr);
const auto channel = _peer->asChannel();
const auto chat = channel->migrateFrom(); const auto chat = channel->migrateFrom();
Ui::hideLayer(); Ui::hideLayer();
@ -1229,7 +1227,8 @@ bool EditPeerInfoBox::Available(not_null<PeerData*> peer) {
|| channel->canViewBanned() || channel->canViewBanned()
|| channel->canEditInformation() || channel->canEditInformation()
|| channel->canEditPermissions() || channel->canEditPermissions()
|| (channel->hasAdminRights() || channel->amCreator()); || channel->hasAdminRights()
|| channel->amCreator();
} else { } else {
return false; return false;
} }

View File

@ -84,7 +84,6 @@ public:
} }
private: private:
struct Controls { struct Controls {
std::shared_ptr<Ui::RadioenumGroup<Privacy>> privacy; std::shared_ptr<Ui::RadioenumGroup<Privacy>> privacy;
Ui::SlideWrap<Ui::RpWidget> *usernameWrap = nullptr; Ui::SlideWrap<Ui::RpWidget> *usernameWrap = nullptr;
@ -165,7 +164,8 @@ Controller::Controller(
, _privacySavedValue(privacySavedValue) , _privacySavedValue(privacySavedValue)
, _usernameSavedValue(usernameSavedValue) , _usernameSavedValue(usernameSavedValue)
, _isGroup(_peer->isChat() || _peer->isMegagroup()) , _isGroup(_peer->isChat() || _peer->isMegagroup())
, _isInviteLink(!_privacySavedValue.has_value() && !_usernameSavedValue.has_value()) , _isInviteLink(!_privacySavedValue.has_value()
&& !_usernameSavedValue.has_value())
, _isAllowSave(!_usernameSavedValue.value_or(QString()).isEmpty()) , _isAllowSave(!_usernameSavedValue.value_or(QString()).isEmpty())
, _wrap(container) , _wrap(container)
, _checkUsernameTimer([=] { checkUsernameAvailability(); }) { , _checkUsernameTimer([=] { checkUsernameAvailability(); }) {
@ -194,7 +194,6 @@ void Controller::createContent() {
} }
} }
void Controller::addRoundButton( void Controller::addRoundButton(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
Privacy value, Privacy value,
@ -223,7 +222,6 @@ void Controller::addRoundButton(
void Controller::fillPrivaciesButtons( void Controller::fillPrivaciesButtons(
not_null<Ui::VerticalLayout*> parent, not_null<Ui::VerticalLayout*> parent,
std::optional<Privacy> savedValue) { std::optional<Privacy> savedValue) {
const auto canEditUsername = [&] { const auto canEditUsername = [&] {
if (const auto chat = _peer->asChat()) { if (const auto chat = _peer->asChat()) {
return chat->canEditUsername(); return chat->canEditUsername();

View File

@ -39,7 +39,6 @@ enum class UsernameState {
class EditPeerTypeBox : public BoxContent { class EditPeerTypeBox : public BoxContent {
public: public:
EditPeerTypeBox( EditPeerTypeBox(
QWidget*, QWidget*,
not_null<PeerData*> p, not_null<PeerData*> p,
@ -56,9 +55,9 @@ private:
not_null<PeerData*> _peer; not_null<PeerData*> _peer;
FnMut<void(Privacy, QString)> _savedCallback; FnMut<void(Privacy, QString)> _savedCallback;
std::optional<Privacy> _privacySavedValue = std::nullopt; std::optional<Privacy> _privacySavedValue;
std::optional<QString> _usernameSavedValue = std::nullopt; std::optional<QString> _usernameSavedValue;
std::optional<LangKey> _usernameError = std::nullopt; std::optional<LangKey> _usernameError;
rpl::event_stream<> _focusRequests; rpl::event_stream<> _focusRequests;