From d2447c8a21d0f32ffba0f37e3d56b6bc20e2bc25 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Tue, 21 Nov 2017 04:12:37 +0900
Subject: [PATCH] Add function

---
 app/src/handlers/appimagehandler.cpp   | 27 +++++++++++++++++++++++---
 app/src/handlers/appimagehandler.h     |  1 +
 app/src/websockets/websocketserver.cpp |  3 +++
 3 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/app/src/handlers/appimagehandler.cpp b/app/src/handlers/appimagehandler.cpp
index 3f60d9a..3f3fa70 100644
--- a/app/src/handlers/appimagehandler.cpp
+++ b/app/src/handlers/appimagehandler.cpp
@@ -10,13 +10,31 @@ AppImageHandler::AppImageHandler(ConfigHandler *configHandler, QObject *parent)
     : QObject(parent), configHandler_(configHandler)
 {}
 
+QString AppImageHandler::describeAppImage(const QString &path) const
+{
+    QString updateInformation;
+
+#ifdef QTLIB_UNIX
+    appimage::update::Updater appImageUpdater(path.toStdString());
+    std::string description;
+    if (appImageUpdater.describeAppImage(description)) {
+        updateInformation = QString::fromStdString(description);
+    }
+#endif
+
+    return updateInformation;
+}
+
 bool AppImageHandler::isUpdateAvailable(const QString &path) const
 {
 #ifdef QTLIB_UNIX
     appimage::update::Updater appImageUpdater(path.toStdString());
     bool updateAvailable;
-    return appImageUpdater.checkForChanges(updateAvailable);
+    if (appImageUpdater.checkForChanges(updateAvailable)) {
+        return updateAvailable;
+    }
 #endif
+
     return false;
 }
 
@@ -24,7 +42,10 @@ bool AppImageHandler::isUpdateAvailable(const QString &path) const
 bool AppImageHandler::updateAppImage(const QString &path) const
 {
     appimage::update::Updater appImageUpdater(path.toStdString(), false);
-    return appImageUpdater.start();
-    // TODO: make signals&slots bindings later
+    /*if (appImageUpdater.start()) {
+        // TODO: make signals&slots bindings later
+    }*/
+
+    return false;
 }
 #endif
diff --git a/app/src/handlers/appimagehandler.h b/app/src/handlers/appimagehandler.h
index 1360c76..9b23165 100644
--- a/app/src/handlers/appimagehandler.h
+++ b/app/src/handlers/appimagehandler.h
@@ -12,6 +12,7 @@ public:
     explicit AppImageHandler(ConfigHandler *configHandler, QObject *parent = nullptr);
 
 public slots:
+    QString describeAppImage(const QString &path) const;
     bool isUpdateAvailable(const QString &path) const;
 
 #ifdef QTLIB_UNIX
diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp
index ae229f8..5079900 100644
--- a/app/src/websockets/websocketserver.cpp
+++ b/app/src/websockets/websocketserver.cpp
@@ -316,6 +316,9 @@ void WebSocketServer::receiveMessage(const QString &id, const QString &func, con
         itemHandler_->uninstall(data.at(0).toString());
     }
     // AppImageHandler
+    else if (func == "AppImageHandler::describeAppImage") {
+        resultData.append(appImageHandler_->describeAppImage(data.at(0).toString()));
+    }
     else if (func == "AppImageHandler::isUpdateAvailable") {
         resultData.append(appImageHandler_->isUpdateAvailable(data.at(0).toString()));
     }
-- 
GitLab