4
0
mirror of https://github.com/QuasarApp/installer-framework.git synced 2025-05-07 10:39:33 +00:00

Add tooltip for categories

Change-Id: I852a236bc2cff0d532a825581e3da4dcdcbbab90
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
This commit is contained in:
Katja Marttila 2019-02-04 10:39:56 +02:00
parent f229bc4343
commit 2a791f276d
6 changed files with 29 additions and 4 deletions

@ -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>

@ -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>

@ -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);
}

@ -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.
*/

@ -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;
};

@ -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")) {