玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
Extension
FrmWebBrowser_Extension_Integration.cpp
1
// 在 FrmWebBrowser.h 中添加
2
private
:
3
CFrmChromeExtensionManager* m_pExtensionManager;
4
5
// 在 FrmWebBrowser.cpp 构造函数中添加
6
CFrmWebBrowser::CFrmWebBrowser(
CParameterWebBrowser
* pPara,
bool
bMenuBar, QWidget *parent)
7
: QWidget(parent)
8
// ... 其他初始化
9
, m_pExtensionManager(nullptr)
10
{
11
// ... 其他代码
12
13
// 创建扩展管理器
14
m_pExtensionManager =
new
CFrmChromeExtensionManager(
this
);
15
}
16
17
// 在 FrmWebBrowser.cpp 初始化菜单中添加
18
int
CFrmWebBrowser::InitMenu(QMenu* pMenu)
19
{
20
if
(!pMenu)
return
-1;
21
22
// ... 其他菜单项
23
24
// 添加扩展管理菜单
25
QAction* pExtensions = pMenu->addAction(tr(
"Manage Extensions"
));
26
connect(pExtensions, &QAction::triggered,
this
, [
this
]() {
27
if
(m_pExtensionManager) {
28
auto
profile = GetProfile(
false
);
29
if
(profile) {
30
m_pExtensionManager->SetProfile(profile);
31
}
32
m_pExtensionManager->show();
33
m_pExtensionManager->activateWindow();
34
}
35
});
36
37
return
0;
38
}
39
40
// 在启动时加载已安装的扩展
41
int
CFrmWebBrowser::Start()
42
{
43
qDebug(log) << Q_FUNC_INFO;
44
45
auto
profile = GetProfile(
false
);
46
if
(profile && m_pExtensionManager) {
47
// 设置扩展管理器
48
m_pExtensionManager->SetProfile(profile);
49
50
// 加载已安装的扩展
51
auto
extensions = m_pExtensionManager->GetInstalledExtensions();
52
qDebug(log) <<
"Loaded"
<< extensions.count() <<
"extensions"
;
53
54
for
(
const
auto
&extId : extensions) {
55
auto
info = m_pExtensionManager->GetExtensionInfo(extId);
56
bool
enabled = info.value(
"enabled"
,
true
).toBool();
57
58
if
(enabled) {
59
qDebug(log) <<
"Extension enabled:"
<< info.value(
"name"
).toString();
60
}
61
}
62
}
63
64
return
0;
65
}
CParameterWebBrowser
定义
ParameterWebBrowser.h:12
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力