diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2019-06-24 09:21:39 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2019-08-15 10:00:37 +0000 |
commit | 55ecbb9660048b06959d471b783a05e4f6b47efd (patch) | |
tree | fdc942d40902f0df0ec769ad3baf8eb8d9749745 /src/libs/installer/repositorycategory.cpp | |
parent | 120e527ed16f6c579e46f71c9018ad35ad1cb528 (diff) |
Update repository categories on server authentication request
If repositories in a category were located on a server that requires
user authentication, IFW couldn't update information of the repositories
inside a category during runtime. This prevents for example storing
credentials from the authentication request dialog and blocks the
usage of that category.
Add a method for updating contents in repository categories and a
unit test for the new method. Also some minor tweaks to relevant
bits of code.
Task-number: QTIFW-1358
Change-Id: Idfa2559df6d0d2a6de428b8d5fb1f7672aa1e300
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/repositorycategory.cpp')
-rw-r--r-- | src/libs/installer/repositorycategory.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/libs/installer/repositorycategory.cpp b/src/libs/installer/repositorycategory.cpp index 42fb41c99..ce06480c8 100644 --- a/src/libs/installer/repositorycategory.cpp +++ b/src/libs/installer/repositorycategory.cpp @@ -28,6 +28,7 @@ #include "repositorycategory.h" #include "filedownloaderfactory.h" +#include "constants.h" #include <QDataStream> #include <QFileInfo> @@ -102,16 +103,20 @@ void RepositoryCategory::setTooltip(const QString &tooltip) */ QSet<Repository> RepositoryCategory::repositories() const { - return variantListToSet<Repository>(m_data.values(QLatin1String("Repositories"))); + return variantListToSet<Repository>(m_data.values(scRepositories)); } /*! - Inserts a set of \a repositories to the category. + Inserts a set of \a repositories to the category. Removes old \a repositories + if \a replace is set to \c true. */ -void RepositoryCategory::setRepositories(const QSet<Repository> repositories) +void RepositoryCategory::setRepositories(const QSet<Repository> repositories, const bool replace) { + if (replace) + m_data.remove(scRepositories); + foreach (const Repository &repository, repositories) - m_data.insertMulti(QLatin1String("Repositories"), QVariant().fromValue(repository)); + m_data.insertMulti(scRepositories, QVariant().fromValue(repository)); } /*! @@ -119,7 +124,7 @@ void RepositoryCategory::setRepositories(const QSet<Repository> repositories) */ void RepositoryCategory::addRepository(const Repository repository) { - m_data.insertMulti(QLatin1String("Repositories"), QVariant().fromValue(repository)); + m_data.insertMulti(scRepositories, QVariant().fromValue(repository)); } /*! |