From 5d622026b2b61a1c1ebc3c2f70f929a45f95038e Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Fri, 16 Jun 2017 17:41:23 +0900
Subject: [PATCH] Check if item installed

---
 app/src/handlers/itemhandler.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/app/src/handlers/itemhandler.cpp b/app/src/handlers/itemhandler.cpp
index 52b5128..39aa42b 100644
--- a/app/src/handlers/itemhandler.cpp
+++ b/app/src/handlers/itemhandler.cpp
@@ -48,6 +48,13 @@ void ItemHandler::getItem(const QString &command, const QString &url, const QStr
     QJsonObject result;
     result["metadata"] = metadata;
 
+    if (command == "install" && configHandler_->getUsrConfigInstalledItems().contains(itemKey)) {
+        result["status"] = QString("error_downloadstart");
+        result["message"] = tr("The item already installed");
+        emit downloadStarted(result);
+        return;
+    }
+
     auto itemMetadataSet = metadataSet();
 
     if (itemMetadataSet.contains(itemKey)) {
@@ -124,6 +131,14 @@ void ItemHandler::getItemByOcsUrl(const QString &ocsUrl, const QString &provider
 void ItemHandler::uninstall(const QString &itemKey)
 {
     QJsonObject result;
+
+    if (!configHandler_->getUsrConfigInstalledItems().contains(itemKey)) {
+        result["status"] = QString("error_uninstallstart");
+        result["message"] = tr("The item not installed");
+        emit uninstallStarted(result);
+        return;
+    }
+
     result["status"] = QString("success_uninstallstart");
     result["message"] = tr("Uninstalling");
     emit uninstallStarted(result);
-- 
GitLab