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
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