Plasma Engine  2.0
Loading...
Searching...
No Matches
SearchableMenu.moc.h
1#pragma once
2
3#include <Foundation/Containers/Map.h>
4#include <Foundation/Strings/String.h>
5#include <GuiFoundation/GuiFoundationDLL.h>
6#include <QWidgetAction>
7
9class QTreeWidget;
10class QTreeWidgetItem;
12class QStandardItemModel;
13class QTreeView;
14class QStandardItem;
15
21class PL_GUIFOUNDATION_DLL plQtSearchableMenu : public QWidgetAction
22{
23 Q_OBJECT
24public:
26 plQtSearchableMenu(QObject* pParent);
27
29 void AddItem(plStringView sDisplayName, const char* szInternalPath, const QVariant& variant, QIcon icon = QIcon());
30
32 QString GetSearchText() const;
33
35 void Finalize(const QString& sSearchText);
36
37Q_SIGNALS:
39 void MenuItemTriggered(const QString& sName, const QVariant& variant);
40
42 void SearchTextChanged(const QString& sText);
43
44private Q_SLOTS:
45 void OnItemActivated(const QModelIndex& index);
46 void OnEnterPressed();
47 void OnSpecialKeyPressed(Qt::Key key);
48 void OnSearchChanged(const QString& text);
49 void OnShow();
50
51protected:
52 virtual bool eventFilter(QObject*, QEvent*) override;
53
54private:
55 QStandardItem* CreateCategoryMenu(plStringView sCategory);
56 bool SelectFirstLeaf(QModelIndex parent);
57
58 QWidget* m_pGroup;
59 plQtSearchWidget* m_pSearch;
60 plQtTreeSearchFilterModel* m_pFilterModel;
61 QTreeView* m_pTreeView;
62 QStandardItemModel* m_pItemModel;
64};
65
Definition Map.h:408
A widget that contains a line edit for a search text and a button to clear the search text.
Definition SearchWidget.moc.h:14
Implements an item for insertion into a QMenu that shows a search bar and a hierarchical list of opti...
Definition SearchableMenu.moc.h:22
void SearchTextChanged(const QString &sText)
Triggered whenever the search text is modified.
void MenuItemTriggered(const QString &sName, const QVariant &variant)
Signaled when an item is double clicked or otherwise selected for activation.
Definition TreeSearchFilterModel.moc.h:12
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34