Make the Transfer::accept() and ::reject() machinery work
[quassel.git] / src / common / transfer.cpp
index bba0c43..25f1e20 100644 (file)
@@ -29,7 +29,7 @@ Transfer::Transfer(const QUuid &uuid, QObject *parent)
     _fileSize(0),
     _uuid(uuid)
 {
-    renameObject(QString("Transfer/%1").arg(_uuid.toString()));
+    init();
 }
 
 Transfer::Transfer(Direction direction, const QString &nick, const QString &fileName, const QHostAddress &address, quint16 port, quint64 fileSize, QObject *parent)
@@ -42,8 +42,15 @@ Transfer::Transfer(Direction direction, const QString &nick, const QString &file
     _fileSize(fileSize),
     _nick(nick),
     _uuid(QUuid::createUuid())
+{
+    init();
+}
+
+
+void Transfer::init()
 {
     renameObject(QString("Transfer/%1").arg(_uuid.toString()));
+    setAllowClientUpdates(true);
 }
 
 
@@ -164,3 +171,37 @@ void Transfer::setNick(const QString &nick)
         emit nickChanged(nick);
     }
 }
+
+
+QString Transfer::savePath() const
+{
+    return _savePath;
+}
+
+
+void Transfer::accept(const QString &savePath) const
+{
+    _savePath = savePath;
+    PeerPtr ptr = 0;
+    REQUEST_OTHER(requestAccepted, ARG(ptr));
+    emit accepted();
+}
+
+
+void Transfer::reject() const
+{
+    REQUEST_OTHER(requestRejected, NO_ARG);
+    emit rejected();
+}
+
+
+void Transfer::requestAccepted(PeerPtr peer)
+{
+    emit accepted(peer);
+}
+
+
+void Transfer::requestRejected()
+{
+    emit rejected();
+}