Rabbit Remote Control 0.1.0-bate16
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,
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
48Q_SIGNALS:
49 void sigInformation(const QString& szInfo);
50 void sigError(const int nError, const QString &szError);
53 void sigFullScreen(bool bFull);
54
55private 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
77public Q_SLOTS:
78 void slotFullScreen(bool bFullScreen);
79
80private:
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
96private:
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};
void sigUpdateTitle()
Title or icon changed.
The CMultimediaRecordThread class.