From 387cf24e389854ecc97f6236fdd6acbc2486dd52 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 15 Mar 2025 19:17:03 +0530 Subject: Replaced QCompleter with custom implementation --- include/completion/Completer.hpp | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'include/completion/Completer.hpp') diff --git a/include/completion/Completer.hpp b/include/completion/Completer.hpp index b67de61..9ad03d4 100644 --- a/include/completion/Completer.hpp +++ b/include/completion/Completer.hpp @@ -1,14 +1,39 @@ #pragma once #include +#include #include #include +#include +#include -class Completer : public QCompleter { +#include "completion/CompleterDelegate.hpp" +#include "completion/FuzzySearchProxyModel.hpp" +#include "utils.hpp" + +class Completer : public QWidget { Q_OBJECT public: - Completer(QObject *parent = nullptr); + Completer(); + void setSourceModel(QAbstractItemModel *model); + + DELEGATE((&proxyModel), sourceModel, sourceModel) + +signals: + void accepted(QString text); + +public slots: + void onTextChange(QString text); + bool onKeyPressEvent(QKeyEvent *event); + +protected: + void keyPressEvent(QKeyEvent *event) override { onKeyPressEvent(event); } + void setHighlightedRow(uint32_t); + void acceptHighlighted(); - // bool eventFilter(QObject *watched, QEvent *event) override; +private: + QTreeView *view; + FuzzySearchProxyModel proxyModel; + CompleterDelegate *viewDelegate; }; -- cgit v1.3.1