diff options
Diffstat (limited to 'src/libs/installer/packagemanagercore.h')
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 68 |
1 files changed, 55 insertions, 13 deletions
diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index c63447543..170ddf557 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2023 The Qt Company Ltd. +** Copyright (C) 2024 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -29,6 +29,7 @@ #define PACKAGEMANAGERCORE_H #include "binaryformat.h" +#include "binarycontent.h" #include "component.h" #include "protocol.h" #include "repository.h" @@ -45,11 +46,14 @@ namespace QInstaller { +struct AliasSource; class ComponentModel; +class ComponentAlias; class ScriptEngine; class PackageManagerCorePrivate; class PackageManagerProxyFactory; class Settings; +class ComponentSortFilterProxyModel; // -- PackageManagerCore @@ -80,7 +84,8 @@ public: Canceled = 3, Unfinished = 4, ForceUpdate = 5, - EssentialUpdated = 6 + EssentialUpdated = 6, + NoPackagesFound = 7 }; Status status() const; QString error() const; @@ -105,6 +110,14 @@ public: AllNoReplacements = (Root | Descendants | Dependencies), All = (Root | Descendants | Dependencies | Replacements) }; + + struct DownloadItem + { + QString fileName; + QString sourceUrl; + bool checkSha1CheckSum; + }; + Q_DECLARE_FLAGS(ComponentTypes, ComponentType) static QFont virtualComponentsFont(); @@ -137,8 +150,9 @@ public: void setProxyFactory(PackageManagerProxyFactory *factory); PackagesList remotePackages(); - bool fetchRemotePackagesTree(); + bool fetchRemotePackagesTree(const QStringList& components = QStringList()); bool fetchCompressedPackagesTree(); + bool fetchPackagesWithFallbackRepositories(const QStringList& components, bool &fallBackReposFetched); bool run(); void reset(); @@ -194,12 +208,20 @@ public: void setOfflineBinaryName(const QString &name); QString offlineBinaryName() const; - bool testChecksum() const; - void setTestChecksum(bool test); + void addAliasSource(const AliasSource &source); Q_INVOKABLE void addUserRepositories(const QStringList &repositories); Q_INVOKABLE void setTemporaryRepositories(const QStringList &repositories, bool replace = false, bool compressed = false); + bool addQBspRepositories(const QStringList &repositories); + bool validRepositoriesAvailable() const; + Q_INVOKABLE void setAllowCompressedRepositoryInstall(bool allow); + bool allowCompressedRepositoryInstall() const; + bool showRepositoryCategories() const; + QVariantMap organizedRepositoryCategories() const; + void enableRepositoryCategory(const QString &repositoryName, bool enable); + void runProgram(); + Q_INVOKABLE void autoAcceptMessageBoxes(); Q_INVOKABLE void autoRejectMessageBoxes(); Q_INVOKABLE void setMessageBoxAutomaticAnswer(const QString &identifier, int button); @@ -236,7 +258,10 @@ public: void appendUpdaterComponent(Component *components); QList<Component *> components(ComponentTypes mask, const QString ®exp = QString()) const; - Component *componentByName(const QString &identifier) const; + Q_INVOKABLE QInstaller::Component *componentByName(const QString &identifier) const; + Q_INVOKABLE QList<QInstaller::Component *> components(const QString ®exp = QString()) const; + + ComponentAlias *aliasByName(const QString &name) const; Q_INVOKABLE bool calculateComponentsToInstall() const; QList<Component*> orderedComponentsToInstall() const; @@ -247,6 +272,9 @@ public: Q_INVOKABLE bool calculateComponentsToUninstall() const; QList<Component*> componentsToUninstall() const; + QList<Component *> componentsMarkedForInstallation() const; + QList<ComponentAlias *> aliasesMarkedForInstallation() const; + QString componentsToInstallError() const; QString componentsToUninstallError() const; QString installReason(Component *component) const; @@ -258,9 +286,14 @@ public: ComponentModel *defaultComponentModel() const; ComponentModel *updaterComponentModel() const; + ComponentSortFilterProxyModel *componentSortFilterProxyModel(); + void listInstalledPackages(const QString ®exp = QString()); - void listAvailablePackages(const QString ®exp = QString(), + bool listAvailablePackages(const QString ®exp = QString(), const QHash<QString, QString> &filters = QHash<QString, QString>()); + bool listAvailableAliases(const QString ®exp = QString()); + + PackageManagerCore::Status searchAvailableUpdates(); PackageManagerCore::Status updateComponentsSilently(const QStringList &componentsToUpdate); PackageManagerCore::Status installSelectedComponentsSilently(const QStringList& components); PackageManagerCore::Status installDefaultComponentsSilently(); @@ -288,6 +321,8 @@ public: void setPackageViewer(); Q_INVOKABLE bool isPackageViewer() const; + void resetBinaryMarkerSupplement(); + void setUserSetBinaryMarker(qint64 magicMarker); Q_INVOKABLE bool isUserSetBinaryMarker() const; @@ -302,9 +337,11 @@ public: Q_INVOKABLE bool gainAdminRights(); Q_INVOKABLE void dropAdminRights(); + Q_INVOKABLE bool hasAdminRights() const; void setCheckAvailableSpace(bool check); - bool checkAvailableSpace(QString &message) const; + bool checkAvailableSpace(); + QString availableSpaceMessage() const; Q_INVOKABLE quint64 requiredDiskSpace() const; Q_INVOKABLE quint64 requiredTemporaryDiskSpace() const; @@ -348,14 +385,20 @@ public: void clearLicenses(); QHash<QString, QMap<QString, QString>> sortedLicenses(); void addLicenseItem(const QHash<QString, QVariantMap> &licenses); + bool hasLicenses() const; void createLocalDependencyHash(const QString &component, const QString &dependencies) const; void createAutoDependencyHash(const QString &component, const QString &oldDependencies, const QString &newDependencies) const; bool resetLocalCache(bool init = false); bool clearLocalCache(QString *error = nullptr); + bool isValidCache() const; + template <typename T> bool loadComponentScripts(const T &components, const bool postScript = false); + void saveGivenArguments(const QStringList &args); + QStringList givenArguments() const; + public Q_SLOTS: bool runInstaller(); bool runUninstaller(); @@ -375,11 +418,9 @@ Q_SIGNALS: void aboutCalculateComponentsToUninstall() const; void finishedCalculateComponentsToUninstall() const; void componentAdded(QInstaller::Component *comp); - void rootComponentsAdded(QList<QInstaller::Component*> components); - void updaterComponentsAdded(QList<QInstaller::Component*> components); void valueChanged(const QString &key, const QString &value); void statusChanged(QInstaller::PackageManagerCore::Status); - void defaultTranslationsLoadedForLanguage(QLocale::Language lang); + void defaultTranslationsLoadedForLanguage(QLocale lang); void currentPageChanged(int page); void finishButtonClicked(); @@ -442,17 +483,18 @@ private: QString findDisplayVersion(const QString &componentName, const QHash<QString, QInstaller::Component*> &components, const QString& versionKey, QHash<QString, bool> &visited); ComponentModel *componentModel(PackageManagerCore *core, const QString &objectName) const; - QList<Component *> componentsMarkedForInstallation() const; bool fetchPackagesTree(const PackagesList &packages, const LocalPackagesMap installedPackages); bool componentUninstallableFromCommandLine(const QString &componentName); - bool checkComponentsForInstallation(const QStringList &components, QString &errorMessage); + bool checkComponentsForInstallation(const QStringList &names, QString &errorMessage, bool &unstableAliasFound); private: PackageManagerCorePrivate *const d; friend class PackageManagerCorePrivate; QHash<QString, QString> m_fileDialogAutomaticAnswers; QHash<QString, QStringList> m_localVirtualWithDependants; + QString m_availableSpaceMessage; + QStringList m_arguments; private: // remove once we deprecate isSelected, setSelected etc... |