summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2019-02-04 10:39:56 +0200
committerKatja Marttila <katja.marttila@qt.io>2019-02-04 09:07:04 +0000
commit2a791f276dadc75afb39e4d3d44ca056c1912447 (patch)
tree05d47a74adf1eab96bf8221a8bdbb3961511e947
parentf229bc434329debf6467cb432571bf3a3d44f8fe (diff)
Add tooltip for categories
Change-Id: I852a236bc2cff0d532a825581e3da4dcdcbbab90 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
-rw-r--r--doc/installerfw.qdoc3
-rw-r--r--examples/repositorycategories/config/config.xml2
-rw-r--r--src/libs/installer/componentselectionpage_p.cpp1
-rw-r--r--src/libs/installer/repositorycategory.cpp13
-rw-r--r--src/libs/installer/repositorycategory.h4
-rw-r--r--src/libs/installer/settings.cpp10
6 files changed, 29 insertions, 4 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc
index 1ef42a91e..0589c8c14 100644
--- a/doc/installerfw.qdoc
+++ b/doc/installerfw.qdoc
@@ -1131,7 +1131,7 @@
The \c <RepositoryCategory> element in the installer configuration file
(config.xml) can contain a list of several \c <RemoteRepositories> elements. Each \c <RemoteRepositories>
element within the \c <RepositoryCagetory> element is considered a category. Each catecory can have
- a \c <DisplayName>, a \c <Preselected> element and several \c <Repository> elements.
+ a \c <DisplayName>, a \c <Tooltip>, a \c <Preselected> element and several \c <Repository> elements.
Repository categories are shown in the component selection page,
on the left side of the component selection widget:
@@ -1152,6 +1152,7 @@
<RemoteRepositories>
<Displayname>Category 1</Displayname>
<Preselected>true</Preselected>
+ <Tooltip>Tooltip for category 1</Tooltip>
<Repository>
<Url>http://www.example.com/packages</Url>
<Enabled>1</Enabled>
diff --git a/examples/repositorycategories/config/config.xml b/examples/repositorycategories/config/config.xml
index a85910b87..8c5a0a67d 100644
--- a/examples/repositorycategories/config/config.xml
+++ b/examples/repositorycategories/config/config.xml
@@ -16,6 +16,7 @@
<RepositoryCategoryDisplayname>Releases</RepositoryCategoryDisplayname>
<RemoteRepositories>
<DisplayName>Category 1</DisplayName>
+ <Tooltip>Contains repository1 and repository2</Tooltip>
<Repository>
<Url>http://localhost/repository1</Url>
</Repository>
@@ -26,6 +27,7 @@
<RemoteRepositories>
<Preselected>true</Preselected>
<DisplayName>Category 2</DisplayName>
+ <Tooltip>Contains repository3</Tooltip>
<Repository>
<Url>http://localhost/repository3</Url>
</Repository>
diff --git a/src/libs/installer/componentselectionpage_p.cpp b/src/libs/installer/componentselectionpage_p.cpp
index 8d023a501..4e7acc837 100644
--- a/src/libs/installer/componentselectionpage_p.cpp
+++ b/src/libs/installer/componentselectionpage_p.cpp
@@ -205,6 +205,7 @@ void ComponentSelectionPagePrivate::setupCategoryLayout()
connect(checkBox, &QCheckBox::stateChanged, this,
&ComponentSelectionPagePrivate::checkboxStateChanged);
checkBox->setText(repository.displayname());
+ checkBox->setToolTip(repository.tooltip());
categoryLayout->addWidget(checkBox);
}
diff --git a/src/libs/installer/repositorycategory.cpp b/src/libs/installer/repositorycategory.cpp
index af7f6e818..42fb41c99 100644
--- a/src/libs/installer/repositorycategory.cpp
+++ b/src/libs/installer/repositorycategory.cpp
@@ -58,7 +58,8 @@ RepositoryCategory::RepositoryCategory()
Constructs a new category by using all fields of the given category \a other.
*/
RepositoryCategory::RepositoryCategory(const RepositoryCategory &other)
- : m_displayname(other.m_displayname), m_data(other.m_data), m_enabled(other.m_enabled)
+ : m_displayname(other.m_displayname), m_data(other.m_data), m_enabled(other.m_enabled),
+ m_tooltip(other.m_tooltip)
{
registerMetaType();
}
@@ -86,6 +87,16 @@ void RepositoryCategory::setDisplayName(const QString &displayname)
m_displayname = displayname;
}
+QString RepositoryCategory::tooltip() const
+{
+ return m_tooltip;
+}
+
+void RepositoryCategory::setTooltip(const QString &tooltip)
+{
+ m_tooltip = tooltip;
+}
+
/*!
Returns the list of repositories the category has.
*/
diff --git a/src/libs/installer/repositorycategory.h b/src/libs/installer/repositorycategory.h
index 315af761b..98d5df7bd 100644
--- a/src/libs/installer/repositorycategory.h
+++ b/src/libs/installer/repositorycategory.h
@@ -50,6 +50,9 @@ public:
QString displayname() const;
void setDisplayName(const QString &displayname);
+ QString tooltip() const;
+ void setTooltip(const QString &tooltip);
+
QSet<Repository> repositories() const;
void setRepositories(const QSet<Repository> repositories);
void addRepository(const Repository repository);
@@ -68,6 +71,7 @@ public:
private:
QVariantHash m_data;
QString m_displayname;
+ QString m_tooltip;
bool m_enabled;
};
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index e1e4f0c13..13eb2ce40 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -136,7 +136,8 @@ static QStringList readArgumentAttributes(QXmlStreamReader &reader, Settings::Pa
}
static QSet<Repository> readRepositories(QXmlStreamReader &reader, bool isDefault, Settings::ParseMode parseMode,
- QString *displayName = nullptr, bool *preselected = nullptr)
+ QString *displayName = nullptr, bool *preselected = nullptr,
+ QString *tooltip = nullptr)
{
QSet<Repository> set;
while (reader.readNextStartElement()) {
@@ -169,6 +170,8 @@ static QSet<Repository> readRepositories(QXmlStreamReader &reader, bool isDefaul
if (displayName && !displayName->isEmpty())
repo.setArchiveName(*displayName);
set.insert(repo);
+ } else if (reader.name() == QLatin1String("Tooltip")) {
+ *tooltip = reader.readElementText();
} else if (reader.name() == QLatin1String("Preselected")) {
*preselected = (reader.readElementText() == QLatin1String("true") ? true : false);
} else {
@@ -192,9 +195,12 @@ static QSet<RepositoryCategory> readRepositoryCategories(QXmlStreamReader &reade
if (reader.name() == QLatin1String("RemoteRepositories")) {
RepositoryCategory archiveRepo;
QString displayName;
+ QString tooltip;
bool preselected = false;
- archiveRepo.setRepositories(readRepositories(reader, isDefault, parseMode, &displayName, &preselected));
+ archiveRepo.setRepositories(readRepositories(reader, isDefault, parseMode,
+ &displayName, &preselected, &tooltip));
archiveRepo.setDisplayName(displayName);
+ archiveRepo.setTooltip(tooltip);
archiveRepo.setEnabled(preselected);
archiveSet.insert(archiveRepo);
} else if (reader.name() == QLatin1String("RepositoryCategoryDisplayname")) {