Skip to content
Snippets Groups Projects
qtlib_package.h 1.05 KiB
Newer Older
akiraohgaki's avatar
akiraohgaki committed
/**
akiraohgaki's avatar
akiraohgaki committed
 * qtlib
akiraohgaki's avatar
akiraohgaki committed
 *
 * @author      Akira Ohgaki <akiraohgaki@gmail.com>
 * @copyright   Akira Ohgaki
akiraohgaki's avatar
akiraohgaki committed
 * @license     https://opensource.org/licenses/LGPL-3.0
akiraohgaki's avatar
akiraohgaki committed
 * @link        https://github.com/akiraohgaki/qtlib
akiraohgaki's avatar
akiraohgaki committed
 */

#pragma once

#include <QObject>

akiraohgaki's avatar
akiraohgaki committed
namespace qtlib {
akiraohgaki's avatar
akiraohgaki committed

class Package : public QObject
{
    Q_OBJECT

public:
akiraohgaki's avatar
akiraohgaki committed
    explicit Package(const QString &path = "", QObject *parent = 0);
akiraohgaki's avatar
akiraohgaki committed

akiraohgaki's avatar
akiraohgaki committed
    Package(const Package &other, QObject *parent = 0);
akiraohgaki's avatar
akiraohgaki committed
    Package &operator =(const Package &other);
akiraohgaki's avatar
akiraohgaki committed

    QString path() const;
    void setPath(const QString &path);

akiraohgaki's avatar
akiraohgaki committed
#ifdef QTLIB_UNIX
akiraohgaki's avatar
akiraohgaki committed
    bool installAsProgram(const QString &newPath);
    bool installAsFile(const QString &newPath);
    bool installAsArchive(const QString &destinationDirPath);
    bool installAsPlasmapkg(const QString &type = "plasmoid");
    bool uninstallAsPlasmapkg(const QString &type = "plasmoid");
#endif

#ifdef Q_OS_ANDROID
    bool installAsApk();
#endif

private:
akiraohgaki's avatar
akiraohgaki committed
#ifdef QTLIB_UNIX
akiraohgaki's avatar
akiraohgaki committed
    bool execute(const QString &program, const QStringList &arguments);
#endif

    QString path_;
};

akiraohgaki's avatar
akiraohgaki committed
} // namespace qtlib