示例#1
0
class RecieveThread(QtCore.QThread, TcpConfig):
    err = QtCore.pyqtSignal(str)
    downloadStart = QtCore.pyqtSignal(str)
    decryptStart = QtCore.pyqtSignal()
    decompressStart = QtCore.pyqtSignal()
    downloadComplete = QtCore.pyqtSignal()
    fileDownloaded = QtCore.pyqtSignal(str)
    fileCount = QtCore.pyqtSignal(int)

    update = False
    cur_path = str

    def __init__(self):
        super(RecieveThread, self).__init__()
        self.client = TcpClient()
        QtCore.QObject.connect(self.client, QtCore.SIGNAL("downloadStart(QString)"), self.on_download_start)
        QtCore.QObject.connect(self.client, QtCore.SIGNAL("decryptStart()"), self.on_decrypt_start)
        QtCore.QObject.connect(self.client, QtCore.SIGNAL("decompressStart()"), self.on_decompress_start)
        QtCore.QObject.connect(self.client, QtCore.SIGNAL("downloadComplete()"), self.on_download_complete)
        QtCore.QObject.connect(self.client, QtCore.SIGNAL("fileDownloaded(QString)"), self.on_file_downloaded)
        QtCore.QObject.connect(self.client, QtCore.SIGNAL("fileCount(int)"), self.on_file_count)

    def set_configs(self, tcpserver, tcpport, usr, pwd, update, path):
        self.TCPServer = tcpserver
        self.TCPPort = tcpport
        self.user = usr
        self.passwd = pwd
        self.update = update
        self.cur_path = path

    def on_file_downloaded(self, fname):
        self.fileDownloaded.emit(fname)

    def on_download_start(self, fname):
        self.downloadStart.emit(fname)

    def on_decrypt_start(self):
        self.decryptStart.emit()

    def on_decompress_start(self):
        self.decompressStart.emit()

    def on_download_complete(self):
        self.downloadComplete.emit()

    def on_file_count(self, cnt):
        self.fileCount.emit(cnt)

    def run(self):
        if self.client.connect(self.TCPServer, self.TCPPort, self.user, self.passwd):
            self.client.get_files(self.update, self.cur_path)
            self.client.close()