コード例 #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()
コード例 #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)
コード例 #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)
コード例 #4
0
    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()
コード例 #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()
コード例 #6
0
ファイル: data_subwindow.py プロジェクト: lcopey/node_editor
    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()
コード例 #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()
コード例 #8
0
ファイル: mainwindow.py プロジェクト: sstefan1/btc
    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()
コード例 #9
0
ファイル: custom_ui.py プロジェクト: RiskySignal/APKCrawler
 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()
コード例 #10
0
ファイル: torrent_gui.py プロジェクト: borzunov/bit-torrent
    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()
コード例 #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())
コード例 #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()
コード例 #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()
コード例 #14
0
ファイル: qt_drag_and_drop.py プロジェクト: sangwook236/SWDT
		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()
コード例 #15
0
ファイル: view_widget.py プロジェクト: Drawell/SimulinkLib
    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()
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #19
0
ファイル: file.py プロジェクト: viur-framework/viur-admin
    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)
コード例 #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()
コード例 #21
0
ファイル: CustomUI.py プロジェクト: 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()
コード例 #22
0
 def dropEvent(self, event: QDropEvent) -> None:
     mimeData = event.mimeData()
     if self.isMimeAccepted(mimeData):
         self.setDataFromMime(mimeData)
         event.acceptProposedAction()
     else:
         super().dropEvent(event)
コード例 #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)
コード例 #24
0
 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())
コード例 #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)
コード例 #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
コード例 #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()
コード例 #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()
コード例 #29
0
ファイル: app.py プロジェクト: pradiptlx/starter-FTPClient
 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()
コード例 #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()
コード例 #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"])
コード例 #32
0
ファイル: SimulatorScene.py プロジェクト: jopohl/urh
    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)
コード例 #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)
コード例 #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)
コード例 #35
0
 def dropEvent(self, event: QDropEvent):
     if len(event.mimeData().urls()) > 0:
         self.files_dropped.emit(event.mimeData().urls())
コード例 #36
0
ファイル: custom.py プロジェクト: cerealito/validate
    def dropEvent(self, event: QDropEvent):

        if event.mimeData().hasUrls():
            str_p = event.mimeData().urls()[0].toLocalFile()
            print(str_p)
            self.setText(str_p)
コード例 #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())