Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
Plugins
WebBrowser
AutoCompleteLineEdit.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QLineEdit>
6
#include <QStringList>
7
#include <QKeyEvent>
8
#include <QFocusEvent>
9
#include <QTimer>
10
11
class
CAutoCompleteLineEdit :
public
QLineEdit
12
{
13
Q_OBJECT
14
public
:
15
explicit
CAutoCompleteLineEdit(QWidget *parent =
nullptr
);
16
explicit
CAutoCompleteLineEdit(
const
QString &contents, QWidget *parent =
nullptr
);
17
18
void
setCompletions(
const
QStringList &completions);
19
20
QColor GetSuggestionColor()
const
;
21
void
SetSuggestionColor(
const
QColor &newSuggestionColor);
22
QColor GetSuggestionBackground()
const
;
23
void
SetSuggestionBackground(
const
QColor &newSuggestionBackground);
24
25
protected
:
26
void
keyPressEvent(QKeyEvent *event)
override
;
27
void
focusInEvent(QFocusEvent *event)
override
;
28
void
focusOutEvent(QFocusEvent *event)
override
;
29
virtual
void
paintEvent(QPaintEvent *event)
override
;
30
31
private
slots:
32
void
updateCompletion();
33
34
private
:
35
QStringList m_completions;
36
QString m_currentSuggestion;
37
38
QColor m_suggestionColor;
39
QColor m_suggestionBackground;
40
41
QTimer m_updateTimer;
42
43
void
initTimer();
44
void
showSuggestion();
45
void
hideSuggestion();
46
void
acceptSuggestion();
47
QString findBestMatch(
const
QString &input)
const
;
48
};
49
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved