summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/settingsdialog.ui36
-rw-r--r--src/settingsdialogplugins.cpp6
-rw-r--r--src/settingsdialogplugins.h6
3 files changed, 33 insertions, 15 deletions
diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui
index 97fa01bd..67df1ec9 100644
--- a/src/settingsdialog.ui
+++ b/src/settingsdialog.ui
@@ -1042,19 +1042,28 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
- <widget class="QTreeWidget" name="pluginsList">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <column>
- <property name="text">
- <string notr="true">1</string>
- </property>
- </column>
- </widget>
+ <layout class="QVBoxLayout" name="verticalLayout_15">
+ <item>
+ <widget class="QTreeWidget" name="pluginsList">
+ <column>
+ <property name="text">
+ <string notr="true">1</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QLineEdit" name="pluginFilterEdit">
+ <property name="placeholderText">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_7" stretch="0,1">
@@ -1615,7 +1624,6 @@ programs you are intentionally running.</string>
<tabstop>preferredServersList</tabstop>
<tabstop>steamUserEdit</tabstop>
<tabstop>steamPassEdit</tabstop>
- <tabstop>pluginsList</tabstop>
<tabstop>pluginSettingsList</tabstop>
<tabstop>pluginBlacklist</tabstop>
<tabstop>appIDEdit</tabstop>
diff --git a/src/settingsdialogplugins.cpp b/src/settingsdialogplugins.cpp
index cb306f36..e13f727e 100644
--- a/src/settingsdialogplugins.cpp
+++ b/src/settingsdialogplugins.cpp
@@ -33,7 +33,8 @@ PluginsSettingsTab::PluginsSettingsTab(Settings& s, PluginContainer* pluginConta
if (handledNames.contains(plugin->name()))
continue;
QTreeWidgetItem* listItem = new QTreeWidgetItem(
- topItems.at(pluginContainer->topImplementedInterface(plugin)), { plugin->localizedName() });
+ topItems.at(pluginContainer->topImplementedInterface(plugin)));
+ listItem->setData(0, Qt::DisplayRole, plugin->localizedName());
listItem->setData(0, ROLE_PLUGIN, QVariant::fromValue((void*)plugin));
listItem->setData(0, ROLE_SETTINGS, settings().plugins().settings(plugin->name()));
listItem->setData(0, ROLE_DESCRIPTIONS, settings().plugins().descriptions(plugin->name()));
@@ -52,6 +53,9 @@ PluginsSettingsTab::PluginsSettingsTab(Settings& s, PluginContainer* pluginConta
ui->pluginBlacklist->addItem(pluginName);
}
+ m_filter.setEdit(ui->pluginFilterEdit);
+ m_filter.setList(ui->pluginsList);
+
QObject::connect(
ui->pluginsList, &QTreeWidget::currentItemChanged,
[&](auto* current, auto* previous) { on_pluginsList_currentItemChanged(current, previous); });
diff --git a/src/settingsdialogplugins.h b/src/settingsdialogplugins.h
index f9069be1..e284b271 100644
--- a/src/settingsdialogplugins.h
+++ b/src/settingsdialogplugins.h
@@ -1,6 +1,8 @@
#ifndef SETTINGSDIALOGPLUGINS_H
#define SETTINGSDIALOGPLUGINS_H
+#include "filterwidget.h"
+
#include "settings.h"
#include "settingsdialog.h"
@@ -26,6 +28,10 @@ private:
constexpr static int ROLE_PLUGIN = Qt::UserRole;
constexpr static int ROLE_SETTINGS = Qt::UserRole + 1;
constexpr static int ROLE_DESCRIPTIONS = Qt::UserRole + 2;
+
+private:
+
+ MOBase::FilterWidget m_filter;
};
#endif // SETTINGSDIALOGPLUGINS_H