diff options
-rw-r--r-- | doc/installerfw.qdoc | 4 | ||||
-rw-r--r-- | src/libs/installer/getrepositorymetainfojob.cpp | 7 | ||||
-rw-r--r-- | src/libs/installer/getrepositorymetainfojob.h | 2 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 2 | ||||
-rw-r--r-- | src/libs/installer/repository.cpp | 32 | ||||
-rw-r--r-- | src/libs/installer/repository.h | 4 | ||||
-rw-r--r-- | src/libs/installer/settings.cpp | 2 | ||||
-rw-r--r-- | src/sdk/settingsdialog.cpp | 2 |
8 files changed, 44 insertions, 11 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc index 3984429e8..fbcab3cd4 100644 --- a/doc/installerfw.qdoc +++ b/doc/installerfw.qdoc @@ -795,6 +795,7 @@ \o Enabled, with 0 disabling this repository. \o Username, which is used as user on a protected repository. \o Password, which sets the password to use on a protected repository. + \o DisplayName, which optionally sets a String to display instead of the URL. \endlist @@ -804,10 +805,11 @@ \code <RemoteRepositories> <Repository> - <Url>http://www.yourcompany.com/packages</Url> + <Url>http://www.example.com/packages</Url> <Enabled>1</Enabled> <Username>user</Username> <Password>password</Password> + <DisplayName>Example repository</DisplayName> </Repository> </RemoteRepositories> \endcode 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 { 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; }; |