summaryrefslogtreecommitdiffstats
path: root/src/assistant/assistant/preferencesdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/assistant/assistant/preferencesdialog.cpp')
-rw-r--r--src/assistant/assistant/preferencesdialog.cpp34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/assistant/assistant/preferencesdialog.cpp b/src/assistant/assistant/preferencesdialog.cpp
index 67f91326c..66d6381d3 100644
--- a/src/assistant/assistant/preferencesdialog.cpp
+++ b/src/assistant/assistant/preferencesdialog.cpp
@@ -103,6 +103,16 @@ PreferencesDialog::PreferencesDialog(QWidget *parent)
this, &PreferencesDialog::addDocumentation);
connect(m_ui.docRemoveButton, &QAbstractButton::clicked,
this, &PreferencesDialog::removeDocumentation);
+ connect(m_ui.registeredDocsFilterLineEdit, &QLineEdit::textChanged,
+ this, [this](const QString &) {
+ for (const auto item : m_namespaceToItem)
+ applyDocListFilter(item);
+ });
+ connect(m_ui.registeredDocsListWidget, &QListWidget::itemSelectionChanged,
+ this, [this](){
+ m_ui.docRemoveButton->setEnabled(
+ !m_ui.registeredDocsListWidget->selectedItems().isEmpty());
+ });
updateDocumentationPage();
}
@@ -234,8 +244,23 @@ void PreferencesDialog::updateDocumentationPage()
QListWidgetItem *item = new QListWidgetItem(namespaceName);
m_namespaceToItem.insert(namespaceName, item);
m_itemToNamespace.insert(item, namespaceName);
+ applyDocListFilter(item);
m_ui.registeredDocsListWidget->addItem(item);
}
+ m_ui.docRemoveButton->setEnabled(
+ !m_ui.registeredDocsListWidget->selectedItems().isEmpty());
+}
+
+void PreferencesDialog::applyDocListFilter(QListWidgetItem *item)
+{
+ const QString namespaceName = m_itemToNamespace.value(item);
+ const QString nameFilter = m_ui.registeredDocsFilterLineEdit->text();
+
+ const bool matches = nameFilter.isEmpty() || namespaceName.contains(nameFilter);
+
+ if (!matches)
+ item->setSelected(false);
+ item->setHidden(!matches);
}
void PreferencesDialog::filterSelected(QListWidgetItem *item)
@@ -405,12 +430,17 @@ void PreferencesDialog::addDocumentation()
m_currentSetup.m_namespaceToVersion.insert(namespaceName, version);
m_currentSetup.m_versionToNamespace[version].append(namespaceName);
+ if (!added) {
+ added = true;
+ m_ui.registeredDocsListWidget->clearSelection();
+ }
+
QListWidgetItem *item = new QListWidgetItem(namespaceName);
m_namespaceToItem.insert(namespaceName, item);
m_itemToNamespace.insert(item, namespaceName);
m_ui.registeredDocsListWidget->insertItem(m_namespaceToItem.keys().indexOf(namespaceName), item);
-
- added = true;
+ item->setSelected(true);
+ applyDocListFilter(item);
}
if (added)