玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
FrmWebBrowser.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QMenuBar>
6
#include <QMenu>
7
#include <QWidget>
8
#include <QWebEngineView>
9
#include <QToolBar>
10
#include <QLineEdit>
11
#include <QProgressBar>
12
#include <QTabWidget>
13
#include <QTimer>
14
15
#include "FrmWebView.h"
16
#include "FrmDownloadManager.h"
17
#include "ParameterWebBrowser.h"
18
#include "MultimediaRecord.h"
19
20
class
CFrmWebBrowser :
public
QWidget
21
{
22
Q_OBJECT
23
24
public
:
25
explicit
CFrmWebBrowser(
CParameterWebBrowser
* pPara,
bool
bMenuBar =
false
, QWidget *parent =
nullptr
);
26
virtual
~CFrmWebBrowser();
27
28
enum
RV{
29
Success = 0,
30
Fail = -1,
31
FailCapturePage = -2,
32
FailCaptureFullPage = -3,
33
FailRecordPage = -4
34
};
35
Q_ENUM(RV)
36
37
int
Load(QSettings &set);
38
int
Save(QSettings &set);
39
int
Start();
40
int
Stop();
41
QWebEngineView *CreateWindow(QWebEnginePage::WebWindowType type,
bool
offTheRecord =
false
);
42
[[nodiscard]]
virtual
QMenu* GetMenu(QWidget* parent =
nullptr
);
43
44
[[nodiscard]] QWebEngineProfile* GetProfile(
bool
offTheRecord =
false
);
45
46
Q_SIGNALS:
47
void
sigInformation(
const
QString& szInfo);
48
void
sigError(
const
int
nError,
const
QString &szError);
50
void
sigUpdateTitle
();
51
void
sigFullScreen(
bool
bFull);
52
53
private
Q_SLOTS:
54
void
slotTabCurrentChanged(
int
index);
55
void
slotTabCloseRequested(
int
index);
56
void
slotViewCloseRequested();
57
void
slotReturnPressed();
58
void
slotUrlSelected(
const
QString& szUrl);
59
void
slotInspector(
bool
checked);
60
61
void
slotPrint();
62
void
slotPrintFinished(
bool
success);
63
void
slotPrintToPdf();
64
void
slotPdfPrintingFinished(
const
QString& szFile,
bool
success);
65
66
void
slotCapturePage();
67
void
slotCaptureFullPage();
68
void
slotRecord();
69
void
slotRecordTimeout();
70
71
void
slotAddBookmark();
72
void
slotBookmark();
73
void
slotHistory();
74
75
public
Q_SLOTS:
76
void
slotFullScreen(
bool
bFullScreen);
77
78
private
:
79
int
InitMenu(QMenu* pMenu);
80
void
EnableAction(
bool
enable);
81
void
SetConnect(CFrmWebView* pWeb);
82
[[nodiscard]] CFrmWebView *CreateWebView(
bool
offTheRecord =
false
);
83
[[nodiscard]] QWidget* CreateTab(
/*[in/out]*/
CFrmWebView **view =
nullptr
,
bool
offTheRecord =
false
);
84
enum class
ViewType{
85
Web = 0,
86
DevTools = 1
87
};
88
[[nodiscard]]
CFrmWebView
*CurrentView(ViewType type = ViewType::Web);
89
[[nodiscard]]
bool
IsCurrentView(
CFrmWebView
*pView);
90
[[nodiscard]]
int
IndexOfTab(
CFrmWebView
* pView);
91
[[nodiscard]]
CFrmWebView
* GetView(
int
index, ViewType type = ViewType::Web);
92
93
private
:
94
CParameterWebBrowser
* m_pPara;
95
QMenuBar* m_pMenuBar;
96
QMenu m_Menu;
97
QToolBar* m_pToolBar;
98
QAction* m_pBack;
99
QAction* m_pForward;
100
QAction* m_pRefresh;
101
QAction* m_pStop;
102
QAction* m_pAddBookmark;
103
QAction* m_pFind;
104
QAction* m_pFindNext;
105
QAction* m_pFindPrevious;
106
QAction* m_pZoomOriginal;
107
QAction* m_pZoomIn;
108
QAction* m_pZoomOut;
109
QAction* m_pFavAction;
110
QAction* m_pGo;
111
QAction* m_pAddPage;
112
QAction* m_pAddPageIncognito;
113
QAction* m_pAddWindow;
114
QAction* m_pAddWindowIncognito;
115
QAction* m_pPrint;
116
QAction* m_pPrintToPdf;
117
QAction* m_pDownload;
118
QAction* m_pInspector;
119
QAction* m_pCapturePage;
120
QAction* m_pCaptureFulPage;
121
QAction* m_pRecord;
122
QAction* m_pUrl;
123
QLineEdit* m_pUrlLineEdit;
124
QProgressBar* m_pProgressBar;
125
QTabWidget* m_pTab;
126
QScopedPointer<QWebEngineProfile> m_profile;
127
CFrmDownloadManager
m_DownloadManager;
128
QString m_szFindText;
129
130
QString m_szStyleSheet;
131
friend
CFrmWebView
;
132
133
CMultimediaRecordThread
* m_pMultimediaRecord;
134
QTimer m_tmRecord;
135
};
CFrmDownloadManager
定义
FrmDownloadManager.h:10
CFrmWebBrowser::sigUpdateTitle
void sigUpdateTitle()
Title or icon changed
CFrmWebView
定义
FrmWebView.h:30
CMultimediaRecordThread
The CMultimediaRecordThread class
定义
MultimediaRecord.h:87
CParameterWebBrowser
定义
ParameterWebBrowser.h:12
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力