def dragEnterEvent(self, event: QDropEvent): if event.mimeData().hasUrls(): event.acceptProposedAction() self.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken) self.setBackgroundRole(QPalette.Light) else: event.ignore()
def dropEvent(self, e: QDropEvent): if e.mimeData().hasUrls(): e.accept() self.url = e.mimeData().urls()[0].toLocalFile() self.dropImage() else: e.ignore()
def dropEvent(self, event: QDropEvent) -> None: if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() for url in event.mimeData().urls(): item = ResourcesItem() extension = os.path.splitext(url.fileName())[1] if extension == ".png" or extension == ".jpg" or extension == ".jpeg" or extension == ".bmp": item.setWhatsThis("Image") item.setIcon(QIcon(url.toLocalFile())) item.mySetData(QPixmap(url.toLocalFile())) elif extension == ".ttf": item.setWhatsThis("Font") item.setIcon(QIcon("Images/FontIcon.png")) fontId = QFontDatabase().addApplicationFont(url.toLocalFile()) item.mySetData(str(fontId)) else: return item.setText(os.path.splitext(url.fileName())[0]) item.mySetUrl(url.toLocalFile()) self.addItem(item) else: event.ignore()
def onDrop(self, event: QDropEvent): if DEBUG: print('CalcSubWnd : onDrop') print(event.mimeData().text()) if event.mimeData().hasFormat(LISTBOX_MIMETYPE): eventData = event.mimeData().data(LISTBOX_MIMETYPE) dataStream = QDataStream(eventData, QIODevice.ReadOnly) pixmap = QPixmap() dataStream >> pixmap op_code = dataStream.readQString() text = dataStream.readQString() mouse_pos = event.pos() scene_pos = self.scene.grScene.views()[0].mapToScene(mouse_pos) if DEBUG: print(f'DROP: {op_code} {text} at {scene_pos}') try: node = NodeFactory.from_op_code(op_code)(self.scene) node.setPos(scene_pos.x(), scene_pos.y()) self.scene.history.storeHistory('Create node {}'.format( node.__class__.__name__)) event.setDropAction(Qt.MoveAction) event.accept() except Exception as e: dumpException(e) else: if DEBUG: print(' ... drop ignored, not requested format ', LISTBOX_MIMETYPE) event.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() self.drop.emit(event.mimeData().urls()) else: event.ignore()
def drag_handler(self, event: QDropEvent, drop: bool=False): if event.mimeData().hasUrls(): event.setDropAction(Qt.CopyAction) event.accept() if drop: self.files_dropped.emit([url.toLocalFile() for url in event.mimeData().urls()]) else: event.ignore()
def dropEvent(self, e: QDropEvent): if e.dropAction() != Qt.CopyAction: e.ignore() e.acceptProposedAction() self.stopAnimation() files = [url.toLocalFile() for url in e.mimeData().urls()] self._dragInProgress = False self.update() self.filesDropped.emit(files)
def dropEvent(self, a0: QtGui.QDropEvent) -> None: if a0.mimeData().hasUrls() and len( a0.mimeData().urls()) == 1 and os.path.isfile( a0.mimeData().urls()[0].toLocalFile()): a0.setDropAction(QtCore.Qt.CopyAction) a0.accept() self.file_signal.emit(a0.mimeData().urls()[0].toLocalFile()) else: a0.ignore()
def dropEvent(self, event: QDropEvent) -> None: super().dropEvent(event) mime_data: QMimeData = event.mimeData() # Accept only one file if mime_data.hasUrls() and len(mime_data.urls()) == 1: event.accept() self.dropped_file.emit(event) else: event.ignore()
def _dataview_dropevent(self, event: QDropEvent): from_obj = self.data_view.selectedIndexes()[0].data(257) to_obj = self.data_view.indexAt(event.pos()).data(257) if isinstance(to_obj, Category): if isinstance(from_obj, _Question): to_obj.add_subcat(from_obj) else: to_obj.add_question(from_obj) else: event.ignore() self.data_view.original_dropEvent(event)
def _drop_event(self, event: QDropEvent): mime_data: QMimeData = event.mimeData() index = self.ui.dirTree.indexAt(event.pos()) act = self._set_action(index, mime_data, event.pos()) res = self.ui.dirTree.model().dropMimeData(mime_data, act, index) if res: event.accept() else: event.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() if Args().test: dialog = ExcelLoadingWidget(files=event.mimeData().urls()) dialog.show() else: event.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasFormat('application/x-simitemdata'): item_data = event.mimeData().data('application/x-simitemdata') data_stream = QDataStream(item_data, QIODevice.ReadOnly) s = data_stream.readQString() self.env.add_element_by_name(s, event.pos().x(), event.pos().y()) self.update() event.acceptProposedAction() else: event.ignore()
def dropEvent(self, event: QDropEvent): if event.mimeData().hasText(): if self.startRow != self.targetRow - 1 and self.startRow != self.targetRow: print('move ', self.startRow, ' to ', self.targetRow) if self.targetRow > self.startRow: self.model.moveProcess(self.startRow, self.targetRow - 1) else: self.model.moveProcess(self.startRow, self.targetRow) event.acceptProposedAction() return event.ignore() QTableView.dropEvent(self, event)
def dropEvent(self, event: QDropEvent): if event.mimeData().hasFormat('application/hotspot'): position = event.pos() offset = event.mimeData().data('application/hotspot') x, y = offset.data().decode('utf-8').split() self.btn.move(position - QPoint(int(x), int(y))) event.setDropAction(Qt.MoveAction) event.accept() else: event.ignore()
def __process_event(self, file: Path, event: QtGui.QDropEvent) -> None: logger.debug(f"Processing file drag event: {file.name}") if "grades" in file.name and self.objectName() == INPUT_TEAMS_FRAME: logger.debug("File met 'grades' criteria") event.accept() elif "Student Portal" in file.name and self.objectName( ) == INPUT_STUDENT_FRAME: logger.debug("File met 'student logins' criteria") event.accept() else: logger.debug("File did not meet any criteria -- rejecting") event.ignore()
def dropEvent(self, event: QtGui.QDropEvent) -> None: if event.mimeData().hasUrls: event.setDropAction(Qt.CopyAction) event.accept() for url in event.mimeData().urls(): # print(url.toLocalFile()) self.dropped.emit(url.toLocalFile()) listItem = QListWidgetItem() fname = os.path.basename(url.toLocalFile()) listItem.setText(fname) listItem.setIcon( QtGui.QIcon( os.path.abspath('view/icon/document-list.png'))) self.addItem(listItem) else: event.ignore()
def dropEvent(self, event: QDropEvent) -> None: mime_data: QMimeData = event.mimeData() urls: List[QUrl] = mime_data.urls() if not len(urls): event.ignore() return paths = [] for each in urls: filepath: Path = Path(each.toLocalFile()) if not image_filepath_valid(filepath): continue paths.append(filepath) self._load_paths(paths)
def dropEvent(self, event: QDropEvent): if not self.scene_definition_windows.scene_size_initialized: QMessageBox.warning(None, "Error", "Scene size is not initialized!") event.ignore() return if event.mimeData().hasFormat(PhysicalObjectsModel.MIME_TYPE): dropped_po = pickle.loads(event.mimeData().data( PhysicalObjectsModel.MIME_TYPE)) if dropped_po: self.dropped_physical_object = dropped_po self.__physical_objects_model.add_physical_object_to_scene( dropped_po) dropped_po.scene_position = \ sceneutil.mouse_coordinates_to_image_coordinates(event.pos().x(), event.pos().y(), self.camera_view_size, self.image_frame) event.setDropAction(Qt.CopyAction) event.accept() else: event.ignore() else: event.ignore()
def dropEvent(self, event: QDropEvent) -> None: if self.enable_custom_drag_n_drop is True: input_dialog_text = """ Выберите одно из доступных действий + для сложения - для вычитания / для деления // для целочисленного деления * для умножения ** для возведения в степень = для замещения значения ячейки (действие по умолчанию) Для выбора действия выберите предложенное, сообщения длиной >2 символов будут отклоняться. """ action, result = QInputDialog.getText(self, "Перемещение ячейки листа", input_dialog_text) if result is None or result is False: event.ignore() return while len(action) > 2: action, result = QInputDialog.getText( self, "Перемещение ячейки листа", "Выберите одно из доступных действий", text=input_dialog_text ) if result is None or result is False: event.ignore() return event_source_table: QTableWidgetExtended = event.source() dropping_cell = event_source_table.currentItem() accepting_cell_coords = self.indexAt(event.pos()) accepting_cell = self.item(accepting_cell_coords.row(), accepting_cell_coords.column()) self.setCurrentItem(accepting_cell) if "=" in action or len(action) == 0: accepting_cell.setText(dropping_cell.text()) else: accepting_cell.setText(f"{accepting_cell.text()} {action} {dropping_cell.text()}")
def dropEvent(self, event: QtGui.QDropEvent) -> None: """Handles the drop event and loads the image_name into the label. Parameters ---------- event: QDropEvent The identified event """ if event.mimeData().hasImage: event.setDropAction(Qt.CopyAction) self.image = event.mimeData().urls()[0].toLocalFile() x = self.width() y = self.height() im = QPixmap(self.image).scaled( x, y) # , aspectRatioMode=Qt.KeepAspectRatio) im.save(os.getcwd() + "/tmp.jpg") self.image = (os.getcwd() + "/tmp.jpg") self.setPixmap(im) # self.setPixmap(QPixmap(self.image)) self.setStyleSheet("") event.accept() else: event.ignore()
def dropEvent(self, e: QDropEvent): if e.mimeData().hasUrls(): e.accept() else: e.ignore()
def dragMoveEvent(self, event: QDropEvent): if event.mimeData().hasUrls(): event.acceptProposedAction() else: event.ignore()
def dropEvent(self, a0: QDropEvent) -> None: data = a0.mimeData() action = a0.dropAction() if action == Qt.IgnoreAction: a0.ignore() return if not data.hasFormat('text/uri-list'): a0.ignore() return a0.accept() self.setCursor(Qt.WaitCursor) self.model.clear() QCoreApplication.processEvents() ul = data.data('text/uri-list').data().decode().splitlines() ul = map(str.strip, ul) ul = filter(lambda _uri: not _uri.startswith('#'), ul) ul = [ 'file:/' + _uri[len('file:///'):] if _uri.startswith('file:///') else _uri for _uri in ul ] ul = list(ul) file_binds = [] dir_binds = [] # Ingest file and dirs from received uri-list for uri in ul: if uri.startswith('file:'): pathname = url2pathname(uri[len('file:'):]) if os.path.isdir(pathname): self._logger.info(f'RECURSIVELY ADDING {pathname}') out = self._py_db.ingest_file_directory(pathname) dir_binds.append(f'{uri}%') self._logger.debug( f'ingest_file_directory({pathname}) -> {out}') continue self._logger.info(f'ADDING {uri}') media_id, flags, ex = self._py_db.try_ingest_url(uri) if ex is not None: self._logger.exception(f'FAILING {uri}: {ex}') else: file_binds.append(uri) self._logger.debug(f'{media_id=} {flags=} {ex=}') self._py_db.notify_bg_manifold_build() self._py_db.thumbs_load() # Build WHERE expression with file and dir binds conditions = [] file_placeholders = ', '.join('?' * len(file_binds)) if file_placeholders: file_placeholders = f'url IN ({file_placeholders})' conditions.append(file_placeholders) conditions.extend(['url LIKE ?'] * len(dir_binds)) # Prepare query and bind values for file and dirs query = QSqlQuery() query.prepare( f'SELECT media_id FROM MediaLocations WHERE {" OR ".join(conditions)} ORDER BY url' ) i = -1 for i, bind in enumerate(file_binds): query.bindValue(i, bind) for j, bind in zip(range(i + 1, i + 1 + len(dir_binds)), dir_binds): query.bindValue(j, bind) query.exec() if not query.isActive(): self._logger.debug(f'results query: {query.lastQuery():s}') self._logger.error( f'results query error: {query.lastError().text():s}') self.model.setQuery(query) self.setCursor(Qt.ArrowCursor)