Rabbit Remote Control
0.1.0-bate16
Toggle main menu visibility
Loading...
Searching...
No Matches
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
,
26
QWidget *parent =
nullptr
);
27
virtual
~CFrmWebBrowser();
28
29
enum
RV{
30
Success = 0,
31
Fail = -1,
32
FailCapturePage = -2,
33
FailCaptureFullPage = -3,
34
FailRecordPage = -4
35
};
36
Q_ENUM(RV)
37
38
int
Load(QSettings &set);
39
int
Save(QSettings &set);
40
int
Start();
41
int
Stop();
42
QWebEngineView *CreateWindow(QWebEnginePage::WebWindowType type,
43
bool
offTheRecord =
false
);
44
[[nodiscard]]
virtual
QMenu* GetMenu(QWidget* parent =
nullptr
);
45
46
[[nodiscard]] QWebEngineProfile* GetProfile(
bool
offTheRecord =
false
);
47
48
Q_SIGNALS:
49
void
sigInformation(
const
QString& szInfo);
50
void
sigError(
const
int
nError,
const
QString &szError);
52
void
sigUpdateTitle
();
53
void
sigFullScreen(
bool
bFull);
54
55
private
Q_SLOTS:
56
void
slotTabCurrentChanged(
int
index);
57
void
slotTabCloseRequested(
int
index);
58
void
slotViewCloseRequested();
59
void
slotReturnPressed();
60
void
slotUrlSelected(
const
QString& szUrl);
61
void
slotInspector(
bool
checked);
62
63
void
slotPrint();
64
void
slotPrintFinished(
bool
success);
65
void
slotPrintToPdf();
66
void
slotPdfPrintingFinished(
const
QString& szFile,
bool
success);
67
68
void
slotCapturePage();
69
void
slotCaptureFullPage();
70
void
slotRecord();
71
void
slotRecordTimeout();
72
73
void
slotAddBookmark();
74
void
slotBookmark();
75
void
slotHistory();
76
77
public
Q_SLOTS:
78
void
slotFullScreen(
bool
bFullScreen);
79
80
private
:
81
int
InitMenu(QMenu* pMenu);
82
void
EnableAction(
bool
enable);
83
void
SetConnect(CFrmWebView* pWeb);
84
[[nodiscard]] CFrmWebView *CreateWebView(
bool
offTheRecord =
false
);
85
[[nodiscard]] QWidget* CreateTab(
/*[in/out]*/
CFrmWebView **view =
nullptr
,
86
bool
offTheRecord =
false
);
87
enum class
ViewType{
88
Web = 0,
89
DevTools = 1
90
};
91
[[nodiscard]]
CFrmWebView
*CurrentView(ViewType type = ViewType::Web);
92
[[nodiscard]]
bool
IsCurrentView(
CFrmWebView
*pView);
93
[[nodiscard]]
int
IndexOfTab(
CFrmWebView
* pView);
94
[[nodiscard]]
CFrmWebView
* GetView(
int
index, ViewType type = ViewType::Web);
95
96
private
:
97
CParameterWebBrowser
* m_pPara;
98
QMenuBar* m_pMenuBar;
99
QMenu m_Menu;
100
QToolBar* m_pToolBar;
101
QAction* m_pBack;
102
QAction* m_pForward;
103
QAction* m_pRefresh;
104
QAction* m_pStop;
105
QAction* m_pAddBookmark;
106
QAction* m_pFind;
107
QAction* m_pFindNext;
108
QAction* m_pFindPrevious;
109
QAction* m_pZoomOriginal;
110
QAction* m_pZoomIn;
111
QAction* m_pZoomOut;
112
QAction* m_pFavAction;
113
QAction* m_pGo;
114
QAction* m_pAddPage;
115
QAction* m_pAddPageIncognito;
116
QAction* m_pAddWindow;
117
QAction* m_pAddWindowIncognito;
118
QAction* m_pPrint;
119
QAction* m_pPrintToPdf;
120
QAction* m_pDownload;
121
QAction* m_pInspector;
122
QAction* m_pCapturePage;
123
QAction* m_pCaptureFulPage;
124
QAction* m_pRecord;
125
QAction* m_pUrl;
126
QLineEdit* m_pUrlLineEdit;
127
QProgressBar* m_pProgressBar;
128
QTabWidget* m_pTab;
129
QScopedPointer<QWebEngineProfile> m_profile;
130
CFrmDownloadManager
m_DownloadManager;
131
QString m_szFindText;
132
133
QString m_szStyleSheet;
134
friend
CFrmWebView
;
135
136
CMultimediaRecordThread
* m_pMultimediaRecord;
137
QTimer m_tmRecord;
138
};
CFrmDownloadManager
Definition
FrmDownloadManager.h:10
CFrmWebBrowser::sigUpdateTitle
void sigUpdateTitle()
Title or icon changed.
CFrmWebView
Definition
FrmWebView.h:30
CMultimediaRecordThread
The CMultimediaRecordThread class.
Definition
MultimediaRecord.h:87
CParameterWebBrowser
Definition
ParameterWebBrowser.h:12
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved