Exemplo n.º 1
0
    def reject(self):
        if self.child.isHidden():
            self.child.show()

        redraw(self.child)

        self.saveDialogSettings()
        self.done(False)
Exemplo n.º 2
0
    def accept(self):
        if self.child.isHidden():
            self.child.close()
        else:
            for key, value in self.child.taskData.items():
                if self.may_change(value):
                    le = self.findChild(QtGui.QLineEdit, "le_{0}".format(key))
                    le_value = le.text()
                    if self.is_changed(self.child.taskData.get(key), le_value):
                        self.child.taskData[key] = le_value

            redraw(self.child)

        self.saveDialogSettings()
        self.done(True)
Exemplo n.º 3
0
    def mousePressEvent_Left(self, event):
        child = self.childAt(event.pos())
        if not child:
            return

        self.selected = child

        # Извлекаем отображение иконки
#       pixmap = QtGui.QPixmap(child.pixmap())
        pixmap = QtGui.QPixmap(child.taskData.get('img'))

        offset = event.pos() - child.pos()

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

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

        # Создаём QDrag
        rect = child.rect()
        w, h = rect.width(), rect.height()
        pixmap = QtGui.QPixmap(w, h)
        pixmap.fill(QtGui.QColor(255, 255, 255, 127))

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

        # Выделяем иконку
        highlight(child)

        res = drag.exec_(QtCore.Qt.CopyAction | QtCore.Qt.MoveAction, QtCore.Qt.MoveAction)
#       print res
        if res == QtCore.Qt.MoveAction:
            child.close()
        else:
            redraw(child)
Exemplo n.º 4
0
    def dropEvent(self, event):
        source = event.source()
        pos = event.pos()

        if source == self:
            offset = None
            if event.mimeData().hasFormat('application/x-dnditemdata'):
                itemData = event.mimeData().data('application/x-dnditemdata')
                dataStream = QtCore.QDataStream(itemData, QtCore.QIODevice.ReadOnly)

                pixmap = QtGui.QPixmap()
                offset = QtCore.QPoint()
                dataStream >> offset

            self.selected.taskData['pos'] = pos
            draw_task(self, self.selected.taskData, offset=offset)

            event.setDropAction(QtCore.Qt.MoveAction)
            event.accept()
            return

        if source == None:
            urls = event.mimeData().urls()
            if urls:
                sources = [i.path()[1:] for i in urls]

                child = self.childAt(pos)
                if child:
                    child_sources = child.taskData.get('sources', [])
                    child_sources.update(sources)
                    redraw(child)
                else:
                    task = init_task(self, sources, pos)
                    draw_task(self, task, middle=1)

                event.accept()
            else:
                event.ignore()
            return