Add accessors for the amount of transferred data to Transfer classes
[quassel.git] / src / common / transfer.h
index 96a5cc7..48deb5b 100644 (file)
@@ -33,7 +33,7 @@ class Transfer : public SyncableObject
     SYNCABLE_OBJECT
 
     Q_PROPERTY(QUuid uuid READ uuid);
-    Q_PROPERTY(Transfer::State state READ state WRITE setState NOTIFY stateChanged);
+    Q_PROPERTY(Transfer::Status status READ status WRITE setStatus NOTIFY statusChanged);
     Q_PROPERTY(Transfer::Direction direction READ direction WRITE setDirection NOTIFY directionChanged);
     Q_PROPERTY(QHostAddress address READ address WRITE setAddress NOTIFY addressChanged);
     Q_PROPERTY(quint16 port READ port WRITE setPort NOTIFY portChanged);
@@ -42,7 +42,7 @@ class Transfer : public SyncableObject
     Q_PROPERTY(QString nick READ nick WRITE setNick NOTIFY nickChanged);
 
 public:
-    enum class State {
+    enum class Status {
         New,
         Pending,
         Connecting,
@@ -62,10 +62,11 @@ public:
 
     Transfer(const QUuid &uuid, QObject *parent = 0); // for creating a syncable object client-side
     Transfer(Direction direction, const QString &nick, const QString &fileName, const QHostAddress &address, quint16 port, quint64 size = 0, QObject *parent = 0);
-    inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
+    inline const QMetaObject *syncMetaObject() const override { return &staticMetaObject; }
 
     QUuid uuid() const;
-    State state() const;
+    Status status() const;
+    QString prettyStatus() const;
     Direction direction() const;
     QString fileName() const;
     QHostAddress address() const;
@@ -73,6 +74,8 @@ public:
     quint64 fileSize() const;
     QString nick() const;
 
+    virtual quint64 transferred() const = 0;
+
 public slots:
     // called on the client side
     virtual void accept(const QString &savePath) const { Q_UNUSED(savePath); }
@@ -83,7 +86,7 @@ public slots:
     virtual void requestRejected(PeerPtr peer) { Q_UNUSED(peer); }
 
 signals:
-    void stateChanged(Transfer::State state);
+    void statusChanged (Transfer::Status state);
     void directionChanged(Transfer::Direction direction);
     void addressChanged(const QHostAddress &address);
     void portChanged(quint16 port);
@@ -97,7 +100,7 @@ signals:
     void rejected(PeerPtr peer = 0) const;
 
 protected slots:
-    void setState(Transfer::State state);
+    void setStatus(Transfer::Status status);
     void setError(const QString &errorString);
 
     // called on the client side through sync calls
@@ -116,7 +119,7 @@ private:
     void setNick(const QString &nick);
 
 
-    State _state;
+    Status _status;
     Direction _direction;
     QString _fileName;
     QHostAddress _address;
@@ -126,11 +129,11 @@ private:
     QUuid _uuid;
 };
 
-Q_DECLARE_METATYPE(Transfer::State)
+Q_DECLARE_METATYPE(Transfer::Status)
 Q_DECLARE_METATYPE(Transfer::Direction)
 
-QDataStream &operator<<(QDataStream &out, Transfer::State state);
-QDataStream &operator>>(QDataStream &in, Transfer::State &state);
+QDataStream &operator<<(QDataStream &out, Transfer::Status state);
+QDataStream &operator>>(QDataStream &in, Transfer::Status &state);
 QDataStream &operator<<(QDataStream &out, Transfer::Direction direction);
 QDataStream &operator>>(QDataStream &in, Transfer::Direction &direction);