玉兔远程控制 0.1.0-bate14
载入中...
搜索中...
未找到
PluginWebBrowser.cpp
1// Author: Kang Lin <kl222@126.com>
2#include <QWebEngineProfile>
3#include <QLoggingCategory>
4
5#include "ProtocolManager.h"
6#include "PluginWebBrowser.h"
7#include "OperateWebBrowser.h"
8
9static Q_LOGGING_CATEGORY(log, "WebBrowser.Plugin")
10
12 : CPlugin(parent)
13{
14 qDebug(log) << Q_FUNC_INFO;
15
16 /*
17 CProtocolManager manager;
18 // 获取所有注册的协议
19 QStringList protocols = manager.getAllRegisteredProtocols();
20 qDebug(log) << "All registered protocols:" << protocols;
21
22 // 检查特定协议
23 if (manager.isProtocolRegistered("rrc")) {
24 QString handler = manager.getDefaultHandlerForProtocol("rrc");
25 qDebug(log) << "rrc protocol handler:" << handler;
26 }
27
28 // 获取协议关联的应用
29 QStringList apps = manager.getApplicationsForProtocol("mailto");
30 qDebug(log) << "Apps handling mailto:" << apps;
31
32 // 获取所有协议及其应用
33 QMap<QString, QStringList> allProtocols = manager.getAllProtocolsWithApps();
34 for (auto it = allProtocols.begin(); it != allProtocols.end(); ++it) {
35 qDebug(log) << "Protocol:" << it.key() << "Apps:" << it.value();
36 }
37 //*/
38}
39
40CPluginWebBrowser::~CPluginWebBrowser()
41{
42 qDebug(log) << Q_FUNC_INFO;
43}
44
45const CPluginWebBrowser::TYPE CPluginWebBrowser::Type() const
46{
47 return TYPE::Tools;
48}
49
50const QString CPluginWebBrowser::Protocol() const
51{
52 return QString();
53}
54
55const QString CPluginWebBrowser::Name() const
56{
57 return "WebBrowser";
58}
59
60const QString CPluginWebBrowser::DisplayName() const
61{
62 return tr("Web browser") + tr("(Experimental)");
63}
64
65const QString CPluginWebBrowser::Description() const
66{
67 return tr("Web browser: Browsing the web") + tr("(Experimental)");
68}
69
70const QString CPluginWebBrowser::Version() const
71{
72 return PluginWebBrowser_VERSION;
73}
74
75const QIcon CPluginWebBrowser::Icon() const
76{
77 return QIcon::fromTheme("web-browser");
78}
79
80COperate *CPluginWebBrowser::OnCreateOperate(const QString &szId)
81{
82 if(Id() == szId)
83 return new COperateWebBrowser(this);
84 return nullptr;
85}
86
87const QString CPluginWebBrowser::Details() const
88{
89 QString szDetails;
90 szDetails += "- " + tr("Dependency libraries") + "\n";
91#if QT_VERSION >= QT_VERSION_CHECK(6, 2, 0)
92 szDetails += " - QWebEngine" + QString("\n");
93 szDetails += " - " + tr("version:") + " " + qWebEngineVersion() + "\n";
94#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
95 szDetails += " - " + tr("Process name:") + " " + qWebEngineProcessName() + "\n";
96#endif
97 szDetails += " - " + tr("Chromium:") + "\n";
98 szDetails += " - " + tr("version:") + " " + qWebEngineChromiumVersion() + "\n";
99#endif
100#if QT_VERSION >= QT_VERSION_CHECK(6, 3, 0)
101 szDetails += " - " + tr("Security patch version:") + " " + qWebEngineChromiumSecurityPatchVersion() + "\n";
102#endif
103 return szDetails;
104}
105
107{
108 //TODO: Add set global parameters
109 return nullptr;
110 QWidget* pSetting = new QWidget(parent);
111 if(pSetting)
112 pSetting->setWindowTitle(tr("Set Web Wrowser"));
113 return pSetting;
114}
115
117{
118 return CPlugin::CreateOperate(szId, para);
119}
操作接口。
插件的全局参数。
virtual const QString Name() const override
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
virtual Q_INVOKABLE QWidget * GetSettingsWidget(QWidget *parent) override
得到设置此插件全局参数的窗口
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CManager 调用
virtual const QString Protocol() const override
协议
virtual const QString Description() const override
描述
virtual const QString DisplayName() const override
在界面上显示的名称
virtual const QString Version() const override
Version
virtual const QString Details() const override
显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述等
插件接口
virtual const QString Id() const
标识。默认: Type() + ":" + Protocol() + ":" + Name()
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CManager 调用