玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
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
12namespace Ui {
14}
15
28class CFrmExtensionManager : public QWidget
29{
30 Q_OBJECT
31
32public:
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
78private 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();
98private:
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
108private:
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};
扩展管理器界面
void EnableExtension(const QString &id, bool bEnable)
启用扩展
QWebEngineExtensionInfo GetExtensionInfo(const QString &id) const
获取扩展详细信息
void UninstallExtension(const QString &id)
卸载扩展
QList< QWebEngineExtensionInfo > GetInstalledExtensions() const
获取已安装的扩展列表
void InstallExtension(const QString &path)
安装或加载 Chrome 扩展
int SetProfile(QWebEngineProfile *profile)
设置 WebEngine Profile