src: Yearly copyright bump
[quassel.git] / src / client / clienttransfer.cpp
index 8398097..337d757 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 by the Quassel Project                        *
+ *   Copyright (C) 2005-2020 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#include <QFile>
-
 #include "clienttransfer.h"
 
-INIT_SYNCABLE_OBJECT(ClientTransfer)
-ClientTransfer::ClientTransfer(const QUuid &uuid, QObject *parent)
-    : Transfer(uuid, parent),
-    _file(0)
+#include <QFile>
+
+ClientTransfer::ClientTransfer(const QUuid& uuid, QObject* parent)
+    : Transfer(uuid, parent)
+    , _file(nullptr)
 {
-    connect(this, SIGNAL(stateChanged(State)), SLOT(onStateChanged(State)));
+    connect(this, &Transfer::statusChanged, this, &ClientTransfer::onStatusChanged);
 }
 
+quint64 ClientTransfer::transferred() const
+{
+    if (status() == Status::Completed)
+        return fileSize();
+
+    return _file ? _file->size() : 0;
+}
 
 void ClientTransfer::cleanUp()
 {
     if (_file) {
         _file->close();
         _file->deleteLater();
-        _file = 0;
+        _file = nullptr;
     }
 }
 
-
 QString ClientTransfer::savePath() const
 {
     return _savePath;
 }
 
-
-void ClientTransfer::accept(const QString &savePath) const
+void ClientTransfer::accept(const QString& savePath) const
 {
     _savePath = savePath;
-    PeerPtr ptr = 0;
+    PeerPtr ptr = nullptr;
     REQUEST_OTHER(requestAccepted, ARG(ptr));
     emit accepted();
 }
 
-
 void ClientTransfer::reject() const
 {
-    PeerPtr ptr = 0;
+    PeerPtr ptr = nullptr;
     REQUEST_OTHER(requestRejected, ARG(ptr));
     emit rejected();
 }
 
-
-void ClientTransfer::dataReceived(PeerPtr, const QByteArray &data)
+void ClientTransfer::dataReceived(PeerPtr, const QByteArray& data)
 {
     // TODO: proper error handling (relay to core)
     if (!_file) {
         _file = new QFile(_savePath, this);
-        if (!_file->open(QFile::WriteOnly|QFile::Truncate)) {
+        if (!_file->open(QFile::WriteOnly | QFile::Truncate)) {
             qWarning() << Q_FUNC_INFO << "Could not open file:" << _file->errorString();
             return;
         }
@@ -82,21 +84,22 @@ void ClientTransfer::dataReceived(PeerPtr, const QByteArray &data)
         qWarning() << Q_FUNC_INFO << "Could not write to file:" << _file->errorString();
         return;
     }
-}
 
+    emit transferredChanged(transferred());
+}
 
-void ClientTransfer::onStateChanged(Transfer::State state)
+void ClientTransfer::onStatusChanged(Transfer::Status status)
 {
-    switch(state) {
-        case Completed:
-            if (_file)
-                _file->close();
-            break;
-        case Failed:
-            if (_file)
-                _file->remove();
-            break;
-        default:
-            ;
+    switch (status) {
+    case Status::Completed:
+        if (_file)
+            _file->close();
+        break;
+    case Status::Failed:
+        if (_file)
+            _file->remove();
+        break;
+    default:
+        ;
     }
 }