X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Ftransfer.h;h=3612450ad95b550942d3d467935c03c895ac59ef;hp=96a5cc75ab59436e779f7b86eaac939e93c882a5;hb=8196302f8aa6e97dcfafe9d0008ac9c7366d89da;hpb=324ae188301d46e2268462bc0d8411baed8f00b8 diff --git a/src/common/transfer.h b/src/common/transfer.h index 96a5cc75..3612450a 100644 --- a/src/common/transfer.h +++ b/src/common/transfer.h @@ -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 * @@ -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,12 +86,13 @@ 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); void fileNameChanged(const QString &fileName); void fileSizeChanged(quint64 fileSize); + void transferredChanged(quint64 transferred); void nickChanged(const QString &nick); void error(const QString &errorString); @@ -97,7 +101,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 +120,7 @@ private: void setNick(const QString &nick); - State _state; + Status _status; Direction _direction; QString _fileName; QHostAddress _address; @@ -126,11 +130,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);