summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
authorNiels Weber <niels.weber@digia.com>2013-04-18 14:39:25 +0200
committerNiels Weber <niels.weber@digia.com>2013-04-23 13:10:40 +0200
commit546e74bde62fe657a45f5b7626a7aacf48421c4d (patch)
treef56a4135862b981a9ebd940d27b29d40cb9818a5 /src/libs/installer
parentbbd2cab7c4097a0776c28a5e1d4cc2f8b66b53c1 (diff)
Add a DisplayName setting for repositories.
If DisplayName is set, it will be shown instead of the URL. This serves to hide a repositories URL while still being able to pinpoint bugreports to a specific repository. Task-number: QTIFW-244 Change-Id: Iaf0bc1612b42f1044da936d0fc2c4ad0e1e85d61 Reviewed-by: Tim Jenssen <tim.jenssen@digia.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'src/libs/installer')
-rw-r--r--src/libs/installer/getrepositorymetainfojob.cpp7
-rw-r--r--src/libs/installer/getrepositorymetainfojob.h2
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp2
-rw-r--r--src/libs/installer/repository.cpp32
-rw-r--r--src/libs/installer/repository.h4
-rw-r--r--src/libs/installer/settings.cpp2
6 files changed, 40 insertions, 9 deletions
diff --git a/src/libs/installer/getrepositorymetainfojob.cpp b/src/libs/installer/getrepositorymetainfojob.cpp
index bbf3afe25..b0386c223 100644
--- a/src/libs/installer/getrepositorymetainfojob.cpp
+++ b/src/libs/installer/getrepositorymetainfojob.cpp
@@ -146,7 +146,7 @@ Repository GetRepositoryMetaInfoJob::repository() const
void GetRepositoryMetaInfoJob::setRepository(const Repository &r)
{
m_repository = r;
- qDebug() << "Setting repository with URL:" << r.url().toString();
+ qDebug() << "Setting repository with URL:" << r.displayname();
}
int GetRepositoryMetaInfoJob::silentRetries() const
@@ -307,6 +307,7 @@ void GetRepositoryMetaInfoJob::updatesXmlDownloadFinished()
Repository repository(el.attribute(QLatin1String("url")), true);
repository.setUsername(el.attribute(QLatin1String("username")));
repository.setPassword(el.attribute(QLatin1String("password")));
+ repository.setDisplayName(el.attribute(QLatin1String("displayname")));
repositoryUpdates.insertMulti(action, qMakePair(repository, Repository()));
qDebug() << "Repository to add:" << repository.url().toString();
@@ -322,6 +323,7 @@ void GetRepositoryMetaInfoJob::updatesXmlDownloadFinished()
Repository newRepository(el.attribute(QLatin1String("newUrl")), true);
newRepository.setUsername(el.attribute(QLatin1String("username")));
newRepository.setPassword(el.attribute(QLatin1String("password")));
+ newRepository.setDisplayName(el.attribute(QLatin1String("displayname")));
// store the new repository and the one old it replaces
repositoryUpdates.insertMulti(action, qMakePair(newRepository, oldRepository));
@@ -524,7 +526,7 @@ void GetRepositoryMetaInfoJob::unzipFinished(bool ok, const QString &error)
}
bool GetRepositoryMetaInfoJob::updateRepositories(QSet<Repository> *repositories, const QString &username,
- const QString &password)
+ const QString &password, const QString &displayname)
{
if (!repositories->contains(m_repository))
return false;
@@ -532,6 +534,7 @@ bool GetRepositoryMetaInfoJob::updateRepositories(QSet<Repository> *repositories
repositories->remove(m_repository);
m_repository.setUsername(username);
m_repository.setPassword(password);
+ m_repository.setDisplayName(displayname);
repositories->insert(m_repository);
return true;
}
diff --git a/src/libs/installer/getrepositorymetainfojob.h b/src/libs/installer/getrepositorymetainfojob.h
index 4ebbeb94c..8601742a2 100644
--- a/src/libs/installer/getrepositorymetainfojob.h
+++ b/src/libs/installer/getrepositorymetainfojob.h
@@ -87,7 +87,7 @@ private:
/* reimp */ void doCancel();
void finished(int error, const QString &errorString = QString());
bool updateRepositories(QSet<Repository> *repositories, const QString &username,
- const QString &password);
+ const QString &password, const QString &displayname = QString());
private Q_SLOTS:
void startUpdatesXmlDownload();
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index c0c1c78b4..3cc44a7e5 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -752,6 +752,8 @@ static QSet<Repository> readRepositories(QXmlStreamReader &reader, bool isDefaul
repo.setUsername(reader.readElementText());
else if (reader.name() == QLatin1String("Password"))
repo.setPassword(reader.readElementText());
+ else if (reader.name() == QLatin1String("DisplayName"))
+ repo.setDisplayName(reader.readElementText());
else if (reader.name() == QLatin1String("Enabled"))
repo.setEnabled(bool(reader.readElementText().toInt()));
else
diff --git a/src/libs/installer/repository.cpp b/src/libs/installer/repository.cpp
index 2f0510760..786cb2a49 100644
--- a/src/libs/installer/repository.cpp
+++ b/src/libs/installer/repository.cpp
@@ -65,12 +65,13 @@ Repository::Repository(const Repository &other)
, m_enabled(other.m_enabled)
, m_username(other.m_username)
, m_password(other.m_password)
+ , m_displayname(other.m_displayname)
{
registerMetaType();
}
/*!
- Constructs a new repository by setting it's address to \a url and it's default state.
+ Constructs a new repository by setting its address to \a url and its default state.
*/
Repository::Repository(const QUrl &url, bool isDefault)
: m_url(url)
@@ -81,7 +82,7 @@ Repository::Repository(const QUrl &url, bool isDefault)
}
/*!
- Constructs a new repository by setting it's address to \a repositoryUrl as string and it's
+ Constructs a new repository by setting its address to \a repositoryUrl as string and its
default state.
Note: user and password can be inside the \a repositoryUrl string: http://user:password@repository.url
@@ -192,13 +193,29 @@ void Repository::setPassword(const QString &password)
}
/*!
+ Returns the Name for the repository to be displayed instead of the URL
+*/
+QString Repository::displayname() const
+{
+ return m_displayname.isEmpty() ? m_url.toString() : m_displayname;
+}
+
+/*!
+ Sets the DisplayName of the repository to \a displayname.
+*/
+void Repository::setDisplayName(const QString &displayname)
+{
+ m_displayname = displayname;
+}
+
+/*!
Compares the values of this repository to \a other and returns true if they are equal (same server,
default state, enabled state as well as username and password). \sa operator!=()
*/
bool Repository::operator==(const Repository &other) const
{
return m_url == other.m_url && m_default == other.m_default && m_enabled == other.m_enabled
- && m_username == other.m_username && m_password == other.m_password;
+ && m_username == other.m_username && m_password == other.m_password && m_displayname == other.m_displayname;
}
/*!
@@ -223,6 +240,7 @@ const Repository &Repository::operator=(const Repository &other)
m_enabled = other.m_enabled;
m_username = other.m_username;
m_password = other.m_password;
+ m_displayname = other.m_displayname;
return *this;
}
@@ -235,18 +253,20 @@ void Repository::registerMetaType()
QDataStream &operator>>(QDataStream &istream, Repository &repository)
{
- QByteArray url, username, password;
- istream >> url >> repository.m_default >> repository.m_enabled >> username >> password;
+ QByteArray url, username, password, displayname;
+ istream >> url >> repository.m_default >> repository.m_enabled >> username >> password >> displayname;
repository.setUrl(QUrl::fromEncoded(QByteArray::fromBase64(url)));
repository.setUsername(QString::fromUtf8(QByteArray::fromBase64(username)));
repository.setPassword(QString::fromUtf8(QByteArray::fromBase64(password)));
+ repository.setDisplayName(QString::fromUtf8(QByteArray::fromBase64(displayname)));
return istream;
}
QDataStream &operator<<(QDataStream &ostream, const Repository &repository)
{
return ostream << repository.m_url.toEncoded().toBase64() << repository.m_default << repository.m_enabled
- << repository.m_username.toUtf8().toBase64() << repository.m_password.toUtf8().toBase64();
+ << repository.m_username.toUtf8().toBase64() << repository.m_password.toUtf8().toBase64()
+ << repository.m_displayname.toUtf8().toBase64();
}
}
diff --git a/src/libs/installer/repository.h b/src/libs/installer/repository.h
index 967cae75d..1f9e22777 100644
--- a/src/libs/installer/repository.h
+++ b/src/libs/installer/repository.h
@@ -73,6 +73,9 @@ public:
QString password() const;
void setPassword(const QString &password);
+ QString displayname() const;
+ void setDisplayName(const QString &displayname);
+
bool operator==(const Repository &other) const;
bool operator!=(const Repository &other) const;
@@ -91,6 +94,7 @@ private:
bool m_enabled;
QString m_username;
QString m_password;
+ QString m_displayname;
};
inline uint qHash(const Repository &repository)
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index acc664fb4..a6795598a 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -108,6 +108,8 @@ static QSet<Repository> readRepositories(QXmlStreamReader &reader, bool isDefaul
repo.setUsername(reader.readElementText());
} else if (reader.name() == QLatin1String("Password")) {
repo.setPassword(reader.readElementText());
+ } else if (reader.name() == QLatin1String("DisplayName")) {
+ repo.setDisplayName(reader.readElementText());
} else if (reader.name() == QLatin1String("Enabled")) {
repo.setEnabled(bool(reader.readElementText().toInt()));
} else {