MCPcopy Create free account
hub / github.com/OpenBoard-org/OpenBoard / ProcessDropEvent

Method ProcessDropEvent

src/api/UBWidgetUniboardAPI.cpp:508–583  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

506}
507
508bool UBWidgetUniboardAPI::ProcessDropEvent(QGraphicsSceneDragDropEvent *event)
509{
510 if (!mProcessFileDrop) {
511 return false;
512 }
513
514 const QMimeData *pMimeData = event->mimeData();
515
516 QString destFileName;
517 QString contentType;
518 bool downloaded = false;
519
520 Qt::DropActions dropActions = event->possibleActions();
521 Qt::MouseButtons dropMouseButtons = event->buttons();
522 Qt::KeyboardModifiers dropModifiers = event->modifiers();
523 QMimeData *dropMimeData = new QMimeData;
524 qDebug() << event->possibleActions();
525
526
527 if (pMimeData->hasHtml()) { //Dropping element from web browser
528 QString qsHtml = pMimeData->html();
529 QString url = UBApplication::urlFromHtml(qsHtml);
530
531 if(!url.isEmpty()) {
532 QString str = "test string";
533
534 QMimeData mimeData;
535 mimeData.setData(tMimeText, str.toLatin1());
536
537 sDownloadFileDesc desc;
538 desc.dest = sDownloadFileDesc::graphicsWidget;
539 desc.modal = true;
540 desc.srcUrl = url;
541 desc.currentSize = 0;
542 desc.name = QFileInfo(url).fileName();
543 desc.totalSize = 0; // The total size will be retrieved during the download
544
545 desc.dropPoint = event->pos().toPoint(); //Passing pure event point. No modifications
546 desc.dropActions = dropActions;
547 desc.dropMouseButtons = dropMouseButtons;
548 desc.dropModifiers = dropModifiers;
549
550 registerIDWidget(UBDownloadManager::downloadManager()->addFileToDownload(desc));
551
552 }
553
554 } else if (pMimeData->hasUrls()) { //Local file processing
555 QUrl curUrl = pMimeData->urls().constFirst();
556 QString sUrl = curUrl.toString();
557
558 if (sUrl.startsWith("file://") || sUrl.startsWith("/")) {
559 QString fileName = curUrl.toLocalFile();
560 QString extention = UBFileSystemUtils::extension(fileName);
561 contentType = UBFileSystemUtils::mimeTypeFromFileName(fileName);
562
563 if (supportedTypeHeader(contentType)) {
564 destFileName = getObjDir() + QUuid::createUuid().toString() + "." + extention;
565

Callers 1

processDropEventMethod · 0.80

Calls 8

buttonsMethod · 0.80
htmlMethod · 0.80
posMethod · 0.80
addFileToDownloadMethod · 0.80
setMimeDataMethod · 0.80
mimeDataMethod · 0.45
isEmptyMethod · 0.45
setDataMethod · 0.45

Tested by

no test coverage detected