From 49daa163530ceabc9eaa8911ab96b5f799cfb552 Mon Sep 17 00:00:00 2001 From: Fabien Proriol Date: Sun, 25 May 2025 17:58:09 +0200 Subject: Initial Commit --- src/waylandentriesfiltered.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/waylandentriesfiltered.h (limited to 'src/waylandentriesfiltered.h') diff --git a/src/waylandentriesfiltered.h b/src/waylandentriesfiltered.h new file mode 100644 index 0000000..e562a7d --- /dev/null +++ b/src/waylandentriesfiltered.h @@ -0,0 +1,41 @@ +#ifndef WAYLANDENTIRESFILTERED_H +#define WAYLANDENTIRESFILTERED_H + +#include +#include + +class WaylandEntries; +namespace KaZoe { + class DesktopEntries; +} + +class WaylandEntriesFiltered : public QSortFilterProxyModel +{ + Q_OBJECT + Q_PROPERTY(QObject *model READ model WRITE setModel NOTIFY modelChanged) + Q_PROPERTY(QString roleFilter READ roleFilter WRITE setRoleFilter NOTIFY roleFilterChanged) + Q_PROPERTY(int length READ length NOTIFY lengthChanged) + KaZoe::DesktopEntries *m_entries {nullptr}; + +public: + explicit WaylandEntriesFiltered(QObject *parent = nullptr); + QString roleFilter() const; + void setRoleFilter(const QString &roles); + bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override; + + QObject *model() const; + void setModel(QObject *newModel); + + int length(); + +signals: + void roleFilterChanged(); + void modelChanged(QObject * model); + void lengthChanged(); + +private: + QStringList m_roleFilter; + WaylandEntries *m_model = nullptr; +}; + +#endif // WAYLANDENTIRESFILTERED_H -- cgit v1.2.3