玉兔远程控制 0.1.0-bate4
载入中...
搜索中...
未找到
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
38private Q_SLOTS:
39 void slotTabCurrentChanged(int index);
40 void slotTabCloseRequested(int index);
41 void slotViewCloseRequested();
42 void slotReturnPressed();
43 void slotInspector(bool checked);
44
45 void slotPrint();
46 void slotPrintFinished(bool success);
47 void slotPrintToPdf();
48 void slotPdfPrintingFinished(const QString& szFile, bool success);
49
50private:
51 int InitMenu(QMenu* pMenu);
52 void EnableAction(bool enable);
53 void SetConnect(CFrmWebView* pWeb);
54 [[nodiscard]] QWebEngineProfile* GetProfile(bool offTheRecord = false);
55 [[nodiscard]] CFrmWebView *CreateWebView(bool offTheRecord = false);
56 [[nodiscard]] QWidget* CreateTab(/*[in/out]*/CFrmWebView **view = nullptr, bool offTheRecord = false);
57 enum class ViewType{
58 Web = 0,
59 DevTools = 1
60 };
61 [[nodiscard]] CFrmWebView *CurrentView(ViewType type = ViewType::Web);
62 [[nodiscard]] bool IsCurrentView(CFrmWebView *pView);
63 [[nodiscard]] int IndexOfTab(CFrmWebView* pView);
64 [[nodiscard]] CFrmWebView* GetView(int index, ViewType type = ViewType::Web);
65
66private:
67 QMenuBar* m_pMenuBar;
68 QMenu m_Menu;
69 CParameterWebBrowser* m_pPara;
70 QToolBar* m_pToolBar;
71 QAction* m_pBack;
72 QAction* m_pForward;
73 QAction* m_pRefresh;
74 QAction* m_pStop;
75 QAction* m_pFind;
76 QAction* m_pFindNext;
77 QAction* m_pFindPrevious;
78 QAction* m_pZoomOriginal;
79 QAction* m_pZoomIn;
80 QAction* m_pZoomOut;
81 QAction* m_pFavAction;
82 QAction* m_pGo;
83 QAction* m_pAddPage;
84 QAction* m_pAddPageIncognito;
85 QAction* m_pAddWindow;
86 QAction* m_pAddWindowIncognito;
87 QAction* m_pPrint;
88 QAction* m_pPrintToPdf;
89 QAction* m_pDownload;
90 QAction* m_pInspector;
91 QAction* m_pUrl;
92 QLineEdit* m_pUrlLineEdit;
93 QProgressBar* m_pProgressBar;
94 QTabWidget* m_pTab;
95 QScopedPointer<QWebEngineProfile> m_profile;
96 CFrmDownloadManager m_DownloadManager;
97 QString m_szFindText;
98
99 friend CFrmWebView;
100};
void sigUpdateTitle()
Title or icon changed