玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
Extension
FrmWebBrowser_StoreIntegration.cpp
1
// 在 FrmWebBrowser.h 中添加
2
private
:
3
CFrmExtensionStore
* m_pExtensionStore;
4
CFrmChromeExtensionManager* m_pExtensionManager;
5
6
// 在 FrmWebBrowser.cpp 构造函数中添加
7
CFrmWebBrowser::CFrmWebBrowser(
CParameterWebBrowser
* pPara,
bool
bMenuBar, QWidget *parent)
8
: QWidget(parent)
9
// ... 其他初始化
10
, m_pExtensionStore(nullptr)
11
, m_pExtensionManager(nullptr)
12
{
13
// ... 其他代码
14
15
// 创建扩展管理器和商城
16
m_pExtensionManager =
new
CFrmChromeExtensionManager(
this
);
17
m_pExtensionStore =
new
CFrmExtensionStore
(
this
);
18
m_pExtensionStore->SetExtensionManager(m_pExtensionManager);
19
20
// 设置商城 API 地址 (可从配置读取)
21
QString storeUrl = m_pPara->GetExtensionStoreUrl();
22
if
(!storeUrl.isEmpty()) {
23
m_pExtensionStore->SetAPIBaseUrl(storeUrl);
24
}
25
}
26
27
// 在菜单初始化中添加
28
int
CFrmWebBrowser::InitMenu(QMenu* pMenu)
29
{
30
if
(!pMenu)
return
-1;
31
32
// ... 其他菜单项
33
34
// 添加扩展管理菜单
35
QMenu* pExtMenu = pMenu->addMenu(tr(
"Extensions"
));
36
37
QAction* pManager = pExtMenu->addAction(tr(
"Manage Extensions"
));
38
connect(pManager, &QAction::triggered,
this
, [
this
]() {
39
if
(m_pExtensionManager) {
40
auto
profile = GetProfile(
false
);
41
if
(profile) {
42
m_pExtensionManager->SetProfile(profile);
43
}
44
m_pExtensionManager->show();
45
m_pExtensionManager->activateWindow();
46
}
47
});
48
49
QAction* pStore = pExtMenu->addAction(tr(
"Extension Store"
));
50
connect(pStore, &QAction::triggered,
this
, [
this
]() {
51
if
(m_pExtensionStore) {
52
m_pExtensionStore->
GetPopularExtensions
();
53
m_pExtensionStore->show();
54
m_pExtensionStore->activateWindow();
55
}
56
});
57
58
return
0;
59
}
CFrmExtensionStore
Chrome 扩展商城
定义
FrmExtensionStore.h:32
CFrmExtensionStore::GetPopularExtensions
void GetPopularExtensions()
获取热门扩展列表
定义
FrmExtensionStore.cpp:222
CParameterWebBrowser
定义
ParameterWebBrowser.h:12
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力