Rabbit Remote Control 0.1.0-bate8
Loading...
Searching...
No Matches
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
20class CFrmWebBrowser : public QWidget
21{
22 Q_OBJECT
23
24public:
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
46Q_SIGNALS:
47 void sigInformation(const QString& szInfo);
48 void sigError(const int nError, const QString &szError);
51 void sigFullScreen(bool bFull);
52
53private 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
75public Q_SLOTS:
76 void slotFullScreen(bool bFullScreen);
77
78private:
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
93private:
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};
void sigUpdateTitle()
Title or icon changed.
The CMultimediaRecordThread class.