summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/repositorycategory.cpp
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2019-06-24 09:21:39 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2019-08-15 10:00:37 +0000
commit55ecbb9660048b06959d471b783a05e4f6b47efd (patch)
treefdc942d40902f0df0ec769ad3baf8eb8d9749745 /src/libs/installer/repositorycategory.cpp
parent120e527ed16f6c579e46f71c9018ad35ad1cb528 (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.cpp15
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));
}
/*!