玉兔远程控制 0.1.0-bate5
载入中...
搜索中...
未找到
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
44Q_SIGNALS:
45 void sigInformation(const QString& szInfo);
46 void sigError(const int nError, const QString &szError);
49 void sigFullScreen(bool bFull);
50
51private Q_SLOTS:
52 void slotTabCurrentChanged(int index);
53 void slotTabCloseRequested(int index);
54 void slotViewCloseRequested();
55 void slotReturnPressed();
56 void slotInspector(bool checked);
57
58 void slotPrint();
59 void slotPrintFinished(bool success);
60 void slotPrintToPdf();
61 void slotPdfPrintingFinished(const QString& szFile, bool success);
62
63 void slotCapturePage();
64 void slotCaptureFullPage();
65 void slotRecord();
66 void slotRecordTimeout();
67
68public Q_SLOTS:
69 void slotFullScreen(bool bFullScreen);
70
71private:
72 int InitMenu(QMenu* pMenu);
73 void EnableAction(bool enable);
74 void SetConnect(CFrmWebView* pWeb);
75 [[nodiscard]] QWebEngineProfile* GetProfile(bool offTheRecord = false);
76 [[nodiscard]] CFrmWebView *CreateWebView(bool offTheRecord = false);
77 [[nodiscard]] QWidget* CreateTab(/*[in/out]*/CFrmWebView **view = nullptr, bool offTheRecord = false);
78 enum class ViewType{
79 Web = 0,
80 DevTools = 1
81 };
82 [[nodiscard]] CFrmWebView *CurrentView(ViewType type = ViewType::Web);
83 [[nodiscard]] bool IsCurrentView(CFrmWebView *pView);
84 [[nodiscard]] int IndexOfTab(CFrmWebView* pView);
85 [[nodiscard]] CFrmWebView* GetView(int index, ViewType type = ViewType::Web);
86
87private:
88 CParameterWebBrowser* m_pPara;
89 QMenuBar* m_pMenuBar;
90 QMenu m_Menu;
91 QToolBar* m_pToolBar;
92 QAction* m_pBack;
93 QAction* m_pForward;
94 QAction* m_pRefresh;
95 QAction* m_pStop;
96 QAction* m_pFind;
97 QAction* m_pFindNext;
98 QAction* m_pFindPrevious;
99 QAction* m_pZoomOriginal;
100 QAction* m_pZoomIn;
101 QAction* m_pZoomOut;
102 QAction* m_pFavAction;
103 QAction* m_pGo;
104 QAction* m_pAddPage;
105 QAction* m_pAddPageIncognito;
106 QAction* m_pAddWindow;
107 QAction* m_pAddWindowIncognito;
108 QAction* m_pPrint;
109 QAction* m_pPrintToPdf;
110 QAction* m_pDownload;
111 QAction* m_pInspector;
112 QAction* m_pCapturePage;
113 QAction* m_pCaptureFulPage;
114 QAction* m_pRecord;
115 QAction* m_pUrl;
116 QLineEdit* m_pUrlLineEdit;
117 QProgressBar* m_pProgressBar;
118 QTabWidget* m_pTab;
119 QScopedPointer<QWebEngineProfile> m_profile;
120 CFrmDownloadManager m_DownloadManager;
121 QString m_szFindText;
122
123 QString m_szStyleSheet;
124 friend CFrmWebView;
125
126 CMultimediaRecordThread* m_pMultimediaRecord;
127 QTimer m_tmRecord;
128};
void sigUpdateTitle()
Title or icon changed
The CMultimediaRecordThread class