From 546e74bde62fe657a45f5b7626a7aacf48421c4d Mon Sep 17 00:00:00 2001 From: Niels Weber Date: Thu, 18 Apr 2013 14:39:25 +0200 Subject: 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 Reviewed-by: Karsten Heimrich --- src/libs/installer/getrepositorymetainfojob.cpp | 7 ++++-- src/libs/installer/getrepositorymetainfojob.h | 2 +- src/libs/installer/packagemanagercore_p.cpp | 2 ++ src/libs/installer/repository.cpp | 32 ++++++++++++++++++++----- src/libs/installer/repository.h | 4 ++++ src/libs/installer/settings.cpp | 2 ++ src/sdk/settingsdialog.cpp | 2 +- 7 files changed, 41 insertions(+), 10 deletions(-) (limited to 'src') 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 *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 *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 *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 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 @@ -191,6 +192,22 @@ void Repository::setPassword(const QString &password) m_password = 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!=() @@ -198,7 +215,7 @@ void Repository::setPassword(const QString &password) 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 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/sdk/settingsdialog.cpp b/src/sdk/settingsdialog.cpp index 5773d65c5..6025ec475 100644 --- a/src/sdk/settingsdialog.cpp +++ b/src/sdk/settingsdialog.cpp @@ -247,7 +247,7 @@ QVariant RepositoryItem::data(int column, int role) const case 3: return m_repo.password(); case 4: - return m_repo.url().toString(); + return m_repo.displayname(); default: break; }; -- cgit v1.2.3