common: Simplify SyncableObject macros and usage
[quassel.git] / src / common / transfer.h
index cb3efb3..a77676d 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -18,8 +18,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef TRANSFER_H
-#define TRANSFER_H
+#pragma once
 
 #include <QHostAddress>
 #include <QUuid>
@@ -32,14 +31,14 @@ class Transfer : public SyncableObject
     Q_OBJECT
     SYNCABLE_OBJECT
 
-    Q_PROPERTY(QUuid uuid READ uuid);
-    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);
-    Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged);
-    Q_PROPERTY(quint64 fileSize READ fileSize WRITE setFileSize NOTIFY fileSizeChanged);
-    Q_PROPERTY(QString nick READ nick WRITE setNick NOTIFY nickChanged);
+    Q_PROPERTY(QUuid uuid READ uuid)
+    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)
+    Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged)
+    Q_PROPERTY(quint64 fileSize READ fileSize WRITE setFileSize NOTIFY fileSizeChanged)
+    Q_PROPERTY(QString nick READ nick WRITE setNick NOTIFY nickChanged)
 
 public:
     enum class Status {
@@ -62,10 +61,10 @@ 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; }
 
     QUuid uuid() const;
     Status status() const;
+    QString prettyStatus() const;
     Direction direction() const;
     QString fileName() const;
     QHostAddress address() const;
@@ -73,6 +72,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,12 +84,13 @@ public slots:
     virtual void requestRejected(PeerPtr peer) { Q_UNUSED(peer); }
 
 signals:
-    void statusChanged (Transfer::Status state);
+    void statusChanged(Transfer::Status state);
     void directionChanged(Transfer::Direction direction);
     void addressChanged(const QHostAddress &address);
     void portChanged(quint16 port);
     void fileNameChanged(const QString &fileName);
     void fileSizeChanged(quint64 fileSize);
+    void transferredChanged(quint64 transferred);
     void nickChanged(const QString &nick);
 
     void error(const QString &errorString);
@@ -133,5 +135,3 @@ 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);
-
-#endif