Rabbit Remote Control 0.1.0-bate5
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
14#include "FrmWebView.h"
15#include "FrmDownloadManager.h"
16#include "ParameterWebBrowser.h"
17
18class CFrmWebBrowser : public QWidget
19{
20 Q_OBJECT
21
22public:
23 explicit CFrmWebBrowser(CParameterWebBrowser* pPara, bool bMenuBar = false, QWidget *parent = nullptr);
24 virtual ~CFrmWebBrowser();
25
26 int Load(QSettings &set);
27 int Save(QSettings &set);
28 int Start();
29 int Stop();
30 QWebEngineView *CreateWindow(QWebEnginePage::WebWindowType type, bool offTheRecord = false);
31 [[nodiscard]] virtual QMenu* GetMenu(QWidget* parent = nullptr);
32
33Q_SIGNALS:
34 void sigInformation(const QString& szInfo);
37 void sigFullScreen(bool bFull);
38
39private Q_SLOTS:
40 void slotTabCurrentChanged(int index);
41 void slotTabCloseRequested(int index);
42 void slotViewCloseRequested();
43 void slotReturnPressed();
44 void slotInspector(bool checked);
45
46 void slotPrint();
47 void slotPrintFinished(bool success);
48 void slotPrintToPdf();
49 void slotPdfPrintingFinished(const QString& szFile, bool success);
50
51public Q_SLOTS:
52 void slotFullScreen(bool bFullScreen);
53
54private:
55 int InitMenu(QMenu* pMenu);
56 void EnableAction(bool enable);
57 void SetConnect(CFrmWebView* pWeb);
58 [[nodiscard]] QWebEngineProfile* GetProfile(bool offTheRecord = false);
59 [[nodiscard]] CFrmWebView *CreateWebView(bool offTheRecord = false);
60 [[nodiscard]] QWidget* CreateTab(/*[in/out]*/CFrmWebView **view = nullptr, bool offTheRecord = false);
61 enum class ViewType{
62 Web = 0,
63 DevTools = 1
64 };
65 [[nodiscard]] CFrmWebView *CurrentView(ViewType type = ViewType::Web);
66 [[nodiscard]] bool IsCurrentView(CFrmWebView *pView);
67 [[nodiscard]] int IndexOfTab(CFrmWebView* pView);
68 [[nodiscard]] CFrmWebView* GetView(int index, ViewType type = ViewType::Web);
69
70private:
71 QMenuBar* m_pMenuBar;
72 QMenu m_Menu;
73 CParameterWebBrowser* m_pPara;
74 QToolBar* m_pToolBar;
75 QAction* m_pBack;
76 QAction* m_pForward;
77 QAction* m_pRefresh;
78 QAction* m_pStop;
79 QAction* m_pFind;
80 QAction* m_pFindNext;
81 QAction* m_pFindPrevious;
82 QAction* m_pZoomOriginal;
83 QAction* m_pZoomIn;
84 QAction* m_pZoomOut;
85 QAction* m_pFavAction;
86 QAction* m_pGo;
87 QAction* m_pAddPage;
88 QAction* m_pAddPageIncognito;
89 QAction* m_pAddWindow;
90 QAction* m_pAddWindowIncognito;
91 QAction* m_pPrint;
92 QAction* m_pPrintToPdf;
93 QAction* m_pDownload;
94 QAction* m_pInspector;
95 QAction* m_pUrl;
96 QLineEdit* m_pUrlLineEdit;
97 QProgressBar* m_pProgressBar;
98 QTabWidget* m_pTab;
99 QScopedPointer<QWebEngineProfile> m_profile;
100 CFrmDownloadManager m_DownloadManager;
101 QString m_szFindText;
102
103 QString m_szStyleSheet;
104 friend CFrmWebView;
105};
void sigUpdateTitle()
Title or icon changed.