Index: src/lib/preferences/pluginslist.ui =================================================================== --- src/lib/preferences/pluginslist.ui +++ src/lib/preferences/pluginslist.ui @@ -11,6 +11,13 @@ + + + + Enter name + + + Index: src/lib/preferences/pluginsmanager.h =================================================================== --- src/lib/preferences/pluginsmanager.h +++ src/lib/preferences/pluginsmanager.h @@ -26,7 +26,6 @@ { class PluginsList; } - class QListWidgetItem; class FALKON_EXPORT PluginsManager : public QWidget @@ -45,7 +44,7 @@ void removeClicked(); void currentChanged(QListWidgetItem* item); void itemChanged(QListWidgetItem* item); - + void addFilter(const QString& newText); void refresh(); private: Index: src/lib/preferences/pluginsmanager.cpp =================================================================== --- src/lib/preferences/pluginsmanager.cpp +++ src/lib/preferences/pluginsmanager.cpp @@ -39,7 +39,6 @@ ui->list->setLayoutDirection(Qt::LeftToRight); ui->butSettings->setIcon(IconProvider::settingsIcon()); ui->butRemove->setIcon(QIcon::fromTheme(QSL("edit-delete"))); - //Application Extensions Settings settings; settings.beginGroup("Plugin-Settings"); @@ -53,7 +52,7 @@ connect(ui->list, &QListWidget::currentItemChanged, this, &PluginsManager::currentChanged); connect(ui->list, &QListWidget::itemChanged, this, &PluginsManager::itemChanged); connect(mApp->plugins(), &Plugins::availablePluginsChanged, this, &PluginsManager::refresh); - + connect(ui->search,&QLineEdit::textChanged,this,&PluginsManager::addFilter); ui->list->setItemDelegate(new PluginListDelegate(ui->list)); } @@ -170,7 +169,6 @@ ui->butSettings->setEnabled(plugin.isLoaded() && plugin.pluginSpec.hasSettings); ui->butRemove->setEnabled(plugin.isRemovable()); } - void PluginsManager::itemChanged(QListWidgetItem* item) { if (!item) { @@ -242,6 +240,15 @@ 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.startsWith(filter,Qt::CaseInsensitive) || !filter.size()) + ui->list->item(i)->setHidden(false); + else + ui->list->item(i)->setHidden(true); + } +} PluginsManager::~PluginsManager() {