+
+
+void ClientTransfer::dataReceived(PeerPtr, const QByteArray &data)
+{
+ // TODO: proper error handling (relay to core)
+ if (!_file) {
+ _file = new QFile(_savePath, this);
+ if (!_file->open(QFile::WriteOnly|QFile::Truncate)) {
+ qWarning() << Q_FUNC_INFO << "Could not open file:" << _file->errorString();
+ return;
+ }
+ }
+
+ if (!_file->isOpen())
+ return;
+
+ if (_file->write(data) < 0) {
+ qWarning() << Q_FUNC_INFO << "Could not write to file:" << _file->errorString();
+ return;
+ }
+}
+
+
+void ClientTransfer::onStateChanged(Transfer::State state)
+{
+ switch(state) {
+ case Completed:
+ if (_file)
+ _file->close();
+ break;
+ case Failed:
+ if (_file)
+ _file->remove();
+ break;
+ default:
+ ;
+ }
+}