玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
FrmWebBrowser_StoreIntegration.cpp
1// 在 FrmWebBrowser.h 中添加
2private:
3 CFrmExtensionStore* m_pExtensionStore;
4 CFrmChromeExtensionManager* m_pExtensionManager;
5
6// 在 FrmWebBrowser.cpp 构造函数中添加
7CFrmWebBrowser::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// 在菜单初始化中添加
28int 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}
Chrome 扩展商城
int SetExtensionManager(CFrmExtensionManager *manager)
设置扩展管理器
void SetAPIBaseUrl(const QString &baseUrl)
设置基础 URL (可以指向自建服务器)
void GetPopularExtensions()
获取热门扩展列表