summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/metadatajob.h
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-03-09 10:21:54 +0200
committerKatja Marttila <katja.marttila@qt.io>2018-09-26 04:46:21 +0000
commit0f8d11ca8e8312fc0d0dc56e0c2a1154ff3de77c (patch)
treea0f00dbacd2c03ee3013e648464e2df61c7d1b8b /src/libs/installer/metadatajob.h
parentb3d140a2c899219a02c1b31efa4e36723eb71c07 (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.h15
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