diff --git a/app/app.pri b/app/app.pri index 7e03a9c0fa9cc860f9a31358cc220eead6766d19..6bdffab4892be94624a7a0484d41735d5c2519f8 100644 --- a/app/app.pri +++ b/app/app.pri @@ -29,6 +29,7 @@ unix:!ios:!android { QT += dbus HEADERS += \ + $${PWD}/src/handlers/appimagehandler.h \ $${PWD}/src/handlers/desktopthemehandler.h \ $${PWD}/src/desktopthemes/kdetheme.h \ $${PWD}/src/desktopthemes/gnometheme.h \ @@ -37,6 +38,7 @@ unix:!ios:!android { $${PWD}/src/desktopthemes/matetheme.h SOURCES += \ + $${PWD}/src/handlers/appimagehandler.cpp \ $${PWD}/src/handlers/desktopthemehandler.cpp \ $${PWD}/src/desktopthemes/kdetheme.cpp \ $${PWD}/src/desktopthemes/gnometheme.cpp \ diff --git a/app/src/handlers/appimagehandler.cpp b/app/src/handlers/appimagehandler.cpp new file mode 100644 index 0000000000000000000000000000000000000000..920610e2ad710c457a05b266498759b3106f8ef0 --- /dev/null +++ b/app/src/handlers/appimagehandler.cpp @@ -0,0 +1,32 @@ +#include "appimagehandler.h" + +#ifdef QTLIB_UNIX +#include "appimage/update.h" +#endif + +#include "handlers/confighandler.h" + +AppImageHandler::AppImageHandler(ConfigHandler *configHandler, QObject *parent) + : QObject(parent), configHandler_(configHandler) +{} + +bool AppImageHandler::isUpdateAvailable(const QString &path) const +{ +#ifdef QTLIB_UNIX + appimage::update::Updater appImageUpdater(path.toStdString()); + bool updateAvailable; + if (appImageUpdater.checkForChanges(updateAvailable)) { + return true; + } +#endif + return false; +} + +#ifdef QTLIB_UNIX +bool AppImageHandler::updateAppImage(const QString &path) const +{ + appimage::update::Updater appImageUpdater(path.toStdString(), false); + return appImageUpdater.start(); + // TODO: make signals&slots bindings later +} +#endif diff --git a/app/src/handlers/appimagehandler.h b/app/src/handlers/appimagehandler.h new file mode 100644 index 0000000000000000000000000000000000000000..1360c76021faf4795a62360a70ef11be0b481863 --- /dev/null +++ b/app/src/handlers/appimagehandler.h @@ -0,0 +1,23 @@ +#pragma once + +#include <QObject> + +class ConfigHandler; + +class AppImageHandler : public QObject +{ + Q_OBJECT + +public: + explicit AppImageHandler(ConfigHandler *configHandler, QObject *parent = nullptr); + +public slots: + bool isUpdateAvailable(const QString &path) const; + +#ifdef QTLIB_UNIX + bool updateAppImage(const QString &path) const; +#endif + +private: + ConfigHandler *configHandler_; +};