Ejemplo n.º 1
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.º 2
0
 def dropEvent(self, event: QDropEvent):
     if len(event.mimeData().urls()) > 0:
         group_id = self.model().get_groupid_for_index(
             self.indexAt(event.pos()))
         self.files_dropped_on_group.emit(event.mimeData().urls(), group_id)
     else:
         super().dropEvent(event)
Ejemplo n.º 3
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)
    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.º 5
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.º 6
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.º 7
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.º 8
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.º 9
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.º 10
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.º 11
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.º 12
0
 def dropEvent(self, event: QtGui.QDropEvent):
     if event.mimeData().text():
         pos: QtCore.QPoint = event.pos()
         component_name = event.mimeData().text()
         component_module = importlib.import_module(config.component_dict[component_name].module_path)
         component_class = getattr(component_module, config.component_dict[component_name].class_name)(
             drop_event=True)
         drop_component = ComponentLabel(component=component_class, event_pos=pos, parent=self)
         # Components.component_widget[component_class.id] = drop_component
         drop_component.show()
Ejemplo n.º 13
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.º 14
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.º 15
0
    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()
Ejemplo n.º 16
0
 def dropEvent(self, a0: QtGui.QDropEvent) -> None:
     if self.frame_drag.pos().x() <= a0.pos().x() <= self.frame_drag.pos().x() + self.frame_drag.width() \
             and self.frame_drag.pos().y() <= a0.pos().y() <= self.frame_drag.pos().y() + self.frame_drag.height():
         name = ''
         if platform.system() == 'Darwin':
             name = a0.mimeData().text().replace('file:///', '/')
         elif platform.system() == 'Windows':
             name = a0.mimeData().text().replace('file:///', '')
         print(name)
         if not name.endswith('.apk'):
             self.label.setText('需要.apk后缀的文件')
         else:
             self.lineEdit_filename.setText(name)
             # self.filename.emit(name)
             ADBController.add_apk(name)
Ejemplo n.º 17
0
 def dropEvent(self, e: QtGui.QDropEvent) -> None:
     txt = e.mimeData().text()
     type, addr, content = txt.split(':')
     if self.server:
         self.server.change(type, addr, content, self.address, self.text())
     # print('drop from {}:{} to {}'.format(addr,content,self.address))
     self.setFrameStyle(1)
Ejemplo n.º 18
0
    def table_drop_event(self, event: QDropEvent):
        """Processes the mimedata dropped on the tableview.

            Information
            -----------
            If the mimedata is not a list of urls, rejects.\n
            Determines whether the url is a file or folder,
                and then adds to the table.

            Parameters
            ----------
            event : QDropEvent -
                event called when data is dropped.
            """
        files = []
        folders = []
        for url in event.mimeData().urls():
            if url.toLocalFile().endswith(".mp3"):
                event.acceptProposedAction()
                files.append(url.toLocalFile())
            elif os.path.isdir(url.toLocalFile()):
                event.acceptProposedAction()
                folders.append(url.toLocalFile())
        if files:
            self.add_files(files)
        if folders:
            self.add_folders(folders)
Ejemplo n.º 19
0
    def dropEvent(self, event: QtGui.QDropEvent) -> None:
        """Allow Drag&Drop'ing from the local filesystem into our fileview
		"""
        if (all([
                str(file.toLocalFile()).startswith("file://")
                or str(file.toLocalFile()).startswith("/") or
            (len(str(file.toLocalFile())) > 0
             and str(file.toLocalFile())[1] == ":")
                for file in event.mimeData().urls()
        ])) and len(event.mimeData().urls()) > 0:
            # Its an upload (files/dirs dragged from the local filesystem into our fileview)
            self.doUpload(
                [file.toLocalFile() for file in event.mimeData().urls()],
                self.getNode())
        else:
            super(FileListView, self).dropEvent(event)
Ejemplo n.º 20
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.º 21
0
Archivo: CustomUI.py Proyecto: ag-sd/py
 def dragEnterEvent(self, event: QDropEvent):
     if event.mimeData().hasUrls():
         event.acceptProposedAction()
         self.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken)
         self.setBackgroundRole(QPalette.Light)
     else:
         event.ignore()
Ejemplo n.º 22
0
 def dropEvent(self, event: QDropEvent) -> None:
     mimeData = event.mimeData()
     if self.isMimeAccepted(mimeData):
         self.setDataFromMime(mimeData)
         event.acceptProposedAction()
     else:
         super().dropEvent(event)
Ejemplo n.º 23
0
    def dropEvent(self, event: QDropEvent) -> None:
        """Called when a drop event occurs."""
        file_path = event.mimeData().text()
        if self.callback:
            self.callback(file_path)

        self.show_selected_file(file_path)
 def dropEvent(self, a0: QDropEvent) -> None:
     for p in a0.mimeData().text().split("\n"):
         if ".jpg" in p or ".png" in p:
             img = DropImage(self, p)
             self._drop_image(img)
             img.btn_delete.clicked.connect(partial(self._on_delete, img))
     self.onChanged.emit(self.get_images())
Ejemplo n.º 25
0
    def dropEvent(self, event: QDropEvent):
        mime_data = event.mimeData()
        data_str = str(mime_data.text())
        indexes = list(data_str.split("/")[:-1])

        signal = None
        proto_analyzer = None
        for index in indexes:
            row, column, parent = map(int, index.split(","))
            if parent == -1:
                parent = self.signal_tree_root
            else:
                parent = self.signal_tree_root.child(parent)
            node = parent.child(row)
            if node.protocol is not None and node.protocol.signal is not None:
                signal = node.protocol.signal
                proto_analyzer = node.protocol
                break

        if signal is None:
            return

        if signal is None:
            return

        self.signal = signal  # type: Signal
        self.proto_analyzer = proto_analyzer  # type: ProtocolAnalyzer

        self.scene_manager = SignalSceneManager(signal, self)
        self.plot_data(self.signal.real_plot_data)
        self.show_full_scene()
        self.auto_fit_view()

        self.signal_loaded.emit(self.proto_analyzer)
Ejemplo n.º 26
0
    def dropEvent(self, event: QtGui.QDropEvent) -> None:
        """We got a Drop! Add them to the selection if possible.

		Files contain their dlkey instead of an id.
		Well check the events.source widget for more informations about the files,
		and add them only if we succed.
		"""
        mime = event.mimeData()
        if not mime.hasUrls():
            return
        for url in mime.urls():
            res = itemFromUrl(url)
            if not res:
                continue
            modul, dlkey, name = res
            if dlkey and modul != self.modul:
                continue
            srcWidget = event.source()
            if not srcWidget:  # Not dragged from this application
                continue
            items = srcWidget.selectedItems()
            for item in items:
                if "dlkey" in item.entryData and dlkey == item.entryData[
                        "dlkey"]:
                    self.extend([item.entryData])
                    break
Ejemplo n.º 27
0
    def dropEvent(self, event: QDropEvent):
        if event.source() is not None:
            return  # drag starts within the application
        mimeData = event.mimeData()

        if mimeData.hasUrls():
            raw = mimeData.data("text/uri-list")
            if type(raw) == QByteArray:
                # Compat. Workaround #113
                # As of Qt 5.3.1, QMimeData.urls() cannot read QByteArray
                # Firefox passes ASCII encoded escaped bytes
                # Chrome passes UTF-16 encoded bytes.
                raw = bytes(raw)
                try:
                    url = raw.decode("ASCII")
                except UnicodeDecodeError:
                    url = raw.decode("UTF-16LE")
                urls = [url]
            else:
                urls = list(map(lambda qurl: qurl.url(), mimeData.urls()))
            app.taskCreationAgent.createTasksAction(urls)
        elif mimeData.hasText():
            app.taskCreationAgent.createTasksFromMimeData(mimeData)
        else:
            pass
        event.acceptProposedAction()
Ejemplo n.º 28
0
 def dropEvent(self, event: QDropEvent):
     data: str = event.mimeData().text()
     if data.isdigit():
         container_id = int(event.mimeData().text())
         drop_container = containers_service.getContainer(container_id)
         drop_container.group = self.group
         drop_container.save()
         self.move_app.emit(drop_container, self.ui)
     else:
         group_id = int(data.split('Group:')[1])
         drop_group = group_service.getGroup(group_id)
         drop_group.order = group_service.getNextOrder(self.group)
         drop_group.save()
         self.move_group.emit(drop_group, self.ui)
     event.acceptProposedAction()
     self.cleanDraggingEffects()
Ejemplo n.º 29
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()
Ejemplo n.º 30
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.º 31
0
 def dropEvent(self, event: QtGui.QDropEvent) -> None:
     dataDict = json.loads(
         event.mimeData().data("viur/treeDragData").data().decode("UTF-8"))
     protoWrap = protocolWrapperInstanceSelector.select(self.realModule)
     assert protoWrap is not None
     destItem = self.itemAt(event.pos())
     protoWrap.move(dataDict["nodes"], dataDict["leafs"],
                    destItem.entryData["key"])
Ejemplo n.º 32
0
    def dropEvent(self, event: QDropEvent):
        items = [item for item in self.items(event.scenePos()) if isinstance(item, GraphicsItem) and item.acceptDrops()]
        item = None if len(items) == 0 else items[0]
        if len(event.mimeData().urls()) > 0:
            self.files_dropped.emit(event.mimeData().urls())

        indexes = list(event.mimeData().text().split("/")[:-1])

        group_nodes = []
        file_nodes = []
        for index in indexes:
            try:
                row, column, parent = map(int, index.split(","))
                if parent == -1:
                    parent = self.tree_root_item
                else:
                    parent = self.tree_root_item.child(parent)
                node = parent.child(row)
                if node.is_group:
                    group_nodes.append(node)
                else:
                    file_nodes.append(node)
            except ValueError:
                continue

        # Which Nodes to add?
        nodes_to_add = []
        """:type: list of ProtocolTreeItem """
        for group_node in group_nodes:
            nodes_to_add.extend(group_node.children)
        nodes_to_add.extend([file_node for file_node in file_nodes if file_node not in nodes_to_add])
        protocols_to_add = [node.protocol for node in nodes_to_add]

        ref_item = item
        position = None if ref_item is None else item.drop_indicator_position
        self.add_protocols(ref_item, position, protocols_to_add)
        super().dropEvent(event)
Ejemplo n.º 33
0
    def dropEvent(self, event: QDropEvent):
        mime_data = event.mimeData()
        data_str = str(mime_data.text())
        indexes = list(data_str.split("/")[:-1])

        signal = None
        proto_analyzer = None
        for index in indexes:
            row, column, parent = map(int, index.split(","))
            if parent == -1:
                parent = self.signal_tree_root
            else:
                parent = self.signal_tree_root.child(parent)
            node = parent.child(row)
            if node.protocol is not None and node.protocol.signal is not None:
                signal = node.protocol.signal
                proto_analyzer = node.protocol
                break

        if signal is None:
            return

        self.draw_signal(signal, proto_analyzer)
Ejemplo n.º 34
0
 def dropEvent(self, event: QDropEvent):
     if len(event.mimeData().urls()) > 0:
         group_id = self.model().get_group_id_for_index(self.indexAt(event.pos()))
         self.files_dropped_on_group.emit(event.mimeData().urls(), group_id)
     else:
         super().dropEvent(event)
Ejemplo n.º 35
0
 def dropEvent(self, event: QDropEvent):
     if len(event.mimeData().urls()) > 0:
         self.files_dropped.emit(event.mimeData().urls())
Ejemplo n.º 36
0
    def dropEvent(self, event: QDropEvent):

        if event.mimeData().hasUrls():
            str_p = event.mimeData().urls()[0].toLocalFile()
            print(str_p)
            self.setText(str_p)
Ejemplo n.º 37
0
 def dropEvent(self, event: QDropEvent):
     if len(event.mimeData().urls()) == 0:
         self.frame_dropped.emit(self.mapToParent(event.pos()))
     else:
         self.files_dropped.emit(event.mimeData().urls())