/***************************************************************************
- * 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 *
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 {
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;
Status status() const;
+ QString prettyStatus() const;
Direction direction() const;
QString fileName() const;
QHostAddress address() const;
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); }
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);