diff --git a/app/app.pri b/app/app.pri index 19a4a61a69d085a58068d6adb6323affd3b6f5e4..53ee440b9fd207041cdf79a18653e5b87957931a 100644 --- a/app/app.pri +++ b/app/app.pri @@ -12,7 +12,7 @@ HEADERS += \ $${PWD}/src/handlers/systemhandler.h \ $${PWD}/src/handlers/ocsapihandler.h \ $${PWD}/src/handlers/itemhandler.h \ - $${PWD}/src/handlers/appimagehandler.h \ + $${PWD}/src/handlers/updatehandler.h \ $${PWD}/src/handlers/desktopthemehandler.h SOURCES += \ @@ -22,7 +22,7 @@ SOURCES += \ $${PWD}/src/handlers/systemhandler.cpp \ $${PWD}/src/handlers/ocsapihandler.cpp \ $${PWD}/src/handlers/itemhandler.cpp \ - $${PWD}/src/handlers/appimagehandler.cpp \ + $${PWD}/src/handlers/updatehandler.cpp \ $${PWD}/src/handlers/desktopthemehandler.cpp RESOURCES += $${PWD}/configs/configs.qrc diff --git a/app/src/handlers/appimagehandler.cpp b/app/src/handlers/updatehandler.cpp similarity index 72% rename from app/src/handlers/appimagehandler.cpp rename to app/src/handlers/updatehandler.cpp index 7ca9fc28bb5f2ae23a6cd6bb05da6166bf7d626a..d81a0550b809220753c1277fde296e4b1e4f7a0d 100644 --- a/app/src/handlers/appimagehandler.cpp +++ b/app/src/handlers/updatehandler.cpp @@ -1,4 +1,4 @@ -#include "appimagehandler.h" +#include "updatehandler.h" #ifdef QTLIB_UNIX #include <thread> @@ -9,40 +9,41 @@ #include "handlers/confighandler.h" -AppImageHandler::AppImageHandler(ConfigHandler *configHandler, QObject *parent) +UpdateHandler::UpdateHandler(ConfigHandler *configHandler, QObject *parent) : QObject(parent), configHandler_(configHandler) {} -QString AppImageHandler::describeAppImage(const QString &path) const +QString UpdateHandler::checkAll() const { - QString updateInformation; +} + +QString UpdateHandler::update(const QString &path) const +{ +} #ifdef QTLIB_UNIX +QString UpdateHandler::describeAppImage(const QString &path) const +{ appimage::update::Updater appImageUpdater(path.toStdString()); + QString updateInformation; std::string description; if (appImageUpdater.describeAppImage(description)) { updateInformation = QString::fromStdString(description); } -#endif - return updateInformation; } -bool AppImageHandler::isUpdateAvailable(const QString &path) const +bool UpdateHandler::checkAppImage(const QString &path) const { -#ifdef QTLIB_UNIX appimage::update::Updater appImageUpdater(path.toStdString()); bool updateAvailable; if (appImageUpdater.checkForChanges(updateAvailable)) { return updateAvailable; } -#endif - return false; } -#ifdef QTLIB_UNIX -bool AppImageHandler::updateAppImage(const QString &path) +bool UpdateHandler::updateAppImage(const QString &path) { appimage::update::Updater appImageUpdater(path.toStdString(), false); if (appImageUpdater.start()) { @@ -54,12 +55,12 @@ bool AppImageHandler::updateAppImage(const QString &path) emit updateProgress(path, progress * 100); } } - emit updateFinished(path); + auto newPath = path; // dummy + emit updateFinished(path, newPath); if (!appImageUpdater.hasError()) { return true; } } - return false; } #endif diff --git a/app/src/handlers/appimagehandler.h b/app/src/handlers/updatehandler.h similarity index 51% rename from app/src/handlers/appimagehandler.h rename to app/src/handlers/updatehandler.h index 2cdc8605108ea2c11dd9601eb01e8e6d0bdd73fd..8d047eba8434fcf96ae4797654f744b313ba56dd 100644 --- a/app/src/handlers/appimagehandler.h +++ b/app/src/handlers/updatehandler.h @@ -4,26 +4,30 @@ class ConfigHandler; -class AppImageHandler : public QObject +class UpdateHandler : public QObject { Q_OBJECT public: - explicit AppImageHandler(ConfigHandler *configHandler, QObject *parent = nullptr); + explicit UpdateHandler(ConfigHandler *configHandler, QObject *parent = nullptr); signals: + void checkAllStarted(); + void checkAllFinished(); void updateStarted(QString path); - void updateFinished(QString path); + void updateFinished(QString path, QString newPath); void updateProgress(QString path, int progress); public slots: - QString describeAppImage(const QString &path) const; - bool isUpdateAvailable(const QString &path) const; + bool checkAll() const; + bool update(const QString &path) const; +private: #ifdef QTLIB_UNIX + QString describeAppImage(const QString &path) const; + bool checkAppImage(const QString &path) const; bool updateAppImage(const QString &path); #endif -private: ConfigHandler *configHandler_; }; diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp index 649b8a874d4f45d6f87bd19178cbdbd8cbea8d5f..22f7c95a3370f268386b3836bf858ba146e292cc 100644 --- a/app/src/websockets/websocketserver.cpp +++ b/app/src/websockets/websocketserver.cpp @@ -10,7 +10,7 @@ #include "handlers/systemhandler.h" #include "handlers/ocsapihandler.h" #include "handlers/itemhandler.h" -#include "handlers/appimagehandler.h" +#include "handlers/updatehandler.h" #include "handlers/desktopthemehandler.h" WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &serverName, quint16 serverPort, QObject *parent) @@ -25,7 +25,7 @@ WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &se systemHandler_ = new SystemHandler(this); ocsApiHandler_ = new OcsApiHandler(configHandler_, this); itemHandler_ = new ItemHandler(configHandler_, this); - appImageHandler_ = new AppImageHandler(configHandler_, this); + updateHandler_ = new UpdateHandler(configHandler_, this); desktopThemeHandler_ = new DesktopThemeHandler(this); connect(itemHandler_, &ItemHandler::metadataSetChanged, this, &WebSocketServer::itemMetadataSetChanged); @@ -39,9 +39,11 @@ WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &se connect(itemHandler_, &ItemHandler::uninstallStarted, this, &WebSocketServer::itemUninstallStarted); connect(itemHandler_, &ItemHandler::uninstallFinished, this, &WebSocketServer::itemUninstallFinished); - connect(appImageHandler_, &AppImageHandler::updateStarted, this, &WebSocketServer::appImageUpdateStarted); - connect(appImageHandler_, &AppImageHandler::updateFinished, this, &WebSocketServer::appImageUpdateFinished); - connect(appImageHandler_, &AppImageHandler::updateProgress, this, &WebSocketServer::appImageUpdateProgress); + connect(updateHandler_, &UpdateHandler::checkAllStarted, this, &WebSocketServer::updateCheckAllStarted); + connect(updateHandler_, &UpdateHandler::checkAllFinished, this, &WebSocketServer::updateCheckAllFinished); + connect(updateHandler_, &UpdateHandler::updateStarted, this, &WebSocketServer::updateUpdateStarted); + connect(updateHandler_, &UpdateHandler::updateFinished, this, &WebSocketServer::updateUpdateFinished); + connect(updateHandler_, &UpdateHandler::updateProgress, this, &WebSocketServer::updateUpdateProgress); } WebSocketServer::~WebSocketServer() @@ -197,26 +199,39 @@ void WebSocketServer::itemUninstallFinished(QJsonObject result) sendMessage("", "ItemHandler::uninstallFinished", data); } -void WebSocketServer::appImageUpdateStarted(QString path) +void WebSocketServer::updateCheckAllStarted() +{ + QJsonArray data; + sendMessage("", "ItemHandler::checkAllStarted", data); +} + +void WebSocketServer::updateCheckAllFinished() +{ + QJsonArray data; + sendMessage("", "ItemHandler::checkAllFinished", data); +} + +void WebSocketServer::updateUpdateStarted(QString path) { QJsonArray data; data.append(path); - sendMessage("", "AppImageHandler::updateStarted", data); + sendMessage("", "UpdateHandler::updateStarted", data); } -void WebSocketServer::appImageUpdateFinished(QString path) +void WebSocketServer::updateUpdateFinished(QString path, QString newPath) { QJsonArray data; data.append(path); - sendMessage("", "AppImageHandler::updateFinished", data); + data.append(newPath); + sendMessage("", "UpdateHandler::updateFinished", data); } -void WebSocketServer::appImageUpdateProgress(QString path, int progress) +void WebSocketServer::updateUpdateProgress(QString path, int progress) { QJsonArray data; data.append(path); data.append(progress); - sendMessage("", "AppImageHandler::updateProgress", data); + sendMessage("", "UpdateHandler::updateProgress", data); } void WebSocketServer::receiveMessage(const QString &id, const QString &func, const QJsonArray &data) @@ -341,19 +356,12 @@ void WebSocketServer::receiveMessage(const QString &id, const QString &func, con else if (func == "ItemHandler::uninstall") { 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())); + // UpdateHandler + else if (func == "UpdateHandler::checkAll") { + resultData.append(updateHandler_->checkAll()); } - else if (func == "AppImageHandler::updateAppImage") { -#ifdef QTLIB_UNIX - resultData.append(appImageHandler_->updateAppImage(data.at(0).toString())); -#else - resultData.append(false); -#endif + else if (func == "UpdateHandler::update") { + resultData.append(updateHandler_->update(data.at(0).toString())); } // DesktopThemeHandler else if (func == "DesktopThemeHandler::desktopEnvironment") { diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h index 0e4659b5975772c06f512ce4f139c69dc1e8f0da..51ccffe17e2a8c3d818f754ed2fa0fb9d9649c4e 100644 --- a/app/src/websockets/websocketserver.h +++ b/app/src/websockets/websocketserver.h @@ -12,7 +12,7 @@ class ConfigHandler; class SystemHandler; class OcsApiHandler; class ItemHandler; -class AppImageHandler; +class UpdateHandler; class DesktopThemeHandler; class WebSocketServer : public QObject @@ -51,9 +51,11 @@ private slots: void itemUninstallStarted(QJsonObject result); void itemUninstallFinished(QJsonObject result); - void appImageUpdateStarted(QString path); - void appImageUpdateFinished(QString path); - void appImageUpdateProgress(QString path, int progress); + void updateCheckAllStarted(); + void updateCheckAllFinished(); + void updateUpdateStarted(QString path); + void updateUpdateFinished(QString path, QString newPath); + void updateUpdateProgress(QString path, int progress); private: void receiveMessage(const QString &id, const QString &func, const QJsonArray &data); @@ -63,7 +65,7 @@ private: SystemHandler *systemHandler_; OcsApiHandler *ocsApiHandler_; ItemHandler *itemHandler_; - AppImageHandler *appImageHandler_; + UpdateHandler *updateHandler_; DesktopThemeHandler *desktopThemeHandler_; QString serverName_;