modernize: Use nullptr
[quassel.git] / src / client / clienttransfer.cpp
index 9f70e63..97bbbc7 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2014 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  *
 
 #include "clienttransfer.h"
 
-INIT_SYNCABLE_OBJECT(ClientTransfer)
 ClientTransfer::ClientTransfer(const QUuid &uuid, QObject *parent)
     : Transfer(uuid, parent),
-    _file(0)
+    _file(nullptr)
 {
-    connect(this, SIGNAL(stateChanged(State)), SLOT(onStateChanged(State)));
+    connect(this, SIGNAL(statusChanged(Transfer::Status)), SLOT(onStatusChanged(Transfer::Status)));
+}
+
+
+quint64 ClientTransfer::transferred() const
+{
+    if (status() == Status::Completed)
+        return fileSize();
+
+    return _file ? _file->size() : 0;
 }
 
 
@@ -36,7 +44,7 @@ void ClientTransfer::cleanUp()
     if (_file) {
         _file->close();
         _file->deleteLater();
-        _file = 0;
+        _file = nullptr;
     }
 }
 
@@ -50,7 +58,7 @@ QString ClientTransfer::savePath() const
 void ClientTransfer::accept(const QString &savePath) const
 {
     _savePath = savePath;
-    PeerPtr ptr = 0;
+    PeerPtr ptr = nullptr;
     REQUEST_OTHER(requestAccepted, ARG(ptr));
     emit accepted();
 }
@@ -58,7 +66,7 @@ void ClientTransfer::accept(const QString &savePath) const
 
 void ClientTransfer::reject() const
 {
-    PeerPtr ptr = 0;
+    PeerPtr ptr = nullptr;
     REQUEST_OTHER(requestRejected, ARG(ptr));
     emit rejected();
 }
@@ -82,17 +90,19 @@ 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:
+    switch(status) {
+        case Status::Completed:
             if (_file)
                 _file->close();
             break;
-        case Failed:
+        case Status::Failed:
             if (_file)
                 _file->remove();
             break;