From d8a706f3a981d730f46e35d3e2da4249054129e2 Mon Sep 17 00:00:00 2001 From: Juraj Oravec Date: Sat, 12 Dec 2020 03:00:06 +0100 Subject: [PATCH] Add filter to preferences extensions page Developed by: Yehor Tsyba @malibushko BUG: 408312 --- src/lib/preferences/pluginslist.ui | 7 +++++++ src/lib/preferences/pluginsmanager.cpp | 14 ++++++++++++++ src/lib/preferences/pluginsmanager.h | 1 + src/lib/tools/scripts.cpp | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/lib/preferences/pluginslist.ui b/src/lib/preferences/pluginslist.ui index bc70e774a..e10a1c739 100644 --- a/src/lib/preferences/pluginslist.ui +++ b/src/lib/preferences/pluginslist.ui @@ -11,6 +11,13 @@ + + + + Enter name + + + diff --git a/src/lib/preferences/pluginsmanager.cpp b/src/lib/preferences/pluginsmanager.cpp index 6e66cdb04..0b4a2e9d9 100644 --- a/src/lib/preferences/pluginsmanager.cpp +++ b/src/lib/preferences/pluginsmanager.cpp @@ -52,6 +52,7 @@ PluginsManager::PluginsManager(QWidget* parent) connect(ui->butRemove, &QAbstractButton::clicked, this, &PluginsManager::removeClicked); connect(ui->list, &QListWidget::currentItemChanged, this, &PluginsManager::currentChanged); connect(ui->list, &QListWidget::itemChanged, this, &PluginsManager::itemChanged); + connect(ui->search, &QLineEdit::textChanged, this, &PluginsManager::addFilter); connect(mApp->plugins(), &Plugins::availablePluginsChanged, this, &PluginsManager::refresh); ui->list->setItemDelegate(new PluginListDelegate(ui->list)); @@ -243,6 +244,19 @@ void PluginsManager::removeClicked() mApp->plugins()->removePlugin(&plugin); } +void PluginsManager::addFilter(const QString& filter) { + for (int i = 0; i < ui->list->count(); ++i) { + const QString& pluginName = ui->list->item(i)->text(); + + if (pluginName.contains(filter,Qt::CaseInsensitive) || !filter.size()) { + ui->list->item(i)->setHidden(false); + } + else { + ui->list->item(i)->setHidden(true); + } + } +} + PluginsManager::~PluginsManager() { delete ui; diff --git a/src/lib/preferences/pluginsmanager.h b/src/lib/preferences/pluginsmanager.h index b19af012f..81db9c29b 100644 --- a/src/lib/preferences/pluginsmanager.h +++ b/src/lib/preferences/pluginsmanager.h @@ -45,6 +45,7 @@ private Q_SLOTS: void removeClicked(); void currentChanged(QListWidgetItem* item); void itemChanged(QListWidgetItem* item); + void addFilter(const QString& newText); void refresh(); diff --git a/src/lib/tools/scripts.cpp b/src/lib/tools/scripts.cpp index 6a33f6a94..990968463 100644 --- a/src/lib/tools/scripts.cpp +++ b/src/lib/tools/scripts.cpp @@ -232,7 +232,7 @@ QString Scripts::completeFormData(const QByteArray &data) " var type = input.type.toLowerCase();" " if (type != 'text' && type != 'password' && type != 'email')" " continue;" - " if (input.name == key) {" + " if (input.name == key && input.name != "") {" " input.value = val;" " input.dispatchEvent(new Event('change'));" " }"