class ResourceReply(QNetworkReply): def __init__(self, filePath, parent): super(ResourceReply, self).__init__(parent) self.source = QFile(filePath, self) QTimer.singleShot(0, self._SH_finish) def __del__(self): print "ResourceReply deleted", self.source.fileName() def isSequential(self): return True def open(self, mode): self.source.open(mode) return super(ResourceReply, self).open(mode) def close(self): self.source.close() super(ResourceReply, self).close() def bytesAvailable(self): return self.source.bytesAvailable() + super(ResourceReply, self).bytesAvailable() def readData(self, maxSize): return self.source.read(maxSize) def abort(self): self.source.close() def _SH_finish(self): self.setHeader(QNetworkRequest.ContentLengthHeader, self.source.bytesAvailable()) self.open(QNetworkReply.ReadOnly) self.finished.emit()
class ResourceReply(QNetworkReply): def __init__(self, filePath, parent): super(ResourceReply, self).__init__(parent) self.source = QFile(filePath, self) QTimer.singleShot(0, self._SH_finish); def __del__(self): print "ResourceReply deleted", self.source.fileName() def isSequential(self): return True def open(self, mode): self.source.open(mode) return super(ResourceReply, self).open(mode) def close(self): self.source.close(); super(ResourceReply, self).close() def bytesAvailable(self): return self.source.bytesAvailable() + super(ResourceReply, self).bytesAvailable() def readData(self, maxSize): return self.source.read(maxSize) def abort(self): self.source.close() def _SH_finish(self): self.setHeader(QNetworkRequest.ContentLengthHeader, self.source.bytesAvailable()) self.open(QNetworkReply.ReadOnly) self.finished.emit()