MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / dropEvent

Method dropEvent

launcher/ui/instanceview/InstanceView.cpp:638–682  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

636}
637
638void InstanceView::dropEvent(QDropEvent* event)
639{
640 executeDelayedItemsLayout();
641
642 m_lastDragPosition = QPoint();
643
644 stopAutoScroll();
645 setState(NoState);
646
647 auto mimedata = event->mimeData();
648
649 if (event->source() == this) {
650 if (event->possibleActions() & Qt::MoveAction) {
651 std::pair<VisualGroup*, VisualGroup::HitResults> dropPos = rowDropPos(event->pos());
652 const VisualGroup* group = dropPos.first;
653 auto hitResult = dropPos.second;
654
655 if (hitResult == VisualGroup::HitResult::NoHit) {
656 viewport()->update();
657 return;
658 }
659 auto instanceId = QString::fromUtf8(mimedata->data("application/x-instanceid"));
660 auto instanceList = APPLICATION->instances().get();
661 instanceList->setInstanceGroup(instanceId, group->text);
662 event->setDropAction(Qt::MoveAction);
663 event->accept();
664
665 updateGeometries();
666 viewport()->update();
667 }
668 return;
669 }
670
671 // check if the action is supported
672 if (!mimedata) {
673 return;
674 }
675
676 // files dropped from outside?
677 if (mimedata->hasUrls()) {
678 auto urls = mimedata->urls();
679 event->accept();
680 emit droppedURLs(urls);
681 }
682}
683
684void InstanceView::startDrag(Qt::DropActions supportedActions)
685{

Callers

nothing calls this directly

Calls 7

instancesMethod · 0.80
setInstanceGroupMethod · 0.80
mimeDataMethod · 0.45
updateMethod · 0.45
dataMethod · 0.45
getMethod · 0.45
acceptMethod · 0.45

Tested by

no test coverage detected