Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    def dropEvent(self, event: QDropEvent):
        if not event.isAccepted() and event.source() == self:
            drop_row = self.drop_on(event)

            rows = sorted(set(item.row() for item in self.selectedItems()))
            rows_to_move = [[
                QTableWidgetItem(self.item(row_index, column_index))
                for column_index in range(self.columnCount())
            ] for row_index in rows]
            for row_index in reversed(rows):
                self.removeRow(row_index)
                if row_index < drop_row:
                    drop_row -= 1

            for row_index, data in enumerate(rows_to_move):
                row_index += drop_row
                self.insertRow(row_index)
                for column_index, column_data in enumerate(data):
                    self.setItem(row_index, column_index, column_data)
            event.accept()
            for row_index in range(len(rows_to_move)):
                for col_index in range(self.columnCount()):
                    self.item(drop_row + row_index,
                              col_index).setSelected(True)
        super().dropEvent(event)
    def dropEvent(self, e: QDropEvent):
        # 마우스 위치를 이용하여 버튼의 위치를 변경
        position = e.pos()
        self.btn.move(position)

        e.setDropAction(Qt.MoveAction)
        e.accept()
Ejemplo n.º 4
0
    def dropEvent(self, e: QDropEvent):
        """Handle Drag and Drop events. The :py:class:`QDropEvent`
        performs the actual drop operation.

        We support the following operations: if an Image is dropped,
        we will use it as input image for the :py:class:`Toolbox`.
        """
        mimeData = e.mimeData()
        if mimeData.hasUrls() and self._toolbox:
            # 1. We just consider the first URL, even if multiple URLs
            #    are provided.
            url = mimeData.urls()[0]
            LOG.info("Drag and dropped %d URLs, took first: %s",
                     len(mimeData.urls()), url)

            # 2. Convert the URL to a local filename
            filename = url.toLocalFile()
            description = f"Dropped in image ({filename})"
            LOG.info("Converted URL to local filename: '%s'", filename)

            # 3. Set this file as input image for the toolbox.
            self._toolbox.set_input_from_file(filename,
                                              description=description)

            # 4. Mark the Drop action as accepted (we actually perform
            #    a CopyAction, no matter what was proposed)
            if e.proposedAction() == Qt.CopyAction:
                e.acceptProposedAction()
            else:
                # If you set a drop action that is not one of the
                # possible actions, the drag and drop operation will
                # default to a copy operation.
                e.setDropAction(Qt.CopyAction)
                e.accept()
Ejemplo n.º 5
0
    def dropEvent(self, a0: QtGui.QDropEvent) -> None:
        if a0.mimeData().hasUrls() and a0.mimeData().urls()[0].isLocalFile():

            a0.accept()

            files = [x.path() for x in a0.mimeData().urls()]
            self.filesdropped(files, a0)
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
 def dropEvent(self, e: QDropEvent):
     if e.mimeData().hasUrls():
         e.accept()
         self.url = e.mimeData().urls()[0].toLocalFile()
         self.dropImage()
     else:
         e.ignore()
Ejemplo n.º 8
0
    def dropEvent(self, event: QtGui.QDropEvent):
        if not event.isAccepted() and event.source() == self:
            drop_row = self.drop_on(event)

            rows = sorted(set(item.row() for item in self.selectedItems()))
            rows_to_move: List[zlm_core.ZlmLayer] = [
                self.item(row_index, 0).layer_inst for row_index in rows
            ]

            for row_index in reversed(rows):
                self.removeRow(row_index)
                if row_index < drop_row:
                    drop_row -= 1

            for row_index, layer in enumerate(rows_to_move):
                row_index += drop_row
                self.insertRow(row_index)
                item = QtWidgets.QTableWidgetItem(layer.name)
                item.layer_inst = layer
                self.setItem(row_index, 0, item)

            event.accept()
            # for row_index in range(len(rows_to_move)):
            #     self.item(drop_row + row_index, 0).setSelected(True)
        super().dropEvent(event)
    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()
Ejemplo n.º 10
0
    def dropEvent(self, event: QDropEvent):
        if event.mimeData().hasUrls:
            event.setDropAction(Qt.CopyAction)
            event.accept()

            self.drop.emit(event.mimeData().urls())
        else:
            event.ignore()
Ejemplo n.º 11
0
 def dropEvent(self, e: QDropEvent) -> None:
     """拖拽结束以后触发的事件"""
     paths = e.mimeData().text().split('\n')
     for path in paths:
         path = path.strip()
         if len(path) > 8:
             self.addItem(path.strip()[8:])
     e.accept()
Ejemplo n.º 12
0
    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()
Ejemplo n.º 13
0
 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()
Ejemplo n.º 14
0
    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()
Ejemplo n.º 15
0
    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()
Ejemplo n.º 16
0
 def dropEvent(self, e: QtGui.QDropEvent):
     # todo: work in progress
     e.accept()
     if len(e.mimeData().urls()) == 1 and e.mimeData().urls()[0].toLocalFile().endswith('.txt'):
         # self._c.matchsettingspath = e.mimeData().urls()[0].toLocalFile()
         pass
     else:
         for url in e.mimeData().urls():
             if url.toLocalFile().endswith('.Gbx'):
                 print(url.toLocalFile())
Ejemplo n.º 17
0
    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()
Ejemplo n.º 18
0
    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()
Ejemplo n.º 19
0
    def dropEvent(self, e: QDropEvent):
        position = e.pos()

        # 보내온 데이터를 받기
        # 그랩 당시의 마우스 위치값을 함께 계산하여 위젯 위치 보정
        offset = e.mimeData().data("application/hotspot")
        x, y = offset.data().decode('utf-8').split()
        self.btn.move(position - QPoint(int(x), int(y)))

        e.setDropAction(Qt.MoveAction)
        e.accept()
Ejemplo n.º 20
0
 def dropEvent(self, event: QtGui.QDropEvent) -> None:
     self.manager.widget_manager.dragged_obj = None
     self.manager.grid_manager.drop_magnet_lines()
     self.manager.grid_manager.grid.clear_special_lines()
     event.accept()
     self.manager.widget_manager.set_dor(NONE)
     [
         widget.hide_size_or_pos_label()
         for widget in self.manager.widget_manager.get_all_widgets()
     ]
     self.update()
Ejemplo n.º 21
0
 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()
Ejemplo n.º 22
0
		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()
Ejemplo n.º 23
0
 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:
        event.accept()

        if isinstance(event.source(), QListWidget):
            item = event.source().currentItem()

            if isinstance(item, ToolBoxItem):
                obj = item.getNewCustomClass()
                self.scene().addItem(obj)

                objRect = obj.boundingRect().center()

                position = QPoint(event.pos().x() - objRect.x(), event.pos().y() - objRect.y())
                obj.setPos(self.mapToScene(position))
            elif isinstance(item, ResourcesItem):
                self.itemAt(event.pos()).recieveDrop(item)
Ejemplo n.º 25
0
    def dropEvent(self, a0: QDropEvent) -> None:
        if a0.source() == self or self.indexTabToDrag < 0 or not isinstance(
                a0.source(), TabBar):
            a0.accept()
            return

        a0.setDropAction(Qt.MoveAction)
        a0.accept()

        insertAfter = self.tabAt(a0.pos())
        try:
            tab = a0.source().parentWidget().widget(self.indexTabToDrag)
            packItem = QModelIndex(tab.packItem)
            index = self.parentWidget().openItemInNewTab(packItem)
            a0.source().tabCloseRequested.emit(self.indexTabToDrag)
        except AttributeError as e:
            print("Error occured while drop Event:", e)
        else:
            if insertAfter and insertAfter >= 0:
                self.moveTab(index, insertAfter + 1)
        TabBar.indexTabToDrag = -1
    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()
Ejemplo n.º 27
0
    def dropEvent(self, a0: QtGui.QDropEvent):
        position = a0.pos()
        self.button1.move(position)

        a0.setDropAction(Qt.MoveAction)
        a0.accept()
Ejemplo n.º 28
0
 def dropEvent(self, event: QDropEvent) -> None:
     filename = event.mimeData().urls()[0].toLocalFile()
     self.file_opener(filename)
     event.accept()
Ejemplo n.º 29
0
 def dropEvent(self, event: QDropEvent) -> None:
     filename = event.mimeData().urls()[0].toLocalFile()
     self.cutter.loadMedia(filename)
     event.accept()
Ejemplo n.º 30
0
    def dropEvent(self, e: QtGui.QDropEvent):
        position = e.pos()
        self.button.move(position)

        e.setDropAction(Qt.MoveAction)
        e.accept()
Ejemplo n.º 31
0
 def dropEvent(self, event: QDropEvent) -> None:
     if event.mimeData().hasUrls():
         urls = event.mimeData().urls()
         filepath = urls[0].toLocalFile()
         self.loadFile(filepath)
         event.accept()