blob: 9ad03d4968dd771c7ecf81939cd247b2309f80c8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#pragma once
#include <QCompleter>
#include <QSortFilterProxyModel>
#include <QWidget>
#include <QtCore>
#include <QtWidgets/qtreeview.h>
#include <cstdint>
#include "completion/CompleterDelegate.hpp"
#include "completion/FuzzySearchProxyModel.hpp"
#include "utils.hpp"
class Completer : public QWidget {
Q_OBJECT
public:
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();
private:
QTreeView *view;
FuzzySearchProxyModel proxyModel;
CompleterDelegate *viewDelegate;
};
|