summaryrefslogtreecommitdiff
path: root/src/settingsdialogplugins.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/settingsdialogplugins.h')
-rw-r--r--src/settingsdialogplugins.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/settingsdialogplugins.h b/src/settingsdialogplugins.h
index 8e2dae2a..add8fede 100644
--- a/src/settingsdialogplugins.h
+++ b/src/settingsdialogplugins.h
@@ -1,21 +1,46 @@
#ifndef SETTINGSDIALOGPLUGINS_H
#define SETTINGSDIALOGPLUGINS_H
+#include "filterwidget.h"
+
#include "settings.h"
#include "settingsdialog.h"
class PluginsSettingsTab : public SettingsTab
{
public:
- PluginsSettingsTab(Settings& settings, SettingsDialog& dialog);
+ PluginsSettingsTab(Settings& settings, PluginContainer* pluginContainer, SettingsDialog& dialog);
void update();
void closing() override;
private:
- void on_pluginsList_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
+ void on_pluginsList_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
void deleteBlacklistItem();
- void storeSettings(QListWidgetItem *pluginItem);
+ void storeSettings(QTreeWidgetItem *pluginItem);
+
+private slots:
+ /**
+ * @brief Filter the plugin list according to the filter widget.
+ *
+ */
+ void filterPluginList();
+
+ /**
+ * @brief Retrieve the plugin associated to the given item in the list.
+ *
+ */
+ MOBase::IPlugin* plugin(QTreeWidgetItem *pluginItem) const;
+
+ constexpr static int ROLE_PLUGIN = Qt::UserRole;
+ constexpr static int ROLE_SETTINGS = Qt::UserRole + 1;
+ constexpr static int ROLE_DESCRIPTIONS = Qt::UserRole + 2;
+
+private:
+
+ PluginContainer* m_pluginContainer;
+
+ MOBase::FilterWidget m_filter;
};
#endif // SETTINGSDIALOGPLUGINS_H