Exemple #1
0
    def mimeData(self, indexes):
        """ Returns an object that contains serialized items of data corresponding to the list of indexes specified. """
        mimeData = QMimeData()
        encodedData = QByteArray()
        stream = QDataStream(encodedData, QIODevice.WriteOnly)

        for index in indexes:
            if index.isValid() and index.column() == 0:
                # Note: We select full rows, but only want to make one item per row
                item = self.nodeFromIndex(index)

                # For performance reasons we do not make a full copy
                # Instead we just serialize unique name and current row
                # We also don't remove the item using self.removeRows but rather handle it inside of dropMimeData
                stream.writeInt32(item.typeId())
                stream.writeInt64(item.uuid())
                stream.writeInt32(index.row())

        mimeData.setData("application/vnd.text.list", encodedData)

        return mimeData
Exemple #2
0
    def saveGeometry(self):
        """
        Saves the geometry of this subwindow (see https://bugreports.qt.io/browse/QTBUG-18648)

        :return: a ByteArray instance
        """
        array = QByteArray()
        stream = QDataStream(array, QIODevice.WriteOnly)
        stream.writeUInt32(0x1D9D0CB)
        stream.writeUInt16(1)
        stream.writeUInt16(0)
        frameGeom = self.frameGeometry()
        stream.writeInt64(frameGeom.x())
        stream.writeInt64(frameGeom.y())
        stream.writeInt64(frameGeom.width())
        stream.writeInt64(frameGeom.height())
        normalGeom = self.normalGeometry()
        stream.writeInt64(normalGeom.x())
        stream.writeInt64(normalGeom.y())
        stream.writeInt64(normalGeom.width())
        stream.writeInt64(normalGeom.height())
        stream.writeUInt32(self.windowState() & Qt.WindowMaximized)
        stream.writeUInt32(self.windowState() & Qt.WindowFullScreen)
        return array