玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
AddressCompleter.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QLabel>
6
#include <QLineEdit>
7
#include <QListWidget>
8
#include <QVBoxLayout>
9
#include <QTimer>
10
#include <QSqlDatabase>
11
#include <QIcon>
12
#include <QPropertyAnimation>
13
14
class
CHistoryDatabase
;
15
20
class
CAddressCompleterItem :
public
QWidget
21
{
22
Q_OBJECT
23
public
:
24
explicit
CAddressCompleterItem(
const
QString &title,
25
const
QString &url,
26
const
QIcon &icon,
27
QWidget *parent =
nullptr
);
28
29
QString title()
const
{
return
m_title; }
30
QString url()
const
{
return
m_url; }
31
32
private
:
33
QString m_title;
34
QString m_url;
35
QLabel *m_iconLabel;
36
QLabel *m_titleLabel;
37
QLabel *m_urlLabel;
38
};
39
40
class
CAddressCompleter :
public
QWidget
41
{
42
Q_OBJECT
43
public
:
44
explicit
CAddressCompleter(
CHistoryDatabase
* db, QWidget *parent =
nullptr
);
45
~CAddressCompleter();
46
47
void
attachToLineEdit(QLineEdit *lineEdit);
48
void
setMaxVisibleItems(
int
count);
49
50
signals:
51
void
urlSelected(
const
QString &url);
52
void
searchRequested(
const
QString &keyword);
53
void
sigCommand(
const
QString& szCmd);
54
55
protected
:
56
bool
eventFilter(QObject *watched, QEvent *event)
override
;
57
void
showEvent(QShowEvent *event)
override
;
58
void
hideEvent(QHideEvent *event)
override
;
59
60
private
Q_SLOTS:
61
void
onTextChanged(
const
QString &text);
62
void
onItemClicked(QListWidgetItem *item);
63
virtual
void
performSearch();
64
void
moveToNextItem();
65
void
moveToPreviousItem();
66
void
selectCurrentItem();
67
68
private
:
69
void
setupUI();
70
void
showCompleter();
71
void
hideCompleter();
72
void
updateCompleterPosition();
73
QIcon getIconForUrl(
const
QString &url);
74
void
addSearchSuggestions(
const
QString &keyword);
75
76
struct
Command
77
{
78
QString title;
79
QString cmd;
80
QIcon icon;
81
};
82
83
private
:
84
QLineEdit *m_pLineEdit;
85
QString m_szEnter;
86
QString m_szOldLineEditToolTip;
87
QString m_szLineEditToolTip;
88
QString m_szLineEditToolTipShow;
89
QString m_szListWidgetToolTip;
90
QListWidget *m_pListWidget;
91
QTimer *m_pSearchTimer;
92
QPropertyAnimation *m_pShowAnimation;
93
QPropertyAnimation *m_pHideAnimation;
94
int
m_currentSelectedIndex;
95
int
m_maxVisibleItems;
96
bool
m_isCompleterVisible;
97
98
CHistoryDatabase
* m_pDatabase;
99
};
CHistoryDatabase
The CHistoryDatabase class
定义
HistoryDatabase.h:25
CAddressCompleter::Command
定义
AddressCompleter.h:77
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力