From 75544f51c6a800aae2001bc11f8d489fd3d79e00 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Fri, 1 Dec 2017 00:32:22 +0900
Subject: [PATCH] Error handling

---
 app/src/handlers/updatehandler.cpp | 44 ++++++++++++++++--------------
 1 file changed, 23 insertions(+), 21 deletions(-)

diff --git a/app/src/handlers/updatehandler.cpp b/app/src/handlers/updatehandler.cpp
index 6ae6d3d..28c4114 100644
--- a/app/src/handlers/updatehandler.cpp
+++ b/app/src/handlers/updatehandler.cpp
@@ -147,31 +147,33 @@ void UpdateHandler::updateAppImage(const QString &fileKey)
             }
         }
 
-        if (!appImageUpdater.hasError()) {
-            if (newFilename != filename) {
-                auto installedItem = configHandler_->getUsrConfigInstalledItems()[itemKey].toObject();
-                QJsonArray files;
-                for (const auto &file : installedItem["files"].toArray()) {
-                    if (file.toString() == filename) {
-                        files.append(QJsonValue(newFilename));
-                    }
-                    else {
-                        files.append(file);
-                    }
-                }
-                installedItem["files"] = files;
-                installedItem["installed_at"] = QDateTime::currentMSecsSinceEpoch();
-                configHandler_->setUsrConfigInstalledItemsItem(itemKey, installedItem);
-                qtlib::File(path).remove();
-            }
-
-            configHandler_->removeUsrConfigUpdateAvailableFile(fileKey);
-        }
-        else {
+        if (appImageUpdater.hasError()) {
             std::string nextMessage;
             while (appImageUpdater.nextStatusMessage(nextMessage)) {
                 qWarning() << QString::fromStdString(nextMessage);
             }
+
+            emit updateFinished(fileKey);
+            return;
+        }
+
+        configHandler_->removeUsrConfigUpdateAvailableFile(fileKey);
+
+        if (newFilename != filename) {
+            auto installedItem = configHandler_->getUsrConfigInstalledItems()[itemKey].toObject();
+            QJsonArray files;
+            for (const auto &file : installedItem["files"].toArray()) {
+                if (file.toString() == filename) {
+                    files.append(QJsonValue(newFilename));
+                }
+                else {
+                    files.append(file);
+                }
+            }
+            installedItem["files"] = files;
+            installedItem["installed_at"] = QDateTime::currentMSecsSinceEpoch();
+            configHandler_->setUsrConfigInstalledItemsItem(itemKey, installedItem);
+            qtlib::File(path).remove();
         }
 
         emit updateFinished(fileKey);
-- 
GitLab