예제 #1
0
    def mousePressEvent(self, event):
        child = self.childAt(event.pos())
        if not child:
            return

        pixmap = QtGui.QPixmap(child.pixmap())

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)
        dataStream << pixmap << QtCore.QPoint(event.pos() - child.pos())

        mimeData = QtCore.QMimeData()
        mimeData.setData('application/x-dnditemdata', itemData)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        drag.setHotSpot(event.pos() - child.pos())

        tempPixmap = QtGui.QPixmap(pixmap)
        painter = QtGui.QPainter()
        painter.begin(tempPixmap)
        painter.fillRect(pixmap.rect(), QtGui.QColor(127, 127, 127, 127))
        painter.end()

        child.setPixmap(tempPixmap)

        if drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction,
                      QtCore.Qt.CopyAction) == QtCore.Qt.MoveAction:
            child.close()
        else:
            child.show()
            child.setPixmap(pixmap)
예제 #2
0
 def mouseMoveEvent(self, event):
     if not self.transaction.isCredit:
         mimeData = QtCore.QMimeData()
         mimeData.setText(self.transaction.name)
         drag = QtGui.QDrag(self)
         drag.setMimeData(mimeData)
         drag.exec_(QtCore.Qt.MoveAction)
예제 #3
0
파일: Utils.py 프로젝트: smith1511/OpenCue
def startDrag(dragSource, dropActions, objects):
    mimeData = QtCore.QMimeData()
    mimeData.setText("\n".join(["%s" % job.data.name for job in objects]))

    mimeDataAdd(mimeData,
                "application/x-job-names",
                [object.data.name for object in objects if isJob(object)])

    mimeDataAdd(mimeData,
                "application/x-job-ids",
                [opencue.id(object) for object in objects if isJob(object)])

    mimeDataAdd(mimeData,
                "application/x-group-names",
                [object.data.name for object in objects if isGroup(object)])

    mimeDataAdd(mimeData,
                "application/x-group-ids",
                [opencue.id(object) for object in objects if isGroup(object)])

    mimeDataAdd(mimeData,
                "application/x-host-names",
                [object.data.name for object in objects if isHost(object)])

    mimeDataAdd(mimeData,
                "application/x-host-ids",
                [opencue.id(object) for object in objects if isHost(object)])

    drag = QtGui.QDrag(dragSource)
    drag.setMimeData(mimeData)
    drag.exec_(QtCore.Qt.MoveAction)
예제 #4
0
    def mouseMoveEvent(self, item):
        """Drag event"""

        shader = self.shader

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)
        dataStream << QtCore.QByteArray(str(shader))

        mimeData = QtCore.QMimeData()
        icon = QtGui.QIcon()

        if cmds.nodeType(shader) == 'displacementShader':
            mimeData.setData("application/x-displacement", itemData)
            icon.addFile(os.path.join(d, "../../../icons/sgblue.xpm"),
                         QtCore.QSize(25, 25))
        else:
            mimeData.setData("application/x-shader", itemData)
            icon.addFile(os.path.join(d, "../../../icons/sg.xpm"),
                         QtCore.QSize(25, 25))

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(icon.pixmap(50, 50))
        drag.setHotSpot(QtCore.QPoint(0, 0))
        drag.start(QtCore.Qt.MoveAction)
예제 #5
0
    def mousePressEvent(self, event):

        self.collection_grid.item_properties.update_entry(self.metadata)

        cur_item = self.collection_grid.selected_item
        if cur_item:
            cur_item.setStyleSheet("""QLabel{border: 1px solid black}""")
            cur_item.is_selected = False

        if self.is_selected:
            self.is_selected = False
            self.setStyleSheet("""QLabel{border: 1px solid black}""")
        else:
            self.is_selected = True
            self.setStyleSheet("""QLabel{border: 1px solid blue}""")

        self.collection_grid.selected_item = self

        if self.from_gaia_scatter:
            mimeData = QtCore.QMimeData()
            mimeData.setText(str(self.metadata))
            drag = QtGui.QDrag(self)
            drag.setPixmap(self.pixmap())
            drag.setMimeData(mimeData)
            drag.setHotSpot(event.pos() - self.rect().topLeft())
            drag.start(QtCore.Qt.MoveAction)
        
        super(CollectionItem, self).mousePressEvent(event)
예제 #6
0
    def dragAcion(self):

        self.leaveAcion()

        dataBuffer = QtGui.QDrag(self.parent())

        rigData = self.sender().index.data()
        ID = rigData["ID"]

        previewSize = self.parent().previewSize
        rigImage = IconDrag(rigData, previewSize).rigImage

        dragFile = os.path.join(tempfile.gettempdir(), "{}.png".format(ID))
        rigImage.save(dragFile, "png")

        dragURL = QtCore.QUrl()
        dragURL = dragURL.fromLocalFile(dragFile)

        mimeData = QtCore.QMimeData()
        mimeData.setText(ID)
        mimeData.setImageData(rigImage)
        mimeData.setUrls([dragURL])
        dataBuffer.setMimeData(mimeData)

        dragPreview = QtGui.QPixmap().fromImage(rigImage)
        dataBuffer.setPixmap(dragPreview)
        dataBuffer.setHotSpot(dragPreview.rect().center())

        dataBuffer.exec_(QtCore.Qt.CopyAction)

        os.remove(dragFile)
예제 #7
0
    def mouseMoveEvent(self,
                       event: QtGui.QMouseEvent) -> None:  # pragma: no cover
        if (not event.buttons() & QtCore.Qt.LeftButton
                or (event.pos() - self.drag_start_pos).manhattanLength() <
                QtWidgets.QApplication.startDragDistance()):
            return super().mouseMoveEvent(event)
        index = self.tabAt(event.pos())
        if index == -1:
            return super().mouseMoveEvent(event)

        rect = self.tabRect(index)
        pixmap = QtGui.QPixmap(rect.size())
        self.render(pixmap, QtCore.QPoint(), QtGui.QRegion(rect))

        mime_data = QtCore.QMimeData()
        mime_data.setData("application/x-pew2tabbar",
                          QtCore.QByteArray().number(index))

        drag = QtGui.QDrag(self)
        drag.setMimeData(mime_data)
        drag.setPixmap(pixmap)
        drag.setDragCursor(
            QtGui.QCursor(QtCore.Qt.DragMoveCursor).pixmap(),
            QtCore.Qt.MoveAction)
        drag.exec_(QtCore.Qt.MoveAction)
예제 #8
0
 def mouseMoveEvent(self, event):
     #super(expressionTreeWidget, self).mouseMoveEvent(event)
     #print "move: ", event
     if self.selected is not None:
         drag = QtGui.QDrag(self)
         drag.setMimeData(self.mimeData)
         drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction,
                    QtCore.Qt.CopyAction)
예제 #9
0
    def mousePressEvent(self, event):

        mimeData = QtCore.QMimeData()
        mimeData.setText(self.widget_type)
        drag = QtGui.QDrag(self)
        drag.setPixmap(self.icon_pix)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.start(QtCore.Qt.MoveAction)
예제 #10
0
 def mouseMoveEvent(self, e):
     mimeData = QtCore.QMimeData()
     drag = QtGui.QDrag(self)
     mimeData.setUrls([
         'remote://' + self.model().data(i) for i in self.selectedIndexes()
     ])
     print(mimeData.urls())
     drag.setMimeData(mimeData)
     dropAction = drag.start(QtCore.Qt.CopyAction)
예제 #11
0
    def mouseMoveEvent(self, event):
        """The drag operation is initiated here."""
        if not isinstance(event, QtGui.QMouseEvent):
            return
        app = QtWidgets.QApplication.instance()
        left_button = event.buttons() & QtCore.Qt.LeftButton
        if not left_button:
            return

        parent_widget = self.parent()
        editor = parent_widget.findChild(TodoItemEditor)
        drag = QtGui.QDrag(parent_widget)

        # Setting Mime Data
        mime_data = QtCore.QMimeData()
        mime_data.setData(u'bookmarks/todo-drag', QtCore.QByteArray(''))
        drag.setMimeData(mime_data)

        # Drag pixmap
        # Transparent image
        pixmap = QtGui.QPixmap(parent_widget.size())
        parent_widget.render(pixmap)

        drag.setPixmap(pixmap)
        drag.setHotSpot(
            QtCore.QPoint(
                pixmap.width() - ((common.MARGIN() * 0.66) * 2),
                pixmap.height() / 2.0
            )
        )

        # Drag origin indicator
        pixmap = QtGui.QPixmap(parent_widget.size())

        painter = QtGui.QPainter()
        painter.begin(pixmap)
        painter.setPen(QtGui.QPen(QtCore.Qt.NoPen))
        painter.setBrush(QtGui.QBrush(QtGui.QColor(200, 200, 200, 255)))
        painter.drawRect(pixmap.rect())
        painter.end()

        overlay_widget = QtWidgets.QLabel(parent=parent_widget)
        overlay_widget.setFixedSize(parent_widget.size())
        overlay_widget.setPixmap(pixmap)

        # Preparing the drag...
        parent_widget.parent().separator.setHidden(False)
        overlay_widget.show()

        # Starting the drag...
        drag.exec_(QtCore.Qt.CopyAction)

        # Cleanup after drag has finished...
        overlay_widget.close()
        overlay_widget.deleteLater()
        parent_widget.parent().separator.setHidden(True)
예제 #12
0
    def performDrag(self):
        item = self.currentItem()
        if item:
            mimeData = QtCore.QMimeData()
            mimeData.setText(item.text())

            drag = QtGui.QDrag(self)
            drag.setMimeData(mimeData)
            drag.setPixmap(QPixmap('person.png'))
            if drag.exec(QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction:
                pass
예제 #13
0
 def mouseMoveEvent(self, event):
     if not self.wfv_parent.doc.sound.is_playing():
         if event.buttons() == QtCore.Qt.LeftButton:
             if not self.is_phoneme():
                 if (round(self.convert_to_frames(self.x() + event.x())) + 1
                         >= self.lipsync_object.end_frame
                     ) and not self.is_moving:
                     self.is_resizing = True
                     self.resize_origin = 1
             else:
                 self.is_resizing = False
                 self.is_moving = True
         else:
             self.is_moving = True
         if self.is_resizing and not self.is_moving:
             if self.get_frame_size() < self.get_min_size():
                 self.lipsync_object.end_frame = self.lipsync_object.start_frame + self.get_min_size(
                 )
             self.after_reposition()
             if self.resize_origin == 1:  # start resize from right side
                 if round(
                         self.convert_to_frames(event.x() + self.x())
                 ) + 1 >= self.lipsync_object.start_frame + self.get_min_size(
                 ):
                     if round(self.convert_to_frames(event.x() + self.x())
                              ) + 1 <= self.get_right_max():
                         self.lipsync_object.end_frame = round(
                             self.convert_to_frames(event.x() +
                                                    self.x())) + 1
                         self.resize(
                             self.convert_to_pixels(
                                 self.lipsync_object.end_frame) -
                             self.convert_to_pixels(
                                 self.lipsync_object.start_frame),
                             self.height())
             # elif self.resize_origin == 0:  # start resize from left side
             #     if round(self.convert_to_frames(event.x() + self.x())) < self.lipsync_object.end_frame:
             #         if round(self.convert_to_frames(event.x() + self.x())) >= self.get_left_max():
             #             self.lipsync_object.start_frame = round(self.convert_to_frames(event.x() + self.x()))
             #             new_length = self.convert_to_pixels(self.lipsync_object.end_frame) - self.convert_to_pixels(self.lipsync_object.start_frame)
             #             self.resize(new_length, self.height())
             #             self.move(self.convert_to_pixels(self.lipsync_object.start_frame), self.y())
         else:
             self.is_moving = True
             mime_data = QtCore.QMimeData()
             drag = QtGui.QDrag(self)
             drag.setMimeData(mime_data)
             drag.setHotSpot(event.pos() - self.rect().topLeft())
             self.hot_spot = drag.hotSpot().x()
             # PyQt5 and PySide use different function names here, likely a Qt4 vs Qt5 problem.
             try:
                 exec("dropAction = drag.exec(QtCore.Qt.MoveAction)")
             except (SyntaxError, AttributeError):
                 dropAction = drag.start(QtCore.Qt.MoveAction)
예제 #14
0
    def mouseMoveEvent(self, e):
        if e.buttons() != QtCore.Qt.RightButton:
            print('')

        mimeData = QtCore.QMimeData()

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(e.pos() - self.rect().topLeft())

        dropAcion = drag.exec_(QtCore.Qt.MoveAction)
예제 #15
0
    def mousePressEvent(self, event):
        item = self.itemAt(event.pos())
        name = item.text()

        drag = QtGui.QDrag(self)
        mime_data = QtCore.QMimeData()

        mime_data.setText(name)
        drag.setMimeData(mime_data)
        drag.exec_()

        super(NodeList, self).mousePressEvent(event)
예제 #16
0
    def mousePressEvent(self, event):
        """this function is needed for the drag and drop"""
        if event.button() == QtCore.Qt.MouseButton.LeftButton and self.drag == True:

            self.dragInfo = "dragged"
            drag = QtGui.QDrag(self)
            mimeData = QtCore.QMimeData()
            mimeData.setText(json.dumps({"index": self.positionIndex, "color": self.ColorIndex}))
            drag.setMimeData(mimeData)
            tick = QtGui.QPixmap(r"res\colors\{index}".format(index=self.ColorIndex))
            tickSized = tick.scaled(self.geometry().width(),self.geometry().height())
            drag.setPixmap(tickSized)
            drag.exec_()
    def startDrag(self, supported_actions):
        items = self.selectedItems()
        nodes = []
        for item in items:
            nodes.append(item.data(QtCore.Qt.UserRole))

        nodes_str = " ".join(nodes)

        mime_data = QtCore.QMimeData()
        mime_data.setData("zurbrigg/node_list",
                          QtCore.QByteArray(str(nodes_str)))

        drag = QtGui.QDrag(self)
        drag.setMimeData(mime_data)

        drag.exec_()
예제 #18
0
    def mouseMoveEvent(self, e):
        # only drag and drop with right mouse button
        # documentation: QMouseEvents: https://doc-snapshots.qt.io/qtforpython/PySide2/QtGui/QMouseEvent.html#PySide2.QtGui.QMouseEvent
        if e.buttons() != QtCore.Qt.RightButton:
            return
        # documentation: https://doc-snapshots.qt.io/qtforpython/PySide2/QtCore/QMimeData.html?highlight=qmimedata
        # define information than can be stored in the clipboard, and transfered via drag and drop
        mimeData = QtCore.QMimeData()

        # documentation: https://doc-snapshots.qt.io/qtforpython/PySide2/QtGui/QDrag.html#PySide2.QtGui.QDrag
        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        # documentation: https://doc-snapshots.qt.io/qtforpython/PySide2/QtCore/QRect.html#PySide2.QtCore.QRect
        # topLeft() returns the position of the topLeft corner
        drag.setHotSpot(e.globalPos() - self.rect().topLeft())

        dropAction = drag.start(QtCore.Qt.MoveAction)
    def mouseMoveEvent(self, mouse_event):
        if mouse_event.buttons() & QtCore.Qt.LeftButton:
            if (mouse_event.pos() - self.drag_start_pos).manhattanLength() >= QtWidgets.QApplication.startDragDistance():

                items = self.selectedItems()
                nodes = []
                for item in items:
                    nodes.append(item.data(QtCore.Qt.UserRole))

                nodes_str = " ".join(nodes)

                mime_data = QtCore.QMimeData()
                mime_data.setData("zurbrigg/node_list", QtCore.QByteArray(str(nodes_str)))

                drag = QtGui.QDrag(self)
                drag.setMimeData(mime_data)

                drag.exec_()
예제 #20
0
    def mousePressEvent(self, event):
        """ Init the drag and drop system for reordering widgets.
            Limite the size of the thumbnail's pixmap to 200pix height
            Add a small gradient as alpha mask.
        """
        widget_size = self.widget.size()

        w_h = widget_size.height()
        pix_h = 100
        if w_h < 200: pix_h = w_h

        pix_w = widget_size.width()

        mask_pix = QtGui.QPixmap(QtCore.QSize(pix_w, pix_h))
 
        w_pix = QtGui.QPixmap(widget_size)
        self.widget.render(w_pix)

        painter	= QtGui.QPainter(mask_pix)
        
        gradient = QtGui.QLinearGradient(QtCore.QPointF(mask_pix.rect().topLeft()),
				                   QtCore.QPointF(mask_pix.rect().bottomLeft()))
        gradient.setColorAt(0, QtGui.QColor(200, 200, 200))
        gradient.setColorAt(0.5, QtGui.QColor(200, 200, 200))
        gradient.setColorAt(1, QtCore.Qt.black)
        brush = QtGui.QBrush(gradient)
        
        painter.setCompositionMode(QtGui.QPainter.CompositionMode_Source)
        painter.fillRect(QtCore.QRectF(0, 0, pix_w, pix_h), w_pix)
        
        painter.setCompositionMode(QtGui.QPainter.CompositionMode_DestinationIn)
        painter.fillRect(QtCore.QRectF(0, 0, pix_w, pix_h), brush) 
        painter.end()
        
        pix = w_pix.copy(0, 0, pix_w, pix_h)

        mimeData = QtCore.QMimeData()
        mimeData.setText("%W%;" + str(self.widget.idx))
        drag = QtGui.QDrag(self)
        
        drag.setPixmap(pix)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - self.rect().topLeft())
        drag.start(QtCore.Qt.MoveAction)
예제 #21
0
        def mouseMoveEvent(self, e):
            if not (e.buttons() & QtCore.Qt.LeftButton):
                return
            
            leni = ( e.pos() - self.mouse_click_ctx.info.pos ).manhattanLength()
            
            if (leni < QtWidgets.QApplication.startDragDistance()):
                return

            drag = QtGui.QDrag(self)
            mimeData = QtCore.QMimeData()

            mimeData.setData("application/octet-stream", 
                             pickle.dumps(self.device)
                             # pickle.dumps(None)
                             )
            drag.setMimeData(mimeData)

            dropAction = drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction)
예제 #22
0
    def startDrag(self, supportedActions):
        drag = QtGui.QDrag(self)

        # Gather items source urls
        imageUrls = []
        for item in self.selectedItems():
            tp = item.data(32)
            sourceUrl = QtCore.QUrl.fromLocalFile(tp.sourcePath)
            imageUrls.append(sourceUrl)

        # Configure mime data
        mimeData = QtCore.QMimeData()
        mimeData.setUrls(imageUrls)
        drag.setMimeData(mimeData)

        pixmap = QtGui.QPixmap(
            utils.getCustomIconPath(cfg.resourcePath, 'dragImage.png'))
        drag.setPixmap(pixmap)
        drag.exec_(supportedActions, QtCore.Qt.CopyAction)
예제 #23
0
    def startDrag(self, lb):

        pixmap = lb.dragpixmap
        pieza = lb.pieza
        itemData = QtCore.QByteArray(pieza.encode("utf-8"))

        self.owner.ultimaPieza = pieza
        self.owner.ponCursor()

        mimeData = QtCore.QMimeData()
        mimeData.setData("image/x-lc-dato", itemData)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(
            QtCore.QPoint(pixmap.width() // 2,
                          pixmap.height() // 2))
        drag.setPixmap(pixmap)

        drag.exec_(QtCore.Qt.MoveAction)
예제 #24
0
    def startDrag(self, supportedActions):
        item = self.currentItem()

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)
        pixmap = QtGui.QPixmap(item.data(QtCore.Qt.UserRole))
        location = item.data(QtCore.Qt.UserRole+1)

        dataStream << pixmap << location

        mimeData = QtCore.QMimeData()
        mimeData.setData('image/x-puzzle-piece', itemData)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(QtCore.QPoint(pixmap.width()/2, pixmap.height()/2))
        drag.setPixmap(pixmap)

        if drag.exec_(QtCore.Qt.MoveAction) == QtCore.Qt.MoveAction:
            self.takeItem(self.row(item))
예제 #25
0
    def _handleMousePress(self, index):
        self._leftMouseButton = int(
            QtWidgets.QApplication.mouseButtons()) == QtCore.Qt.LeftButton
        if index.parent().isValid() and self._leftMouseButton:
            itemData = QtCore.QByteArray()
            dataStream = QtCore.QDataStream(itemData,
                                            QtCore.QIODevice.WriteOnly)
            step = self.model().data(index, QtCore.Qt.UserRole + 1)
            if step._icon:
                pixmap = QtGui.QPixmap(step._icon)
            else:
                pixmap = QtGui.QPixmap()
                pixmap.convertFromImage(
                    QtGui.QImage(':/workflow/images/default_step_icon.png'))

            pixmap = pixmap.scaled(64,
                                   64,
                                   aspectRatioMode=QtCore.Qt.KeepAspectRatio,
                                   transformMode=QtCore.Qt.FastTransformation)
            hotspot = QtCore.QPoint(pixmap.width() / 2, pixmap.height() / 2)

            name = step.getName().encode(
                'utf-8')  # bytearray(step.getName(), sys.stdout.encoding)
            dataStream.writeUInt32(len(name))
            if sys.version_info < (3, 0):
                dataStream.writeRawData(name)
            else:
                buf = QtCore.QByteArray(name)
                dataStream << buf  #.writeRawData(name)

            dataStream << hotspot

            mimeData = QtCore.QMimeData()
            mimeData.setData('image/x-workflow-step', itemData)

            drag = QtGui.QDrag(self)
            drag.setMimeData(mimeData)
            drag.setHotSpot(hotspot)
            drag.setPixmap(pixmap)

            drag.exec_(QtCore.Qt.MoveAction)
예제 #26
0
    def newdisplaceListStartDrag(self, event):
        index = self.displacementList.indexAt(event.pos())
        if not index.isValid():
            return
        selected = self.displacementList.itemFromIndex(index)

        self.shaderCLicked(selected)

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)
        dataStream << QtCore.QByteArray(str(selected.text()))

        mimeData = QtCore.QMimeData()
        mimeData.setData("application/x-displacement", itemData)
        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)

        drag.setPixmap(
            self.displacementList.itemAt(event.pos()).icon().pixmap(50, 50))
        drag.setHotSpot(QtCore.QPoint(0, 0))
        drag.start(QtCore.Qt.MoveAction)
예제 #27
0
    def mousePressEvent(self, event):
        square = self.targetSquare(event.pos())
        found = self.findPiece(square)

        if found == -1:
            return

        location = self.pieceLocations[found]
        pixmap = self.piecePixmaps[found]

        del self.pieceLocations[found]
        del self.piecePixmaps[found]
        del self.pieceRects[found]

        if location == QtCore.QPoint(square.x() + 80, square.y() + 80):
            self.inPlace -= 1

        self.update(square)

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)

        dataStream << pixmap << location

        mimeData = QtCore.QMimeData()
        mimeData.setData('image/x-puzzle-piece', itemData)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(event.pos() - square.topLeft())
        drag.setPixmap(pixmap)

        if drag.start(QtCore.Qt.MoveAction) == 0:
            self.pieceLocations.insert(found, location)
            self.piecePixmaps.insert(found, pixmap)
            self.pieceRects.insert(found, square)
            self.update(self.targetSquare(event.pos()))

            if location == QtCore.QPoint(square.x() / 80, square.y() / 80):
                self.inPlace += 1
예제 #28
0
    def mousePressEvent(self, event):
        hotSpot = event.pos()

        mimeData = QtCore.QMimeData()
        mimeData.setText(self.text())
        mimeData.setData('application/x-hotspot',
                         '%d %d' % (hotSpot.x(), hotSpot.y()))

        pixmap = QtGui.QPixmap(self.size())
        self.render(pixmap)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setPixmap(pixmap)
        drag.setHotSpot(hotSpot)

        dropAction = drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction,
                                QtCore.Qt.CopyAction)

        if dropAction == QtCore.Qt.MoveAction:
            self.close()
            self.update()
예제 #29
0
    def mousePressEvent(self, event):
        item = self.itemAt(event.pos())
        if not item:
            return None

        if self.indexOfTopLevelItem(item) >= 0:
            # Item is a top level item and it doesn't have drag and drop abilities
            return QtWidgets.QTreeWidget.mousePressEvent(self, event)

        itemData = QtCore.QByteArray()
        dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.WriteOnly)
        step = item.data(0, QtCore.Qt.UserRole)
        if step._icon:
            pixmap = QtGui.QPixmap(step._icon)
        else:
            # icon = createDefaultImageIcon(step.getName())
            pixmap = QtGui.QPixmap()
            pixmap.convertFromImage(QtGui.QImage(':/workflow/images/default_step_icon.png'))

        pixmap = pixmap.scaled(64, 64, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.FastTransformation)
        hotspot = QtCore.QPoint(pixmap.width() / 2, pixmap.height() / 2)

        name = step.getName().encode('utf-8')  # bytearray(step.getName(), sys.stdout.encoding)
        dataStream.writeUInt32(len(name))
        dataStream.writeRawData(name)

        dataStream << hotspot

        mimeData = QtCore.QMimeData()
        mimeData.setData('image/x-workflow-step', itemData)

        drag = QtGui.QDrag(self)
        drag.setMimeData(mimeData)
        drag.setHotSpot(hotspot)
        drag.setPixmap(pixmap)

        drag.exec_(QtCore.Qt.MoveAction)

        return QtWidgets.QTreeWidget.mousePressEvent(self, event)
예제 #30
0
    def mouseMoveEvent(self, event):
        if QtCore.QLineF(
                QtCore.QPointF(event.screenPos()),
                QtCore.QPointF(event.buttonDownScreenPos(QtCore.Qt.LeftButton))
        ).length() < QtGui.QApplication.startDragDistance():
            return

        drag = QtGui.QDrag(event.widget())
        mime = QtCore.QMimeData()
        drag.setMimeData(mime)

        ColorItem.n += 1
        if ColorItem.n > 2 and QtCore.qrand() % 3 == 0:
            image = QtGui.QImage(':/images/head.png')
            mime.setImageData(image)
            drag.setPixmap(QtGui.QPixmap.fromImage(image).scaled(30, 40))
            drag.setHotSpot(QtCore.QPoint(15, 30))
        else:
            mime.setColorData(self.color)
            mime.setText(
                "#%02x%02x%02x" %
                (self.color.red(), self.color.green(), self.color.blue()))

            pixmap = QtGui.QPixmap(34, 34)
            pixmap.fill(QtCore.Qt.white)

            painter = QtGui.QPainter(pixmap)
            painter.translate(15, 15)
            painter.setRenderHint(QtGui.QPainter.Antialiasing)
            self.paint(painter, None, None)
            painter.end()

            pixmap.setMask(pixmap.createHeuristicMask())

            drag.setPixmap(pixmap)
            drag.setHotSpot(QtCore.QPoint(15, 20))

        drag.exec_()
        self.setCursor(QtCore.Qt.OpenHandCursor)