示例#1
0
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()
示例#2
0
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()