diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-03-09 10:21:54 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-09-26 04:46:21 +0000 |
commit | 0f8d11ca8e8312fc0d0dc56e0c2a1154ff3de77c (patch) | |
tree | a0f00dbacd2c03ee3013e648464e2df61c7d1b8b /src/libs/installer/metadatajob.h | |
parent | b3d140a2c899219a02c1b31efa4e36723eb71c07 (diff) |
Enable usage of categorized repositories
This change allows to categorize repositories in component selection
page. Using categorized repositories will by default show only
uncagetorized repository items in tree. Selecting one or several categories
using checkbox will update the treeview to show all selected categorized repository
content. Repository's metadata is fetched only after the category is selected.
Categorized repositories can be defined in config.xml:
<RepositoryCategories>
<RemoteRepositories>
<Displayname>category 1</Displayname>
<Repository> <Url>(url)</Url></Repository>
</RemoteReposiories>
...
<RepositoryCategories
Change-Id: I6eae9daee70b1afa322144d52c11f25d0b655ebf
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
Diffstat (limited to 'src/libs/installer/metadatajob.h')
-rw-r--r-- | src/libs/installer/metadatajob.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/installer/metadatajob.h b/src/libs/installer/metadatajob.h index e3f5aceea..973275de3 100644 --- a/src/libs/installer/metadatajob.h +++ b/src/libs/installer/metadatajob.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -46,6 +46,12 @@ struct Metadata Repository repository; }; +struct ArchiveMetadata +{ + QString archive; + Metadata metaData; +}; + class INSTALLER_EXPORT MetadataJob : public Job { Q_OBJECT @@ -61,7 +67,7 @@ public: explicit MetadataJob(QObject *parent = 0); ~MetadataJob(); - QList<Metadata> metadata() const { return m_metadata.values(); } + QList<Metadata> metadata() const; Repository repositoryForDirectory(const QString &directory) const; void setPackageManagerCore(PackageManagerCore *core) { m_core = core; } void addCompressedPackages(bool addCompressPackage) { m_addCompressedPackages = addCompressPackage;} @@ -85,13 +91,13 @@ private: void reset(); void resetCompressedFetch(); Status parseUpdatesXml(const QList<FileTaskResult> &results); + QSet<Repository> getRepositories(); private: PackageManagerCore *m_core; QList<FileTaskItem> m_packages; TempDirDeleter m_tempDirDeleter; - QHash<QString, Metadata> m_metadata; QFutureWatcher<FileTaskResult> m_xmlTask; QFutureWatcher<FileTaskResult> m_metadataTask; QHash<QFutureWatcher<void> *, QObject*> m_unzipTasks; @@ -103,6 +109,9 @@ private: int m_taskNumber; int m_totalTaskCount; QStringList m_shaMissmatchPackages; + QHash<QString, ArchiveMetadata> m_fetchedArchive; + QHash<QString, Metadata> m_metaFromDefaultRepositories; + QHash<QString, Metadata> m_metaFromArchive; //for faster lookups. }; } // namespace QInstaller |