diff options
Diffstat (limited to 'src/webview.h')
-rw-r--r-- | src/webview.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/webview.h b/src/webview.h new file mode 100644 index 0000000..753c984 --- /dev/null +++ b/src/webview.h @@ -0,0 +1,28 @@ +#ifndef WEBVIEW_H_ +#define WEBVIEW_H_ + +#include <QStack> +#include <QWebView> + +/** + * Make sure pages that want to load in a new tab are actually loaded in the same page, + * and remember the previous URL in case the "new tab" requests to be closed. + */ +class WebView : public QWebView +{ + Q_OBJECT +public: + WebView(QWidget* parent = NULL) : QWebView(parent) { + connect(page(), SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested())); + } +protected: + QWebView *createWindow(QWebPage::WebWindowType); + +protected slots: + void windowCloseRequested(); + +private: + QStack<QUrl> _urls; +}; + +#endif |