玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
FrmWebBrowser_Extension_Integration.cpp
1// 在 FrmWebBrowser.h 中添加
2private:
3 CFrmChromeExtensionManager* m_pExtensionManager;
4
5// 在 FrmWebBrowser.cpp 构造函数中添加
6CFrmWebBrowser::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 初始化菜单中添加
18int 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// 在启动时加载已安装的扩展
41int 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}