Allow select single album part under spoiler.
This commit is contained in:
parent
d6d76c8477
commit
aa29d1c619
|
@ -2362,9 +2362,14 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto addSelectMessageAction = [&](
|
const auto asGroup = !Element::Moused()
|
||||||
not_null<HistoryItem*> item,
|
|| (Element::Moused() != Element::Hovered())
|
||||||
bool asGroup = true) {
|
|| (Element::Moused()->pointState(
|
||||||
|
mapPointToItem(
|
||||||
|
mapFromGlobal(_mousePosition),
|
||||||
|
Element::Moused())
|
||||||
|
) != HistoryView::PointState::GroupPart);
|
||||||
|
const auto addSelectMessageAction = [&](not_null<HistoryItem*> item) {
|
||||||
if (item->isRegular()
|
if (item->isRegular()
|
||||||
&& !item->isService()
|
&& !item->isService()
|
||||||
&& !hasSelectRestriction()) {
|
&& !hasSelectRestriction()) {
|
||||||
|
@ -2523,7 +2528,7 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||||
}, &st::menuIconReport);
|
}, &st::menuIconReport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
addSelectMessageAction(item, false);
|
addSelectMessageAction(item);
|
||||||
if (isUponSelected != -2 && blockSender) {
|
if (isUponSelected != -2 && blockSender) {
|
||||||
_menu->addAction(tr::lng_profile_block_user(tr::now), [=] {
|
_menu->addAction(tr::lng_profile_block_user(tr::now), [=] {
|
||||||
blockSenderItem(itemId);
|
blockSenderItem(itemId);
|
||||||
|
@ -2540,6 +2545,9 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||||
: nullptr;
|
: nullptr;
|
||||||
return result ? groupLeaderOrSelf(result) : nullptr;
|
return result ? groupLeaderOrSelf(result) : nullptr;
|
||||||
}();
|
}();
|
||||||
|
const auto partItemOrLeader = (asGroup || !albumPartItem)
|
||||||
|
? item
|
||||||
|
: albumPartItem;
|
||||||
const auto itemId = item ? item->fullId() : FullMsgId();
|
const auto itemId = item ? item->fullId() : FullMsgId();
|
||||||
const auto canDelete = item
|
const auto canDelete = item
|
||||||
&& item->canDelete()
|
&& item->canDelete()
|
||||||
|
@ -2576,7 +2584,7 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||||
}
|
}
|
||||||
addItemActions(item, item);
|
addItemActions(item, item);
|
||||||
} else {
|
} else {
|
||||||
addReplyAction(item);
|
addReplyAction(partItemOrLeader);
|
||||||
addItemActions(item, albumPartItem);
|
addItemActions(item, albumPartItem);
|
||||||
if (item && !isUponSelected) {
|
if (item && !isUponSelected) {
|
||||||
const auto media = (view ? view->media() : nullptr);
|
const auto media = (view ? view->media() : nullptr);
|
||||||
|
@ -2723,7 +2731,7 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||||
}, &st::menuIconReport);
|
}, &st::menuIconReport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
addSelectMessageAction(item);
|
addSelectMessageAction(partItemOrLeader);
|
||||||
if (isUponSelected != -2 && canBlockSender) {
|
if (isUponSelected != -2 && canBlockSender) {
|
||||||
_menu->addAction(tr::lng_profile_block_user(tr::now), [=] {
|
_menu->addAction(tr::lng_profile_block_user(tr::now), [=] {
|
||||||
blockSenderAsGroup(itemId);
|
blockSenderAsGroup(itemId);
|
||||||
|
|
Loading…
Reference in New Issue