mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-13 04:37:11 +02:00
Don't allow forwarding local items by drag.
This commit is contained in:
parent
715dff0a3e
commit
e54204b136
2 changed files with 38 additions and 19 deletions
|
@ -1731,7 +1731,9 @@ std::unique_ptr<QMimeData> HistoryInner::prepareDrag() {
|
|||
updateDragSelection(nullptr, nullptr, false);
|
||||
_selectScroll.cancel();
|
||||
|
||||
if (!urls.isEmpty()) mimeData->setUrls(urls);
|
||||
if (!urls.isEmpty()) {
|
||||
mimeData->setUrls(urls);
|
||||
}
|
||||
if (uponSelected && !_controller->adaptive().isOneColumn()) {
|
||||
auto selectedState = getSelectionState();
|
||||
if (selectedState.count > 0 && selectedState.count == selectedState.canForwardCount) {
|
||||
|
@ -1752,21 +1754,21 @@ std::unique_ptr<QMimeData> HistoryInner::prepareDrag() {
|
|||
== forwardSelectionState.canForwardCount)) {
|
||||
forwardIds = getSelectedItems();
|
||||
} else if (_mouseCursorState == CursorState::Date) {
|
||||
forwardIds = session().data().itemOrItsGroup(_mouseActionItem);
|
||||
const auto item = _mouseActionItem;
|
||||
if (item && item->allowsForward()) {
|
||||
forwardIds = session().data().itemOrItsGroup(item);
|
||||
}
|
||||
} else if ((pressedView->isHiddenByGroup() && pressedHandler)
|
||||
|| (pressedView->media()
|
||||
&& pressedView->media()->dragItemByHandler(pressedHandler))) {
|
||||
const auto item = _dragStateItem
|
||||
? _dragStateItem
|
||||
: _mouseActionItem;
|
||||
forwardIds = MessageIdsList(1, item->fullId());
|
||||
if (item && item->allowsForward()) {
|
||||
forwardIds = MessageIdsList(1, item->fullId());
|
||||
}
|
||||
}
|
||||
if (forwardIds.empty()) {
|
||||
return nullptr;
|
||||
}
|
||||
session().data().setMimeForwardIds(std::move(forwardIds));
|
||||
auto result = std::make_unique<QMimeData>();
|
||||
result->setData(u"application/x-td-forward"_q, "1");
|
||||
|
||||
if (pressedHandler) {
|
||||
const auto lnkDocument = reinterpret_cast<DocumentData*>(
|
||||
pressedHandler->property(
|
||||
|
@ -1774,12 +1776,23 @@ std::unique_ptr<QMimeData> HistoryInner::prepareDrag() {
|
|||
if (lnkDocument) {
|
||||
const auto filepath = lnkDocument->filepath(true);
|
||||
if (!filepath.isEmpty()) {
|
||||
QList<QUrl> urls;
|
||||
urls.push_back(QUrl::fromLocalFile(filepath));
|
||||
result->setUrls(urls);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (forwardIds.empty() && urls.isEmpty()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto result = std::make_unique<QMimeData>();
|
||||
if (!forwardIds.empty()) {
|
||||
session().data().setMimeForwardIds(std::move(forwardIds));
|
||||
result->setData(u"application/x-td-forward"_q, "1");
|
||||
}
|
||||
if (!urls.isEmpty()) {
|
||||
result->setUrls(urls);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return nullptr;
|
||||
|
|
|
@ -3778,12 +3778,7 @@ std::unique_ptr<QMimeData> ListWidget::prepareDrag() {
|
|||
forwardIds = MessageIdsList(1, exactItem->fullId());
|
||||
}
|
||||
}
|
||||
if (forwardIds.empty()) {
|
||||
return nullptr;
|
||||
}
|
||||
session().data().setMimeForwardIds(std::move(forwardIds));
|
||||
auto result = std::make_unique<QMimeData>();
|
||||
result->setData(u"application/x-td-forward"_q, "1");
|
||||
|
||||
if (pressedHandler) {
|
||||
const auto lnkDocument = reinterpret_cast<DocumentData*>(
|
||||
pressedHandler->property(
|
||||
|
@ -3791,12 +3786,23 @@ std::unique_ptr<QMimeData> ListWidget::prepareDrag() {
|
|||
if (lnkDocument) {
|
||||
const auto filepath = lnkDocument->filepath(true);
|
||||
if (!filepath.isEmpty()) {
|
||||
QList<QUrl> urls;
|
||||
urls.push_back(QUrl::fromLocalFile(filepath));
|
||||
result->setUrls(urls);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (forwardIds.empty() && urls.isEmpty()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto result = std::make_unique<QMimeData>();
|
||||
if (!forwardIds.empty()) {
|
||||
session().data().setMimeForwardIds(std::move(forwardIds));
|
||||
result->setData(u"application/x-td-forward"_q, "1");
|
||||
}
|
||||
if (!urls.isEmpty()) {
|
||||
result->setUrls(urls);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return nullptr;
|
||||
|
|
Loading…
Add table
Reference in a new issue