diff options
Diffstat (limited to 'src/application-lib/applicationinfo.h')
-rw-r--r-- | src/application-lib/applicationinfo.h | 115 |
1 files changed, 24 insertions, 91 deletions
diff --git a/src/application-lib/applicationinfo.h b/src/application-lib/applicationinfo.h index aefce00c..6dd9afa5 100644 --- a/src/application-lib/applicationinfo.h +++ b/src/application-lib/applicationinfo.h @@ -4,7 +4,7 @@ ** Copyright (C) 2018 Pelagicore AG ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Luxoft Application Manager. +** This file is part of the Qt Application Manager. ** ** $QT_BEGIN_LICENSE:LGPL-QTAS$ ** Commercial License Usage @@ -42,137 +42,70 @@ #pragma once -#include <QDataStream> #include <QDir> #include <QMap> #include <QString> #include <QStringList> #include <QVariantMap> +#include <QVector> #include <QtAppManCommon/global.h> -#include <QtAppManApplication/installationreport.h> + +QT_FORWARD_DECLARE_CLASS(QDataStream) QT_BEGIN_NAMESPACE_AM -class ApplicationManager; -class InstallationReport; +class PackageInfo; -class AbstractApplicationInfo +class ApplicationInfo { public: - AbstractApplicationInfo(); - virtual ~AbstractApplicationInfo() {} + ApplicationInfo(PackageInfo *packageInfo); + + PackageInfo *packageInfo() const; + QVariantMap toVariantMap() const; QString id() const; int uniqueNumber() const; - QMap<QString, QString> names() const; - QString name(const QString &language) const; - QString icon() const; - QString documentUrl() const; QVariantMap applicationProperties() const; QVariantMap allAppProperties() const; - - QVariantMap toVariantMap() const; - virtual void toVariantMapHelper(QVariantMap &map) const; - - virtual bool isAlias() const = 0; - virtual void writeToDataStream(QDataStream &ds) const; - virtual void validate() const Q_DECL_NOEXCEPT_EXPR(false); - - static bool isValidApplicationId(const QString &appId, bool isAliasName = false, QString *errorString = nullptr); - static bool isValidIcon(const QString &icon, QString &errorString); - static AbstractApplicationInfo *readFromDataStream(QDataStream &ds); - -protected: - virtual void read(QDataStream &ds); - - // static part from info.json - QString m_id; - int m_uniqueNumber; - - QMap<QString, QString> m_name; // language -> name - QString m_icon; // relative to info.json location - QString m_documentUrl; - QVariantMap m_sysAppProperties; - QVariantMap m_allAppProperties; - - friend class YamlApplicationScanner; -}; - -class ApplicationAliasInfo : public AbstractApplicationInfo -{ -public: - bool isAlias() const override { return true; } -}; - -class ApplicationInfo : public AbstractApplicationInfo -{ -public: - ApplicationInfo(); - - bool isAlias() const override { return false; } - void writeToDataStream(QDataStream &ds) const override; - void validate() const Q_DECL_NOEXCEPT_EXPR(false) override; - - const QDir &codeDir() const { return m_codeDir; } QString absoluteCodeFilePath() const; QString codeFilePath() const; QString runtimeName() const; QVariantMap runtimeParameters() const; - QVariantMap environmentVariables() const { return m_environmentVariables; } - bool isBuiltIn() const; QStringList capabilities() const; QStringList supportedMimeTypes() const; - QStringList categories() const; - QString version() const; QVariantMap openGLConfiguration() const; - QVariantList intents() const; bool supportsApplicationInterface() const; - void setSupportsApplicationInterface(bool supportsAppInterface); - void setBuiltIn(bool builtIn); + void writeToDataStream(QDataStream &ds) const; + static ApplicationInfo *readFromDataStream(PackageInfo *pkg, QDataStream &ds); - const InstallationReport *installationReport() const { return m_installationReport.data(); } - void setInstallationReport(InstallationReport *report) { m_installationReport.reset(report); } - QString manifestDir() const { return m_manifestDir.absolutePath(); } - uint uid() const { return m_uid; } - void setManifestDir(const QString &path) { m_manifestDir.setPath(path); } - void setCodeDir(const QString &path) { m_codeDir.setPath(path); } +private: + void read(QDataStream &ds); - void toVariantMapHelper(QVariantMap &map) const override; + // static part from info.json + PackageInfo *m_packageInfo; -private: - void read(QDataStream &ds) override; + QString m_id; + int m_uniqueNumber; + + QVariantMap m_sysAppProperties; + QVariantMap m_allAppProperties; QString m_codeFilePath; // relative to info.json location QString m_runtimeName; QVariantMap m_runtimeParameters; - QVariantMap m_environmentVariables; bool m_supportsApplicationInterface = false; - - bool m_builtIn = false; // system app - not removable - QStringList m_capabilities; - QStringList m_categories; - QStringList m_mimeTypes; - - QString m_version; - QVariantMap m_openGLConfiguration; - QVariantList m_intents; - QVariantMap m_dlt; - - // added by installer - QScopedPointer<InstallationReport> m_installationReport; - QDir m_manifestDir; - QDir m_codeDir; - uint m_uid = uint(-1); // unix user id - move to installationReport + QStringList m_supportedMimeTypes; // deprecated - friend class YamlApplicationScanner; friend class ApplicationManager; // needed to update installation status - friend class ApplicationDatabase; // needed to create ApplicationInfo objects + friend class PackageDatabase; // needed to create ApplicationInfo objects friend class InstallationTask; // needed to set m_uid and m_builtin during the installation + friend class YamlPackageScanner; Q_DISABLE_COPY(ApplicationInfo) }; |