玉兔远程控制 0.1.0-bate6
载入中...
搜索中...
未找到
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#include "History/HistoryDatabase.h"
20#include "Bookmark/BookmarkDatabase.h"
21
22class CFrmWebBrowser : public QWidget
23{
24 Q_OBJECT
25
26public:
27 explicit CFrmWebBrowser(CParameterWebBrowser* pPara, bool bMenuBar = false, QWidget *parent = nullptr);
28 virtual ~CFrmWebBrowser();
29
30 enum RV{
31 Success = 0,
32 Fail = -1,
33 FailCapturePage = -2,
34 FailCaptureFullPage = -3,
35 FailRecordPage = -4
36 };
37 Q_ENUM(RV)
38
39 int Load(QSettings &set);
40 int Save(QSettings &set);
41 int Start();
42 int Stop();
43 QWebEngineView *CreateWindow(QWebEnginePage::WebWindowType type, bool offTheRecord = false);
44 [[nodiscard]] virtual QMenu* GetMenu(QWidget* parent = nullptr);
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]] QWebEngineProfile* GetProfile(bool offTheRecord = false);
83 [[nodiscard]] CFrmWebView *CreateWebView(bool offTheRecord = false);
84 [[nodiscard]] QWidget* CreateTab(/*[in/out]*/CFrmWebView **view = nullptr, bool offTheRecord = false);
85 enum class ViewType{
86 Web = 0,
87 DevTools = 1
88 };
89 [[nodiscard]] CFrmWebView *CurrentView(ViewType type = ViewType::Web);
90 [[nodiscard]] bool IsCurrentView(CFrmWebView *pView);
91 [[nodiscard]] int IndexOfTab(CFrmWebView* pView);
92 [[nodiscard]] CFrmWebView* GetView(int index, ViewType type = ViewType::Web);
93
94private:
95 CParameterWebBrowser* m_pPara;
96 QMenuBar* m_pMenuBar;
97 QMenu m_Menu;
98 QToolBar* m_pToolBar;
99 QAction* m_pBack;
100 QAction* m_pForward;
101 QAction* m_pRefresh;
102 QAction* m_pStop;
103 QAction* m_pAddBookmark;
104 QAction* m_pFind;
105 QAction* m_pFindNext;
106 QAction* m_pFindPrevious;
107 QAction* m_pZoomOriginal;
108 QAction* m_pZoomIn;
109 QAction* m_pZoomOut;
110 QAction* m_pFavAction;
111 QAction* m_pGo;
112 QAction* m_pAddPage;
113 QAction* m_pAddPageIncognito;
114 QAction* m_pAddWindow;
115 QAction* m_pAddWindowIncognito;
116 QAction* m_pPrint;
117 QAction* m_pPrintToPdf;
118 QAction* m_pDownload;
119 QAction* m_pInspector;
120 QAction* m_pCapturePage;
121 QAction* m_pCaptureFulPage;
122 QAction* m_pRecord;
123 QAction* m_pUrl;
124 QLineEdit* m_pUrlLineEdit;
125 QProgressBar* m_pProgressBar;
126 QTabWidget* m_pTab;
127 QScopedPointer<QWebEngineProfile> m_profile;
128 CFrmDownloadManager m_DownloadManager;
129 QString m_szFindText;
130
131 QString m_szStyleSheet;
132 friend CFrmWebView;
133
134 CMultimediaRecordThread* m_pMultimediaRecord;
135 QTimer m_tmRecord;
136
137 CHistoryDatabase* m_pHistoryDatabase;
138 CBookmarkDatabase* m_pBookmarkDatabase;
139};
void sigUpdateTitle()
Title or icon changed
The CMultimediaRecordThread class