Added some web browser stuff.
This commit is contained in:
parent
73dd31e285
commit
5062545cad
@ -169,6 +169,7 @@ set(APP_SOURCES
|
||||
src/gui/dynamicshortcutswidget.cpp
|
||||
src/gui/webbrowser.cpp
|
||||
src/gui/basewebview.cpp
|
||||
src/gui/basewebpage.cpp
|
||||
|
||||
# CORE sources.
|
||||
src/core/debugging.cpp
|
||||
@ -203,6 +204,7 @@ set(APP_HEADERS
|
||||
src/gui/dynamicshortcutswidget.h
|
||||
src/gui/webbrowser.h
|
||||
src/gui/basewebview.h
|
||||
src/gui/basewebpage.h
|
||||
|
||||
# CORE headers.
|
||||
src/core/basenetworkaccessmanager.h
|
||||
|
@ -7,9 +7,19 @@
|
||||
|
||||
BaseNetworkAccessManager::BaseNetworkAccessManager(QObject *parent)
|
||||
: QNetworkAccessManager(parent) {
|
||||
loadSettings();
|
||||
}
|
||||
|
||||
void BaseNetworkAccessManager::loadSettings() {
|
||||
QNetworkProxy new_proxy;
|
||||
// TODO: Continue here.
|
||||
setProxy(new_proxy);
|
||||
}
|
||||
|
||||
QNetworkReply *BaseNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op,
|
||||
const QNetworkRequest &request,
|
||||
QIODevice *outgoingData) {
|
||||
return QNetworkAccessManager::createRequest(op,
|
||||
request,
|
||||
outgoingData);
|
||||
}
|
||||
|
@ -8,11 +8,14 @@ class BaseNetworkAccessManager : public QNetworkAccessManager {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit BaseNetworkAccessManager(QObject *parent = 0);
|
||||
|
||||
signals:
|
||||
|
||||
|
||||
public slots:
|
||||
void loadSettings();
|
||||
|
||||
protected:
|
||||
QNetworkReply *createRequest(Operation op,
|
||||
const QNetworkRequest &request,
|
||||
QIODevice *outgoingData);
|
||||
};
|
||||
|
||||
#endif // BASENETWORKACCESSMANAGER_H
|
||||
|
8
src/gui/basewebpage.cpp
Normal file
8
src/gui/basewebpage.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
#include "core/basenetworkaccessmanager.h"
|
||||
#include "gui/basewebpage.h"
|
||||
#include "gui/webbrowser.h"
|
||||
|
||||
|
||||
BaseWebPage::BaseWebPage(QObject *parent) : QWebPage(parent) {
|
||||
setNetworkAccessManager(WebBrowser::getNetworkManager());
|
||||
}
|
18
src/gui/basewebpage.h
Normal file
18
src/gui/basewebpage.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef BASEWEBPAGE_H
|
||||
#define BASEWEBPAGE_H
|
||||
|
||||
#include <QWebPage>
|
||||
|
||||
|
||||
class BaseWebPage : public QWebPage {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit BaseWebPage(QObject *parent = 0);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
};
|
||||
|
||||
#endif // BASEWEBPAGE_H
|
@ -1,5 +1,16 @@
|
||||
#include <QStyleOptionFrameV3>
|
||||
|
||||
#include "gui/basewebview.h"
|
||||
#include "gui/basewebpage.h"
|
||||
|
||||
|
||||
BaseWebView::BaseWebView(QWidget *parent) : QWebView(parent) {
|
||||
BaseWebView::BaseWebView(QWidget *parent)
|
||||
: QWebView(parent), m_page(new BaseWebPage(this)) {
|
||||
setPage(m_page);
|
||||
}
|
||||
|
||||
void BaseWebView::paintEvent(QPaintEvent *event) {
|
||||
QWebView::paintEvent(event);
|
||||
|
||||
// TODO: Add frame, inspire from QFrame source code - paint event.
|
||||
}
|
||||
|
@ -4,15 +4,19 @@
|
||||
#include <QWebView>
|
||||
|
||||
|
||||
class QPaintEvent;
|
||||
class BaseWebPage;
|
||||
|
||||
class BaseWebView : public QWebView {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit BaseWebView(QWidget *parent = 0);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event);
|
||||
|
||||
private:
|
||||
BaseWebPage *m_page;
|
||||
};
|
||||
|
||||
#endif // BASEWEBVIEW_H
|
||||
|
@ -20,25 +20,19 @@
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="documentMode">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="movable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>Tab 1</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true"/>
|
||||
<widget class="WebBrowser" name="widget" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@ -81,7 +75,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>19</height>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="m_menuFile">
|
||||
@ -154,6 +148,14 @@
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>WebBrowser</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>webbrowser.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
@ -1,5 +1,47 @@
|
||||
#include "gui/webbrowser.h"
|
||||
|
||||
|
||||
WebBrowser::WebBrowser(QWidget *parent) : QWidget(parent) {
|
||||
}
|
||||
#include <QVBoxLayout>
|
||||
#include <QToolBar>
|
||||
#include <QPointer>
|
||||
|
||||
#include "core/basenetworkaccessmanager.h"
|
||||
#include "gui/basewebview.h"
|
||||
#include "gui/webbrowser.h"
|
||||
#include "gui/themefactory.h"
|
||||
|
||||
|
||||
QPointer<BaseNetworkAccessManager> WebBrowser::m_networkManager;
|
||||
|
||||
WebBrowser::WebBrowser(QWidget *parent)
|
||||
: QWidget(parent), m_layout(new QVBoxLayout(this)) {
|
||||
|
||||
// TODO: Make this better, add location box, search box, better icons for buttons,
|
||||
// note that icons must be loaded via separate method,
|
||||
// and main window will be responsible for reloading
|
||||
// icons on all web browsers.
|
||||
QToolBar *bar = new QToolBar(tr("Navigation panel"), this);
|
||||
BaseWebView *view = new BaseWebView(this);
|
||||
|
||||
bar->addAction(view->pageAction(QWebPage::Back));
|
||||
bar->addAction(view->pageAction(QWebPage::Forward));
|
||||
bar->addAction(view->pageAction(QWebPage::Reload));
|
||||
bar->addAction(view->pageAction(QWebPage::Stop));
|
||||
|
||||
m_layout->addWidget(bar);
|
||||
m_layout->addWidget(view);
|
||||
m_layout->setMargin(0);
|
||||
|
||||
view->load(QUrl("http://www.seznam.cz"));
|
||||
}
|
||||
|
||||
WebBrowser::~WebBrowser() {
|
||||
qDebug("Erasing WebBrowser instance.");
|
||||
|
||||
delete m_layout;
|
||||
}
|
||||
|
||||
BaseNetworkAccessManager *WebBrowser::getNetworkManager() {
|
||||
if (m_networkManager.isNull()) {
|
||||
m_networkManager = new BaseNetworkAccessManager();
|
||||
}
|
||||
|
||||
return m_networkManager;
|
||||
}
|
||||
|
@ -1,18 +1,25 @@
|
||||
#ifndef FORMBROWSER_H
|
||||
#define FORMBROWSER_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
|
||||
class WebBrowser : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit WebBrowser(QWidget *parent = 0);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
};
|
||||
|
||||
#endif // FORMBROWSER_H
|
||||
#ifndef WEBBROWSER_H
|
||||
#define WEBBROWSER_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
|
||||
class QVBoxLayout;
|
||||
class BaseNetworkAccessManager;
|
||||
|
||||
class WebBrowser : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit WebBrowser(QWidget *parent = 0);
|
||||
~WebBrowser();
|
||||
|
||||
static BaseNetworkAccessManager *getNetworkManager();
|
||||
|
||||
private:
|
||||
QVBoxLayout *m_layout;
|
||||
|
||||
static QPointer<BaseNetworkAccessManager> m_networkManager;
|
||||
};
|
||||
|
||||
#endif // WEBBROWSER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user