Files
racket-webview/rktwebview_qt/webviewwindow.h

88 lines
1.8 KiB
C++

#ifndef WEBVIEWWINDOW_H
#define WEBVIEWWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QWebEngineCertificateError>
#include <QWebEngineProfile>
#include <QWebEngineNavigationRequest>
class WebViewQt;
class Rktwebview_qt;
class Command;
class WebviewWindow : public QMainWindow
{
Q_OBJECT
private:
Rktwebview_qt *_container;
WebViewQt *_view;
QMainWindow *_devtools;
WebviewWindow *_parent;
QTimer _resize_timer;
QTimer _move_timer;
int _x;
int _y;
int _w;
int _h;
bool _must_close;
bool _window_created;
int _moved;
int _resized;
QString _ou_token;
QWebEngineProfile *_profile;
private slots:
void handleCertificate(const QWebEngineCertificateError &certificateError);
void navigationRequested(QWebEngineNavigationRequest &req);
public slots:
void processJsEvents();
protected:
void closeEvent(QCloseEvent *evt);
public:
void closeView();
bool windowCreated();
int moveCount();
int resizeCount();
void setOUToken(const QString &token);
public:
void addView(WebViewQt *v, Rktwebview_qt *c);
WebViewQt *view();
public:
void runJs(const QString &js);
void callJs(const QString &js, Command *c);
void openDevTools();
public:
explicit WebviewWindow(WebviewWindow *parent, bool has_scp, QByteArray scp_pem);
private slots:
void triggerResize();
void triggerMove();
public:
QWebEngineProfile *profile();
signals:
// QWidget interface
protected:
void moveEvent(QMoveEvent *event);
void resizeEvent(QResizeEvent *event);
void showEvent(QShowEvent *event);
void hideEvent(QHideEvent *event);
};
#endif // WEBVIEWWINDOW_H