summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2019-02-19 15:45:30 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2019-03-01 10:12:13 +0000
commit6b80ce68860f01a035e78391c81757dad4d612d8 (patch)
tree32d946c76139c0b6cd65d3b8ce095dd16a6c2a52
parent36a7262f8ab56c7790afd0eb43f3b07413c8bc08 (diff)
downloadqttools-6b80ce68860f01a035e78391c81757dad4d612d8.tar.gz
Make no option and invalid option texts customizable
This influences the preferences dialog, as now there will be "No version" and "No component" text displayed instead of one general "No option". Change-Id: I62da44fbb78f5f11c82d59dd5acf55868a8ec443 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r--src/assistant/assistant/optionswidget.cpp46
-rw-r--r--src/assistant/assistant/optionswidget.h6
-rw-r--r--src/assistant/assistant/preferencesdialog.cpp5
3 files changed, 51 insertions, 6 deletions
diff --git a/src/assistant/assistant/optionswidget.cpp b/src/assistant/assistant/optionswidget.cpp
index c2deb46f1..bc089c5bf 100644
--- a/src/assistant/assistant/optionswidget.cpp
+++ b/src/assistant/assistant/optionswidget.cpp
@@ -91,6 +91,8 @@ static QStringList subtract(const QStringList &minuend, const QStringList &subtr
OptionsWidget::OptionsWidget(QWidget *parent)
: QWidget(parent)
+ , m_noOptionText(tr("No Option"))
+ , m_invalidOptionText(tr("Invalid Option"))
{
m_listWidget = new QListWidget(this);
m_listWidget->setItemDelegate(new ListWidgetDelegate(m_listWidget));
@@ -137,7 +139,6 @@ void OptionsWidget::setOptions(const QStringList &validOptions,
}
for (const QString &option : validUnselectedOptions) {
- // TODO: make No Option text customizable
appendItem(option, true, false);
if (option.isEmpty() && validUnselectedOptions.count() > 1) // special No Option item
appendSeparator();
@@ -154,14 +155,47 @@ QStringList OptionsWidget::selectedOptions() const
return m_selectedOptions;
}
-QListWidgetItem *OptionsWidget::appendItem(const QString &optionName, bool valid, bool selected)
+void OptionsWidget::setNoOptionText(const QString &text)
+{
+ if (m_noOptionText == text)
+ return;
+
+ m_noOptionText = text;
+
+ // update GUI
+ const auto itEnd = m_optionToItem.constEnd();
+ for (auto it = m_optionToItem.constBegin(); it != itEnd; ++it) {
+ const QString optionName = it.key();
+ if (optionName.isEmpty())
+ it.value()->setText(optionText(optionName, m_validOptions.contains(optionName)));
+ }
+}
+
+void OptionsWidget::setInvalidOptionText(const QString &text)
{
- QString optionText = optionName;
+ if (m_invalidOptionText == text)
+ return;
+
+ m_invalidOptionText = text;
+
+ // update GUI
+ for (const QString &option : m_invalidOptions)
+ m_optionToItem.value(option)->setText(optionText(option, false));
+}
+
+QString OptionsWidget::optionText(const QString &optionName, bool valid) const
+{
+ QString text = optionName;
if (optionName.isEmpty())
- optionText = QLatin1Char('[') + tr("No Option") + QLatin1Char(']');
+ text = QLatin1Char('[') + m_noOptionText + QLatin1Char(']');
if (!valid)
- optionText += QLatin1String("\t[") + tr("Invalid Option") + QLatin1Char(']');
- QListWidgetItem *optionItem = new QListWidgetItem(optionText, m_listWidget);
+ text += QLatin1String("\t[") + m_invalidOptionText + QLatin1Char(']');
+ return text;
+}
+
+QListWidgetItem *OptionsWidget::appendItem(const QString &optionName, bool valid, bool selected)
+{
+ QListWidgetItem *optionItem = new QListWidgetItem(optionText(optionName, valid), m_listWidget);
optionItem->setCheckState(selected ? Qt::Checked : Qt::Unchecked);
m_listWidget->insertItem(m_listWidget->count(), optionItem);
m_optionToItem[optionName] = optionItem;
diff --git a/src/assistant/assistant/optionswidget.h b/src/assistant/assistant/optionswidget.h
index e726836f6..52c876bad 100644
--- a/src/assistant/assistant/optionswidget.h
+++ b/src/assistant/assistant/optionswidget.h
@@ -49,15 +49,21 @@ public:
QStringList validOptions() const;
QStringList selectedOptions() const;
+ void setNoOptionText(const QString &text);
+ void setInvalidOptionText(const QString &text);
+
signals:
void optionSelectionChanged(const QStringList &options);
private:
+ QString optionText(const QString &optionName, bool valid) const;
QListWidgetItem *appendItem(const QString &optionName, bool valid, bool selected);
void appendSeparator();
void itemChanged(QListWidgetItem *item);
QListWidget *m_listWidget = nullptr;
+ QString m_noOptionText;
+ QString m_invalidOptionText;
QStringList m_validOptions;
QStringList m_invalidOptions;
QStringList m_selectedOptions;
diff --git a/src/assistant/assistant/preferencesdialog.cpp b/src/assistant/assistant/preferencesdialog.cpp
index 8d587eac2..369abb002 100644
--- a/src/assistant/assistant/preferencesdialog.cpp
+++ b/src/assistant/assistant/preferencesdialog.cpp
@@ -110,6 +110,11 @@ PreferencesDialog::PreferencesDialog(QWidget *parent)
connect(m_ui.filterRemoveButton, &QAbstractButton::clicked,
this, &PreferencesDialog::removeFilterClicked);
+ m_ui.componentWidget->setNoOptionText(tr("No Component"));
+ m_ui.componentWidget->setInvalidOptionText(tr("Invalid Component"));
+ m_ui.versionWidget->setNoOptionText(tr("No Version"));
+ m_ui.versionWidget->setInvalidOptionText(tr("Invalid Version"));
+
updateFilterPage();
}