Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
0 results Searching
Select Git revision
Loading items
Show changes

Commits on Source 191

91 additional commits have been omitted to prevent performance issues.
38 files
+ 1042
415
Compare changes
  • Side-by-side
  • Inline

Files

+2 −1
Original line number Original line Diff line number Diff line
*.pro.user
*.pro.user
build_*/
build_*/
lib/qtlib/
lib/qtil/
lib/AppImageUpdate/
lib/AppImageUpdate/
lib/AppImageUpdate-prebuilt/

.gitlab-ci.yml

0 → 100644
+15 −0
Original line number Original line Diff line number Diff line
stages:
  - build

appimage:
  stage: build
  image: ubuntu:14.04
  only:
    - master
    - /^release\-.+/
  script:
    - ./scripts/package appimage
  artifacts:
    paths:
    - build_*/ocs-manager*.AppImage
    expire_in: 2 days

.travis.yml

deleted100644 → 0
+0 −15
Original line number Original line Diff line number Diff line
dist: trusty
sudo: required
services:
  - docker

branches:
  only:
    - master

script:
  - mntdir='/mnt/ocs-manager'
  #- docker run --rm -v $(pwd):${mntdir} ubuntu:16.04 /bin/bash -c "sh ${mntdir}/scripts/build-docker.sh snap"
  #- docker run --rm -v $(pwd):${mntdir} ubuntu:16.04 /bin/bash -c "sh ${mntdir}/scripts/build-docker.sh flatpak"
  - docker run --rm -v $(pwd):${mntdir} ubuntu:17.10 /bin/bash -c "sh ${mntdir}/scripts/build-docker.sh appimage"
  - cat transfer.log
+1 −2
Original line number Original line Diff line number Diff line
# ocs-manager
# ocs-manager


[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Build Status](https://travis-ci.org/opendesktop/ocs-manager.svg?branch=master)](https://travis-ci.org/opendesktop/ocs-manager)


A tool to handle item installation from OCS provider, file management, and apply themes.
A tool to handle item installation from OCS provider, file management, and apply themes.


Copyright: 2017, Opendesktop.org
Copyright: 2017-2019, Opendesktop.org


License: GPL-3+
License: GPL-3+
+9 −5
Original line number Original line Diff line number Diff line
@@ -11,7 +11,9 @@ HEADERS += \
    $${PWD}/src/handlers/confighandler.h \
    $${PWD}/src/handlers/confighandler.h \
    $${PWD}/src/handlers/systemhandler.h \
    $${PWD}/src/handlers/systemhandler.h \
    $${PWD}/src/handlers/ocsapihandler.h \
    $${PWD}/src/handlers/ocsapihandler.h \
    $${PWD}/src/handlers/itemhandler.h
    $${PWD}/src/handlers/itemhandler.h \
    $${PWD}/src/handlers/updatehandler.h \
    $${PWD}/src/handlers/desktopthemehandler.h


SOURCES += \
SOURCES += \
    $${PWD}/src/main.cpp \
    $${PWD}/src/main.cpp \
@@ -19,17 +21,19 @@ SOURCES += \
    $${PWD}/src/handlers/confighandler.cpp \
    $${PWD}/src/handlers/confighandler.cpp \
    $${PWD}/src/handlers/systemhandler.cpp \
    $${PWD}/src/handlers/systemhandler.cpp \
    $${PWD}/src/handlers/ocsapihandler.cpp \
    $${PWD}/src/handlers/ocsapihandler.cpp \
    $${PWD}/src/handlers/itemhandler.cpp
    $${PWD}/src/handlers/itemhandler.cpp \
    $${PWD}/src/handlers/updatehandler.cpp \
    $${PWD}/src/handlers/desktopthemehandler.cpp


RESOURCES += $${PWD}/configs/configs.qrc
RESOURCES += $${PWD}/configs/configs.qrc


INCLUDEPATH += $${PWD}/src
INCLUDEPATH += $${PWD}/src


unix:!ios:!android {
contains(DEFINES, APP_DESKTOP) {
    QT += dbus
    QT += dbus


    HEADERS += \
    HEADERS += \
        $${PWD}/src/handlers/desktopthemehandler.h \
        $${PWD}/src/updaters/appimageupdater.h \
        $${PWD}/src/desktopthemes/kdetheme.h \
        $${PWD}/src/desktopthemes/kdetheme.h \
        $${PWD}/src/desktopthemes/gnometheme.h \
        $${PWD}/src/desktopthemes/gnometheme.h \
        $${PWD}/src/desktopthemes/xfcetheme.h \
        $${PWD}/src/desktopthemes/xfcetheme.h \
@@ -37,7 +41,7 @@ unix:!ios:!android {
        $${PWD}/src/desktopthemes/matetheme.h
        $${PWD}/src/desktopthemes/matetheme.h


    SOURCES += \
    SOURCES += \
        $${PWD}/src/handlers/desktopthemehandler.cpp \
        $${PWD}/src/updaters/appimageupdater.cpp \
        $${PWD}/src/desktopthemes/kdetheme.cpp \
        $${PWD}/src/desktopthemes/kdetheme.cpp \
        $${PWD}/src/desktopthemes/gnometheme.cpp \
        $${PWD}/src/desktopthemes/gnometheme.cpp \
        $${PWD}/src/desktopthemes/xfcetheme.cpp \
        $${PWD}/src/desktopthemes/xfcetheme.cpp \
Original line number Original line Diff line number Diff line
{
{
    "id": "ocs-manager",
    "id": "ocs-manager",
    "name": "ocs-manager",
    "name": "ocs-manager",
    "version": "0.4.4",
    "version": "0.8.1",
    "organization": "Opendesktop.org",
    "organization": "Opendesktop.org",
    "domain": "org.opendesktop.ocs-manager",
    "domain": "org.opendesktop.ocs-manager",
    "icon": ":/desktop/ocs-manager.svg",
    "icon": ":/desktop/ocs-manager.svg",
@@ -9,5 +9,5 @@
    "license": "GPL-3+",
    "license": "GPL-3+",
    "author": "Opendesktop.org",
    "author": "Opendesktop.org",
    "contact": "contact@opendesktop.org",
    "contact": "contact@opendesktop.org",
    "homepage": "https://github.com/opendesktop/ocs-manager"
    "homepage": "https://git.opendesktop.org/akiraohgaki/ocs-manager"
}
}
Original line number Original line Diff line number Diff line
{
{
    "bin": {
    "bin": {
        "name": "Softwares",
        "name": "Software",
        "destination": "$HOME/.local/bin",
        "destination": "",
        "xdg_destination": "$HOME/.local/bin",
        "generic_destination": "$APP_DATA/bin"
        "generic_destination": "$APP_DATA/bin"
    },
    },
    "downloads": {
    "downloads": {
        "name": "Downloads",
        "name": "Downloads",
        "destination": "$XDG_DOWNLOAD_DIR",
        "destination": "",
        "xdg_destination": "$XDG_DOWNLOAD_DIR",
        "generic_destination": "$APP_DATA/downloads"
        "generic_destination": "$APP_DATA/downloads"
    },
    },
    "documents": {
    "documents": {
        "name": "Documents",
        "name": "Documents",
        "destination": "$XDG_DOCUMENTS_DIR",
        "destination": "",
        "xdg_destination": "$XDG_DOCUMENTS_DIR",
        "generic_destination": "$APP_DATA/documents"
        "generic_destination": "$APP_DATA/documents"
    },
    },
    "pictures": {
    "pictures": {
        "name": "Pictures",
        "name": "Pictures",
        "destination": "$XDG_PICTURES_DIR",
        "destination": "",
        "xdg_destination": "$XDG_PICTURES_DIR",
        "generic_destination": "$APP_DATA/pictures"
        "generic_destination": "$APP_DATA/pictures"
    },
    },
    "music": {
    "music": {
        "name": "Music",
        "name": "Music",
        "destination": "$XDG_MUSIC_DIR",
        "destination": "",
        "xdg_destination": "$XDG_MUSIC_DIR",
        "generic_destination": "$APP_DATA/music"
        "generic_destination": "$APP_DATA/music"
    },
    },
    "videos": {
    "videos": {
        "name": "Videos",
        "name": "Videos",
        "destination": "$XDG_VIDEOS_DIR",
        "destination": "",
        "xdg_destination": "$XDG_VIDEOS_DIR",
        "generic_destination": "$APP_DATA/videos"
        "generic_destination": "$APP_DATA/videos"
    },
    },
    "wallpapers": {
    "wallpapers": {
        "name": "Wallpapers",
        "name": "Wallpapers",
        "destination": "$XDG_DATA_HOME/wallpapers",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/wallpapers",
        "generic_destination": "$APP_DATA/wallpapers"
        "generic_destination": "$APP_DATA/wallpapers"
    },
    },
    "fonts": {
    "fonts": {
        "name": "Fonts",
        "name": "Fonts",
        "destination": "$HOME/.fonts",
        "destination": "",
        "xdg_destination": "$HOME/.fonts",
        "generic_destination": "$APP_DATA/fonts"
        "generic_destination": "$APP_DATA/fonts"
    },
    },
    "cursors": {
    "cursors": {
        "name": "Cursors",
        "name": "Cursors",
        "destination": "$HOME/.icons",
        "destination": "",
        "xdg_destination": "$HOME/.icons",
        "generic_destination": "$APP_DATA/cursors"
        "generic_destination": "$APP_DATA/cursors"
    },
    },
    "icons": {
    "icons": {
        "name": "Icons",
        "name": "Icons",
        "destination": "$XDG_DATA_HOME/icons",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/icons",
        "generic_destination": "$APP_DATA/icons"
        "generic_destination": "$APP_DATA/icons"
    },
    },
    "emoticons": {
    "emoticons": {
        "name": "Emoticons",
        "name": "Emoticons",
        "destination": "$XDG_DATA_HOME/emoticons",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/emoticons",
        "generic_destination": "$APP_DATA/emoticons"
        "generic_destination": "$APP_DATA/emoticons"
    },
    },
    "themes": {
    "themes": {
        "name": "Desktop Themes",
        "name": "Desktop Themes",
        "destination": "$HOME/.themes",
        "destination": "",
        "xdg_destination": "$HOME/.themes",
        "generic_destination": "$APP_DATA/themes"
        "generic_destination": "$APP_DATA/themes"
    },
    },
    "emerald_themes": {
    "emerald_themes": {
        "name": "Emerald Themes",
        "name": "Emerald Themes",
        "destination": "$HOME/.emerald/themes",
        "destination": "",
        "xdg_destination": "$HOME/.emerald/themes",
        "generic_destination": "$APP_DATA/emerald_themes"
        "generic_destination": "$APP_DATA/emerald_themes"
    },
    },
    "enlightenment_themes": {
    "enlightenment_themes": {
        "name": "Enlightenment Themes",
        "name": "Enlightenment Themes",
        "destination": "$HOME/.e/e/themes",
        "destination": "",
        "xdg_destination": "$HOME/.e/e/themes",
        "generic_destination": "$APP_DATA/enlightenment_themes"
        "generic_destination": "$APP_DATA/enlightenment_themes"
    },
    },
    "enlightenment_backgrounds": {
    "enlightenment_backgrounds": {
        "name": "Enlightenment Backgrounds",
        "name": "Enlightenment Backgrounds",
        "destination": "$HOME/.e/e/backgrounds",
        "destination": "",
        "xdg_destination": "$HOME/.e/e/backgrounds",
        "generic_destination": "$APP_DATA/enlightenment_backgrounds"
        "generic_destination": "$APP_DATA/enlightenment_backgrounds"
    },
    },
    "fluxbox_styles": {
    "fluxbox_styles": {
        "name": "Fluxbox Styles",
        "name": "Fluxbox Styles",
        "destination": "$HOME/.fluxbox/styles",
        "destination": "",
        "xdg_destination": "$HOME/.fluxbox/styles",
        "generic_destination": "$APP_DATA/fluxbox_styles"
        "generic_destination": "$APP_DATA/fluxbox_styles"
    },
    },
    "pekwm_themes": {
    "pekwm_themes": {
        "name": "PekWM Themes",
        "name": "PekWM Themes",
        "destination": "$HOME/.pekwm/themes",
        "destination": "",
        "xdg_destination": "$HOME/.pekwm/themes",
        "generic_destination": "$APP_DATA/pekwm_themes"
        "generic_destination": "$APP_DATA/pekwm_themes"
    },
    },
    "icewm_themes": {
    "icewm_themes": {
        "name": "IceWM Themes",
        "name": "IceWM Themes",
        "destination": "$HOME/.icewm/themes",
        "destination": "",
        "xdg_destination": "$HOME/.icewm/themes",
        "generic_destination": "$APP_DATA/icewm_themes"
        "generic_destination": "$APP_DATA/icewm_themes"
    },
    },
    "plasma_plasmoids": {
    "plasma_plasmoids": {
        "name": "Plasma Plasmoids",
        "name": "Plasma Plasmoids",
        "destination": "$XDG_DATA_HOME/plasma/plasmoids",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/plasma/plasmoids",
        "generic_destination": "$APP_DATA/plasma_plasmoids"
        "generic_destination": "$APP_DATA/plasma_plasmoids"
    },
    },
    "plasma_look_and_feel": {
    "plasma_look_and_feel": {
        "name": "Plasma Look and Feel",
        "name": "Plasma Look and Feel",
        "destination": "$XDG_DATA_HOME/plasma/look-and-feel",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/plasma/look-and-feel",
        "generic_destination": "$APP_DATA/plasma_look_and_feel"
        "generic_destination": "$APP_DATA/plasma_look_and_feel"
    },
    },
    "plasma_desktopthemes": {
    "plasma_desktopthemes": {
        "name": "Plasma Desktop Themes",
        "name": "Plasma Desktop Themes",
        "destination": "$XDG_DATA_HOME/plasma/desktoptheme",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/plasma/desktoptheme",
        "generic_destination": "$APP_DATA/plasma_desktopthemes"
        "generic_destination": "$APP_DATA/plasma_desktopthemes"
    },
    },
    "kwin_effects": {
    "kwin_effects": {
        "name": "KWin Effects",
        "name": "KWin Effects",
        "destination": "$XDG_DATA_HOME/kwin/effects",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/kwin/effects",
        "generic_destination": "$APP_DATA/kwin_effects"
        "generic_destination": "$APP_DATA/kwin_effects"
    },
    },
    "kwin_scripts": {
    "kwin_scripts": {
        "name": "KWin Scripts",
        "name": "KWin Scripts",
        "destination": "$XDG_DATA_HOME/kwin/scripts",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/kwin/scripts",
        "generic_destination": "$APP_DATA/kwin_scripts"
        "generic_destination": "$APP_DATA/kwin_scripts"
    },
    },
    "kwin_tabbox": {
    "kwin_tabbox": {
        "name": "KWin Window Switcher",
        "name": "KWin Window Switcher",
        "destination": "$XDG_DATA_HOME/kwin/tabbox",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/kwin/tabbox",
        "generic_destination": "$APP_DATA/kwin_tabbox"
        "generic_destination": "$APP_DATA/kwin_tabbox"
    },
    },
    "aurorae_themes": {
    "aurorae_themes": {
        "name": "Aurorae Themes",
        "name": "Aurorae Themes",
        "destination": "$XDG_DATA_HOME/aurorae/themes",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/aurorae/themes",
        "generic_destination": "$APP_DATA/aurorae_themes"
        "generic_destination": "$APP_DATA/aurorae_themes"
    },
    },
    "dekorator_themes": {
    "dekorator_themes": {
        "name": "deKorator Themes",
        "name": "deKorator Themes",
        "destination": "$XDG_DATA_HOME/deKorator/themes",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/deKorator/themes",
        "generic_destination": "$APP_DATA/dekorator_themes"
        "generic_destination": "$APP_DATA/dekorator_themes"
    },
    },
    "qtcurve": {
    "qtcurve": {
        "name": "QtCurve Themes",
        "name": "QtCurve Themes",
        "destination": "$XDG_DATA_HOME/QtCurve",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/QtCurve",
        "generic_destination": "$APP_DATA/qtcurve"
        "generic_destination": "$APP_DATA/qtcurve"
    },
    },
    "color_schemes": {
    "color_schemes": {
        "name": "KDE Color Schemes",
        "name": "KDE Color Schemes",
        "destination": "$XDG_DATA_HOME/color-schemes",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/color-schemes",
        "generic_destination": "$APP_DATA/color_schemes"
        "generic_destination": "$APP_DATA/color_schemes"
    },
    },
    "gnome_shell_extensions": {
    "gnome_shell_extensions": {
        "name": "Gnome Shell Extensions",
        "name": "Gnome Shell Extensions",
        "destination": "$XDG_DATA_HOME/gnome-shell/extensions",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/gnome-shell/extensions",
        "generic_destination": "$APP_DATA/gnome_shell_extensions"
        "generic_destination": "$APP_DATA/gnome_shell_extensions"
    },
    },
    "cinnamon_applets": {
    "cinnamon_applets": {
        "name": "Cinnamon Applets",
        "name": "Cinnamon Applets",
        "destination": "$XDG_DATA_HOME/cinnamon/applets",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/cinnamon/applets",
        "generic_destination": "$APP_DATA/cinnamon_applets"
        "generic_destination": "$APP_DATA/cinnamon_applets"
    },
    },
    "cinnamon_desklets": {
    "cinnamon_desklets": {
        "name": "Cinnamon Desklets",
        "name": "Cinnamon Desklets",
        "destination": "$XDG_DATA_HOME/cinnamon/desklets",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/cinnamon/desklets",
        "generic_destination": "$APP_DATA/cinnamon_desklets"
        "generic_destination": "$APP_DATA/cinnamon_desklets"
    },
    },
    "cinnamon_extensions": {
    "cinnamon_extensions": {
        "name": "Cinnamon Extensions",
        "name": "Cinnamon Extensions",
        "destination": "$XDG_DATA_HOME/cinnamon/extensions",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/cinnamon/extensions",
        "generic_destination": "$APP_DATA/cinnamon_extensions"
        "generic_destination": "$APP_DATA/cinnamon_extensions"
    },
    },
    "nautilus_scripts": {
    "nautilus_scripts": {
        "name": "Nautilus Scripts",
        "name": "Nautilus Scripts",
        "destination": "$XDG_DATA_HOME/nautilus/scripts",
        "destination": "",
        "xdg_destination": "$XDG_DATA_HOME/nautilus/scripts",
        "generic_destination": "$APP_DATA/nautilus_scripts"
        "generic_destination": "$APP_DATA/nautilus_scripts"
    },
    },
    "amarok_scripts": {
    "amarok_scripts": {
        "name": "Amarok Scripts",
        "name": "Amarok Scripts",
        "destination": "$KDEHOME/share/apps/amarok/scripts",
        "destination": "",
        "xdg_destination": "$KDEHOME/share/apps/amarok/scripts",
        "generic_destination": "$APP_DATA/amarok_scripts"
        "generic_destination": "$APP_DATA/amarok_scripts"
    },
    },
    "yakuake_skins": {
    "yakuake_skins": {
        "name": "Yakuake Skins",
        "name": "Yakuake Skins",
        "destination": "$KDEHOME/share/apps/yakuake/skins",
        "destination": "",
        "xdg_destination": "$KDEHOME/share/apps/yakuake/skins",
        "generic_destination": "$APP_DATA/yakuake_skins"
        "generic_destination": "$APP_DATA/yakuake_skins"
    },
    },
    "cairo_clock_themes": {
    "cairo_clock_themes": {
        "name": "Cairo-Clock Themes",
        "name": "Cairo-Clock Themes",
        "destination": "$HOME/.cairo-clock/themes",
        "destination": "",
        "xdg_destination": "$HOME/.cairo-clock/themes",
        "generic_destination": "$APP_DATA/cairo_clock_themes"
        "generic_destination": "$APP_DATA/cairo_clock_themes"
    },
    },
    "books": {
    "books": {
        "name": "Books",
        "name": "Books",
        "destination": "$APP_DATA/books",
        "destination": "",
        "xdg_destination": "$APP_DATA/books",
        "generic_destination": "$APP_DATA/books"
        "generic_destination": "$APP_DATA/books"
    },
    },
    "comics": {
    "comics": {
        "name": "Comics",
        "name": "Comics",
        "destination": "$APP_DATA/comics",
        "destination": "",
        "xdg_destination": "$APP_DATA/comics",
        "generic_destination": "$APP_DATA/comics"
        "generic_destination": "$APP_DATA/comics"
    }
    }
}
}
Original line number Original line Diff line number Diff line
@@ -59,6 +59,8 @@ bool KdeTheme::applyAsCursor() const
        << "c.writeEntry('cursorTheme', '" + themeName_ + "');";
        << "c.writeEntry('cursorTheme', '" + themeName_ + "');";


    if (evaluateScript(script)) {
    if (evaluateScript(script)) {
        QProcess::startDetached("sh -c \"echo 'Xcursor.theme: " + themeName_ + "' | xrdb -merge\"");

        auto setLaunchEnv = QDBusMessage::createMethodCall("org.kde.klauncher5", "/KLauncher", "org.kde.KLauncher", "setLaunchEnv");
        auto setLaunchEnv = QDBusMessage::createMethodCall("org.kde.klauncher5", "/KLauncher", "org.kde.KLauncher", "setLaunchEnv");
        setLaunchEnv.setArguments(QVariantList() << QVariant(QString("XCURSOR_THEME")) << QVariant(themeName_));
        setLaunchEnv.setArguments(QVariantList() << QVariant(QString("XCURSOR_THEME")) << QVariant(themeName_));
        QDBusConnection::sessionBus().call(setLaunchEnv);
        QDBusConnection::sessionBus().call(setLaunchEnv);
@@ -67,6 +69,10 @@ bool KdeTheme::applyAsCursor() const
        notifyChange.setArguments(QVariantList() << QVariant(qint32(5)) << QVariant(qint32(0)));
        notifyChange.setArguments(QVariantList() << QVariant(qint32(5)) << QVariant(qint32(0)));
        QDBusConnection::sessionBus().send(notifyChange);
        QDBusConnection::sessionBus().send(notifyChange);


        QProcess::startDetached("kwin --replace");
        QProcess::startDetached("kquitapp5 plasmashell");
        QProcess::startDetached("sh -c \"XCURSOR_THEME='" + themeName_ + "' kstart5 plasmashell\"");

        return true;
        return true;
    }
    }
    return false;
    return false;
Original line number Original line Diff line number Diff line
@@ -3,15 +3,15 @@
#include <QStringList>
#include <QStringList>
#include <QStandardPaths>
#include <QStandardPaths>


#include "qtlib_dir.h"
#include "qtil_dir.h"


ConfigHandler::ConfigHandler(QObject *parent)
ConfigHandler::ConfigHandler(QObject *parent)
    : QObject(parent)
    : QObject(parent)
{
{
    appConfig_ = qtlib::Config(":/configs");
    appConfig_ = Qtil::Config(":/configs");
    importAppConfigApplication();
    importAppConfigApplication();
    importAppConfigInstallTypes();
    importAppConfigInstallTypes();
    usrConfig_ = qtlib::Config(qtlib::Dir::genericConfigPath() + "/" + getAppConfigApplication()["id"].toString());
    usrConfig_ = Qtil::Config(Qtil::Dir::genericConfigPath() + "/" + getAppConfigApplication()["id"].toString());
}
}


QJsonObject ConfigHandler::getAppConfigApplication() const
QJsonObject ConfigHandler::getAppConfigApplication() const
@@ -31,6 +31,11 @@ QJsonObject ConfigHandler::getUsrConfigApplication() const


bool ConfigHandler::setUsrConfigApplication(const QJsonObject &object) const
bool ConfigHandler::setUsrConfigApplication(const QJsonObject &object) const
{
{
    /* object format
    {
        "update_checked_at": 1483658977219
    }
    */
    return usrConfig_.set("application", object);
    return usrConfig_.set("application", object);
}
}


@@ -64,6 +69,16 @@ bool ConfigHandler::setUsrConfigInstalledItems(const QJsonObject &object) const
    return usrConfig_.set("installed_items", object);
    return usrConfig_.set("installed_items", object);
}
}


QJsonObject ConfigHandler::getUsrConfigUpdateAvailableItems() const
{
    return usrConfig_.get("update_available_items");
}

bool ConfigHandler::setUsrConfigUpdateAvailableItems(const QJsonObject &object) const
{
    return usrConfig_.set("update_available_items", object);
}

bool ConfigHandler::setUsrConfigProvidersProvider(const QString &providerKey, const QJsonObject &object) const
bool ConfigHandler::setUsrConfigProvidersProvider(const QString &providerKey, const QJsonObject &object) const
{
{
    /* object format
    /* object format
@@ -162,6 +177,26 @@ bool ConfigHandler::removeUsrConfigInstalledItemsItem(const QString &itemKey) co
    return setUsrConfigInstalledItems(installedItems);
    return setUsrConfigInstalledItems(installedItems);
}
}


bool ConfigHandler::setUsrConfigUpdateAvailableItemsItem(const QString &itemKey, const QJsonObject &object) const
{
    /* object format
    {
        "installed_item": "http://example.com/downloads/example.AppImage",
        "update_method": "appimageupdate"
    }
    */
    auto updateAvailableItems = getUsrConfigUpdateAvailableItems();
    updateAvailableItems[itemKey] = object;
    return setUsrConfigUpdateAvailableItems(updateAvailableItems);
}

bool ConfigHandler::removeUsrConfigUpdateAvailableItemsItem(const QString &itemKey) const
{
    auto updateAvailableItems = getUsrConfigUpdateAvailableItems();
    updateAvailableItems.remove(itemKey);
    return setUsrConfigUpdateAvailableItems(updateAvailableItems);
}

void ConfigHandler::importAppConfigApplication()
void ConfigHandler::importAppConfigApplication()
{
{
    appConfigApplication_ = appConfig_.get("application");
    appConfigApplication_ = appConfig_.get("application");
@@ -172,8 +207,15 @@ void ConfigHandler::importAppConfigInstallTypes()
    auto installTypes = appConfig_.get("install_types");
    auto installTypes = appConfig_.get("install_types");
    for (const auto &key : installTypes