mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Removed selection marks from unselectable messages.
This commit is contained in:
parent
059a4cf0d8
commit
ccb41f778e
9 changed files with 24 additions and 12 deletions
|
@ -666,7 +666,8 @@ bool InnerWidget::elementUnderCursor(
|
||||||
return (Element::Hovered() == view);
|
return (Element::Hovered() == view);
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryView::SelectionModeResult InnerWidget::elementInSelectionMode() {
|
HistoryView::SelectionModeResult InnerWidget::elementInSelectionMode(
|
||||||
|
const HistoryView::Element *) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,8 @@ public:
|
||||||
HistoryView::Context elementContext() override;
|
HistoryView::Context elementContext() override;
|
||||||
bool elementUnderCursor(
|
bool elementUnderCursor(
|
||||||
not_null<const HistoryView::Element*> view) override;
|
not_null<const HistoryView::Element*> view) override;
|
||||||
HistoryView::SelectionModeResult elementInSelectionMode() override;
|
HistoryView::SelectionModeResult elementInSelectionMode(
|
||||||
|
const HistoryView::Element *view) override;
|
||||||
bool elementIntersectsRange(
|
bool elementIntersectsRange(
|
||||||
not_null<const HistoryView::Element*> view,
|
not_null<const HistoryView::Element*> view,
|
||||||
int from,
|
int from,
|
||||||
|
|
|
@ -155,7 +155,11 @@ public:
|
||||||
not_null<const Element*> view) override {
|
not_null<const Element*> view) override {
|
||||||
return (Element::Moused() == view);
|
return (Element::Moused() == view);
|
||||||
}
|
}
|
||||||
HistoryView::SelectionModeResult elementInSelectionMode() override {
|
HistoryView::SelectionModeResult elementInSelectionMode(
|
||||||
|
const Element *view) override {
|
||||||
|
if (view && view->data()->isSponsored()) {
|
||||||
|
return HistoryView::SelectionModeResult();
|
||||||
|
}
|
||||||
return _widget
|
return _widget
|
||||||
? _widget->inSelectionMode()
|
? _widget->inSelectionMode()
|
||||||
: HistoryView::SelectionModeResult();
|
: HistoryView::SelectionModeResult();
|
||||||
|
|
|
@ -111,7 +111,8 @@ bool DefaultElementDelegate::elementUnderCursor(
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectionModeResult DefaultElementDelegate::elementInSelectionMode() {
|
SelectionModeResult DefaultElementDelegate::elementInSelectionMode(
|
||||||
|
const Element *view) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,8 @@ class ElementDelegate {
|
||||||
public:
|
public:
|
||||||
virtual Context elementContext() = 0;
|
virtual Context elementContext() = 0;
|
||||||
virtual bool elementUnderCursor(not_null<const Element*> view) = 0;
|
virtual bool elementUnderCursor(not_null<const Element*> view) = 0;
|
||||||
virtual SelectionModeResult elementInSelectionMode() = 0;
|
virtual SelectionModeResult elementInSelectionMode(
|
||||||
|
const Element *view) = 0;
|
||||||
virtual bool elementIntersectsRange(
|
virtual bool elementIntersectsRange(
|
||||||
not_null<const Element*> view,
|
not_null<const Element*> view,
|
||||||
int from,
|
int from,
|
||||||
|
@ -136,7 +137,7 @@ public:
|
||||||
class DefaultElementDelegate : public ElementDelegate {
|
class DefaultElementDelegate : public ElementDelegate {
|
||||||
public:
|
public:
|
||||||
bool elementUnderCursor(not_null<const Element*> view) override;
|
bool elementUnderCursor(not_null<const Element*> view) override;
|
||||||
SelectionModeResult elementInSelectionMode() override;
|
SelectionModeResult elementInSelectionMode(const Element *view) override;
|
||||||
bool elementIntersectsRange(
|
bool elementIntersectsRange(
|
||||||
not_null<const Element*> view,
|
not_null<const Element*> view,
|
||||||
int from,
|
int from,
|
||||||
|
|
|
@ -1782,7 +1782,11 @@ bool ListWidget::elementUnderCursor(
|
||||||
return (_overElement == view);
|
return (_overElement == view);
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectionModeResult ListWidget::elementInSelectionMode() {
|
SelectionModeResult ListWidget::elementInSelectionMode(
|
||||||
|
const HistoryView::Element *view) {
|
||||||
|
if (view && !_delegate->listIsItemGoodForSelection(view->data())) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
return inSelectionMode();
|
return inSelectionMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -391,7 +391,7 @@ public:
|
||||||
// ElementDelegate interface.
|
// ElementDelegate interface.
|
||||||
Context elementContext() override;
|
Context elementContext() override;
|
||||||
bool elementUnderCursor(not_null<const Element*> view) override;
|
bool elementUnderCursor(not_null<const Element*> view) override;
|
||||||
SelectionModeResult elementInSelectionMode() override;
|
SelectionModeResult elementInSelectionMode(const Element *view) override;
|
||||||
bool elementIntersectsRange(
|
bool elementIntersectsRange(
|
||||||
not_null<const Element*> view,
|
not_null<const Element*> view,
|
||||||
int from,
|
int from,
|
||||||
|
|
|
@ -1100,7 +1100,7 @@ void Message::draw(Painter &p, const PaintContext &context) const {
|
||||||
if (hasGesture) {
|
if (hasGesture) {
|
||||||
p.translate(context.gestureHorizontal.translation, 0);
|
p.translate(context.gestureHorizontal.translation, 0);
|
||||||
}
|
}
|
||||||
const auto selectionModeResult = delegate()->elementInSelectionMode();
|
const auto selectionModeResult = delegate()->elementInSelectionMode(this);
|
||||||
const auto selectionTranslation = (selectionModeResult.progress > 0)
|
const auto selectionTranslation = (selectionModeResult.progress > 0)
|
||||||
? (selectionModeResult.progress
|
? (selectionModeResult.progress
|
||||||
* AdditionalSpaceForSelectionCheckbox(this, g))
|
* AdditionalSpaceForSelectionCheckbox(this, g))
|
||||||
|
@ -3868,7 +3868,7 @@ bool Message::displayFastReply() const {
|
||||||
return hasFastReply()
|
return hasFastReply()
|
||||||
&& data()->isRegular()
|
&& data()->isRegular()
|
||||||
&& canSendAnything()
|
&& canSendAnything()
|
||||||
&& !delegate()->elementInSelectionMode().inSelectionMode;
|
&& !delegate()->elementInSelectionMode(this).inSelectionMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Message::displayRightActionComments() const {
|
bool Message::displayRightActionComments() const {
|
||||||
|
@ -4032,7 +4032,7 @@ void Message::drawRightAction(
|
||||||
|
|
||||||
ClickHandlerPtr Message::rightActionLink(
|
ClickHandlerPtr Message::rightActionLink(
|
||||||
std::optional<QPoint> pressPoint) const {
|
std::optional<QPoint> pressPoint) const {
|
||||||
if (delegate()->elementInSelectionMode().progress > 0) {
|
if (delegate()->elementInSelectionMode(this).progress > 0) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
ensureRightAction();
|
ensureRightAction();
|
||||||
|
|
|
@ -898,7 +898,7 @@ void RepliesWidget::setupSwipeReply() {
|
||||||
}
|
}
|
||||||
}, [=, show = controller()->uiShow()](int cursorTop) {
|
}, [=, show = controller()->uiShow()](int cursorTop) {
|
||||||
auto result = HistoryView::SwipeHandlerFinishData();
|
auto result = HistoryView::SwipeHandlerFinishData();
|
||||||
if (_inner->elementInSelectionMode().inSelectionMode) {
|
if (_inner->elementInSelectionMode(nullptr).inSelectionMode) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
const auto view = _inner->lookupItemByY(cursorTop);
|
const auto view = _inner->lookupItemByY(cursorTop);
|
||||||
|
|
Loading…
Add table
Reference in a new issue