def dropEvent(self, event: QtGui.QDropEvent): if event.mimeData().hasText(): mime = event.mimeData() transectData = json.loads(mime.text()) transect = Transect(transectData["name"], transectData["numPhotos"]) if self.contains(transect): QtWidgets.QMessageBox.warning( self, "ImageWAO", f"Cannot move transect to this person because they already own the transect. {transect}", QtWidgets.QMessageBox.Ok, ) event.ignore() else: dragTransect = self.addTransect(transect) dragTransect.setBackgroundColor( QtGui.QColor(transectData["color"])) self._sortTransects() if event.source() in self.children(): event.setDropAction(QtCore.Qt.MoveAction) else: event.setDropAction(QtCore.Qt.MoveAction) event.accept() self.contentsChanged.emit() else: event.ignore()
def handle_drop_event(e: QDropEvent, callback): for url in e.mimeData().urls(): if url.isLocalFile(): callback(url.toLocalFile()) e.accept() return e.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasUrls(): files = self._get_drop_event_files(event.mimeData()) if files: for file in files: self.main_menu.file_menu.guess_open_file(file) event.accept() return True event.ignore() return False
def drop_event(self, e: QDropEvent): mime: QMimeData = e.mimeData() src = e.source() # -- File drop -- if mime.hasUrls(): destination_index = self.view.indexAt(e.pos()) for url in mime.urls(): local_path = Path(url.toLocalFile()) if not path_exists(local_path): continue self.file_drop(local_path, destination_index) e.accept() return # --- Internal View Drops --- if not isinstance(src, self.view.__class__): e.ignore() return e.setDropAction(Qt.MoveAction) if src is not self.view: e.setDropAction(Qt.CopyAction) if e.keyboardModifiers() == Qt.ShiftModifier: e.setDropAction(Qt.CopyAction) # -- Copy drop -- if e.dropAction() is Qt.CopyAction: destination_index = self.view.indexAt(e.pos()) self.copy_drop(src, destination_index) e.accept() # -- Drag move -- if e.dropAction() is Qt.MoveAction: destination_index = self.view.indexAt(e.pos()) self.move_drop(destination_index) # Ignore default view behaviour e.ignore()
def dropEvent(self, event: QtGui.QDropEvent) -> None: if event.mimeData().hasUrls(): for url in event.mimeData().urls(): self.loadFile(url.toLocalFile()) break event.acceptProposedAction() elif event.mimeData().hasText(): text = event.mimeData().text() data = np.genfromtxt(text.split("\n"), usecols=0, dtype=np.float64) data = data[~np.isnan(data)] if data.size == 0: event.ignore() return self.loadData(data) event.acceptProposedAction() elif event.mimeData().hasHtml(): pass else: super().dropEvent(event)
def dropEvent(self, event: QDropEvent): if not self.terrain_mode and event.mimeData().hasFormat( "application/fe14-spawn"): event.acceptProposedAction() else: event.ignore()