dcc: Always clean up if a transfer completed or failed
[quassel.git] / src / common / transfer.cpp
index 68ef9b4..e4d3847 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2015 by the Quassel Project                        *
+ *   Copyright (C) 2005-2016 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -81,10 +81,38 @@ void Transfer::setStatus(Transfer::Status status)
         _status = status;
         SYNC(ARG(status));
         emit statusChanged(status);
+        if (status == Status::Completed || status == Status::Failed) {
+            cleanUp();
+        }
     }
 }
 
 
+QString Transfer::prettyStatus() const
+{
+    switch(status()) {
+        case Status::New:
+            return tr("New");
+        case Status::Pending:
+            return tr("Pending");
+        case Status::Connecting:
+            return tr("Connecting");
+        case Status::Transferring:
+            return tr("Transferring");
+        case Status::Paused:
+            return tr("Paused");
+        case Status::Completed:
+            return tr("Completed");
+        case Status::Failed:
+            return tr("Failed");
+        case Status::Rejected:
+            return tr("Rejected");
+    }
+
+    return QString();
+}
+
+
 
 Transfer::Direction Transfer::direction() const
 {
@@ -187,7 +215,6 @@ void Transfer::setError(const QString &errorString)
     qWarning() << Q_FUNC_INFO << errorString;
     emit error(errorString);
     setStatus(Status::Failed);
-    cleanUp();
 }