玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
Extension
FrmExtensionManager.h
1
// Author: Kang Lin <kl222@126.com>
2
// Chrome Extension Manager for QWebEngine
3
4
#pragma once
5
6
#include <QWidget>
7
#include <QStandardItemModel>
8
#include <QWebEngineProfile>
9
#include <QWebEngineExtensionInfo>
10
#include <QWebEngineExtensionManager>
11
12
namespace
Ui
{
13
class
CFrmExtensionManager;
14
}
15
28
class
CFrmExtensionManager :
public
QWidget
29
{
30
Q_OBJECT
31
32
public
:
33
explicit
CFrmExtensionManager(
34
QWebEngineProfile *profile, QWidget *parent =
nullptr
);
35
virtual
~CFrmExtensionManager();
36
42
int
SetProfile
(QWebEngineProfile *profile);
43
52
void
InstallExtension
(
const
QString &path);
53
58
void
UninstallExtension
(
const
QString &
id
);
59
64
void
EnableExtension
(
const
QString &
id
,
bool
bEnable);
65
70
QList<QWebEngineExtensionInfo>
GetInstalledExtensions
()
const
;
71
76
QWebEngineExtensionInfo
GetExtensionInfo
(
const
QString &
id
)
const
;
77
78
private
slots:
79
void
on_pbInstall_clicked();
80
void
on_pbLoad_clicked();
81
void
on_pbUninstall_clicked();
82
void
on_pbRefresh_clicked();
83
void
on_pbDetails_clicked();
84
void
on_pbOpenDevTools_clicked();
85
void
on_pbOpenExtensionPath_clicked();
86
87
void
slotExtensionItemChanged(QStandardItem *item);
88
void
slotSelectionChanged();
89
void
slotCustomContextMenu(
const
QPoint &pos);
90
91
void
slotLoadFinished(
const
QWebEngineExtensionInfo &extension);
92
void
slotInstallFinished(
const
QWebEngineExtensionInfo &extension);
93
void
slotUnloadFinished(
const
QWebEngineExtensionInfo &extension);
94
void
slotUninstallFinished(
const
QWebEngineExtensionInfo &extension);
95
96
void
slotCopyPopupUrl();
97
void
slotCopyPath();
98
private
:
99
// 初始化函数
100
void
InitializeUI();
101
void
SetupConnections();
102
103
// 扩展操作函数
104
int
RefreshExtensionList();
105
int
AddExtensionItem(
const
QWebEngineExtensionInfo &info);
106
int
RemoveExtensionItem(
const
QString &extensionId);
107
108
private
:
109
Ui::CFrmExtensionManager* ui;
110
QWebEngineProfile* m_pProfile;
111
QStandardItemModel* m_pModelExtensions;
112
113
QAction* m_pInstall;
114
QAction* m_pLoad;
115
QAction* m_pUninstall;
116
QAction* m_pRefresh;
117
QAction* m_pCopyUrl;
118
QAction* m_pCopyPath;
119
QAction* m_pDetails;
120
QAction* m_pOpenFolder;
121
122
// 表列号枚举
123
enum
ColumnNo {
124
Name = 0,
125
Enabled,
126
Description,
127
PopupUrl,
128
ID,
129
Path
130
};
131
};
CFrmExtensionManager::EnableExtension
void EnableExtension(const QString &id, bool bEnable)
启用扩展
定义
FrmExtensionManager.cpp:196
CFrmExtensionManager::GetExtensionInfo
QWebEngineExtensionInfo GetExtensionInfo(const QString &id) const
获取扩展详细信息
定义
FrmExtensionManager.cpp:223
CFrmExtensionManager::UninstallExtension
void UninstallExtension(const QString &id)
卸载扩展
定义
FrmExtensionManager.cpp:180
CFrmExtensionManager::GetInstalledExtensions
QList< QWebEngineExtensionInfo > GetInstalledExtensions() const
获取已安装的扩展列表
定义
FrmExtensionManager.cpp:212
CFrmExtensionManager::InstallExtension
void InstallExtension(const QString &path)
安装或加载 Chrome 扩展
定义
FrmExtensionManager.cpp:157
CFrmExtensionManager::SetProfile
int SetProfile(QWebEngineProfile *profile)
设置 WebEngine Profile
定义
FrmExtensionManager.cpp:128
Ui
定义
FrmFullScreenToolBar.h:14
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力