[poll-create] Changed default enabled settings.

This commit is contained in:
23rd
2026-03-29 20:56:00 +03:00
parent ee073f2e9b
commit d5f4c5366c
8 changed files with 34 additions and 25 deletions
+1 -1
View File
@@ -394,7 +394,7 @@ void ActivateBotCommand(ClickHandlerContext context, int row, int column) {
case ButtonType::RequestPoll: {
HideSingleUseKeyboard(controller, item);
auto chosen = PollData::Flags();
auto chosen = kDefaultPollCreateFlags;
auto disabled = PollData::Flags();
if (!button->data.isEmpty()) {
disabled |= PollData::Flag::Quiz;
+16 -16
View File
@@ -2752,11 +2752,19 @@ object_ptr<Ui::RpWidget> CreatePollBox::setupContent() {
*handled = true;
}, solution->lifetime());
const auto updateQuizDependentLocks = [=](bool checked) {
const auto updateAddOptionsLocked = [=] {
if (addOptions) {
addOptions->setToggleLocked(
(_disabled & PollData::Flag::OpenAnswers) || checked);
const auto locked = (_disabled & PollData::Flag::OpenAnswers)
|| quiz->toggled()
|| (showWhoVoted && !showWhoVoted->toggled());
addOptions->setToggleLocked(locked);
if (locked) {
state->addOptionsForceOff.fire(false);
}
}
};
const auto updateQuizDependentLocks = [=](bool checked) {
updateAddOptionsLocked();
revoting->setToggleLocked(
(_disabled & PollData::Flag::RevotingDisabled) || checked);
};
@@ -2788,19 +2796,11 @@ object_ptr<Ui::RpWidget> CreatePollBox::setupContent() {
}, multiple->lifetime());
if (addOptions && showWhoVoted) {
const auto updateShowWhoVotedLock = [=](bool openAnswers) {
showWhoVoted->setToggleLocked(
(_disabled & PollData::Flag::PublicVotes)
|| openAnswers);
if (openAnswers) {
state->showWhoVotedForceOn.fire(true);
}
};
updateShowWhoVotedLock(addOptions->toggled());
addOptions->toggledChanges(
) | rpl::on_next([=](bool checked) {
updateShowWhoVotedLock(checked);
}, addOptions->lifetime());
updateAddOptionsLocked();
showWhoVoted->toggledChanges(
) | rpl::on_next([=](bool) {
updateAddOptionsLocked();
}, showWhoVoted->lifetime());
}
const auto isValidQuestion = [=] {
+5
View File
@@ -131,6 +131,11 @@ private:
};
inline constexpr auto kDefaultPollCreateFlags = PollData::Flag::PublicVotes
| PollData::Flag::MultiChoice
| PollData::Flag::OpenAnswers
| PollData::Flag::ShuffleAnswers;
[[nodiscard]] QByteArray PollOptionFromLink(const QString &value);
[[nodiscard]] QString PollOptionToLink(const QByteArray &option);
@@ -2751,14 +2751,14 @@ std::unique_ptr<Ui::DropdownMenu> MakeAttachBotsMenu(
|| action.history->peer->starsPerMessageChecked())
? SendMenu::Type::SilentOnly
: SendMenu::Type::Scheduled;
const auto flag = PollData::Flags();
const auto chosen = kDefaultPollCreateFlags;
Window::PeerMenuCreatePoll(
controller,
peer,
action.replyTo,
action.options.suggest,
flag,
flag,
chosen,
PollData::Flags(),
source,
{ sendMenuType });
}, &st::menuIconCreatePoll);
@@ -43,7 +43,9 @@ DetailedSettingsButton::DetailedSettingsButton(
false,
[this] { rtlupdate(toggleRect()); });
addClickHandler([=] {
_toggle->setChecked(!_toggle->checked(), anim::type::normal);
if (!_toggleLocked) {
_toggle->setChecked(!_toggle->checked(), anim::type::normal);
}
});
std::move(
toggled
@@ -88,6 +90,7 @@ DetailedSettingsButton::clickAreaEvents() const {
}
void DetailedSettingsButton::setToggleLocked(bool locked) {
_toggleLocked = locked;
_toggle->setLocked(locked);
}
@@ -64,6 +64,7 @@ private:
int _descriptionWidth = 0;
int _descriptionTop = 0;
int _descriptionHeight = 0;
bool _toggleLocked = false;
};
@@ -1271,17 +1271,17 @@ void Filler::addCreatePoll() {
|| _peer->starsPerMessageChecked())
? SendMenu::Type::SilentOnly
: SendMenu::Type::Scheduled;
const auto flag = PollData::Flags();
const auto replyTo = _request.currentReplyTo;
const auto suggest = _request.currentSuggest;
const auto chosen = kDefaultPollCreateFlags;
auto callback = [=] {
PeerMenuCreatePoll(
controller,
peer,
replyTo,
suggest,
flag,
flag,
chosen,
PollData::Flags(),
source,
{ sendMenuType });
};
@@ -123,7 +123,7 @@ void PeerMenuCreatePoll(
not_null<PeerData*> peer,
FullReplyTo replyTo = FullReplyTo(),
SuggestOptions suggest = SuggestOptions(),
PollData::Flags chosen = PollData::Flags(),
PollData::Flags chosen = kDefaultPollCreateFlags,
PollData::Flags disabled = PollData::Flags(),
Api::SendType sendType = Api::SendType::Normal,
SendMenu::Details sendMenuDetails = SendMenu::Details());