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/dynamicshortcutswidget.cpp
|
||||||
src/gui/webbrowser.cpp
|
src/gui/webbrowser.cpp
|
||||||
src/gui/basewebview.cpp
|
src/gui/basewebview.cpp
|
||||||
|
src/gui/basewebpage.cpp
|
||||||
|
|
||||||
# CORE sources.
|
# CORE sources.
|
||||||
src/core/debugging.cpp
|
src/core/debugging.cpp
|
||||||
@ -203,6 +204,7 @@ set(APP_HEADERS
|
|||||||
src/gui/dynamicshortcutswidget.h
|
src/gui/dynamicshortcutswidget.h
|
||||||
src/gui/webbrowser.h
|
src/gui/webbrowser.h
|
||||||
src/gui/basewebview.h
|
src/gui/basewebview.h
|
||||||
|
src/gui/basewebpage.h
|
||||||
|
|
||||||
# CORE headers.
|
# CORE headers.
|
||||||
src/core/basenetworkaccessmanager.h
|
src/core/basenetworkaccessmanager.h
|
||||||
|
@ -7,9 +7,19 @@
|
|||||||
|
|
||||||
BaseNetworkAccessManager::BaseNetworkAccessManager(QObject *parent)
|
BaseNetworkAccessManager::BaseNetworkAccessManager(QObject *parent)
|
||||||
: QNetworkAccessManager(parent) {
|
: QNetworkAccessManager(parent) {
|
||||||
|
loadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNetworkAccessManager::loadSettings() {
|
void BaseNetworkAccessManager::loadSettings() {
|
||||||
QNetworkProxy new_proxy;
|
QNetworkProxy new_proxy;
|
||||||
// TODO: Continue here.
|
// 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
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit BaseNetworkAccessManager(QObject *parent = 0);
|
explicit BaseNetworkAccessManager(QObject *parent = 0);
|
||||||
|
|
||||||
signals:
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void loadSettings();
|
void loadSettings();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QNetworkReply *createRequest(Operation op,
|
||||||
|
const QNetworkRequest &request,
|
||||||
|
QIODevice *outgoingData);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BASENETWORKACCESSMANAGER_H
|
#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/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>
|
#include <QWebView>
|
||||||
|
|
||||||
|
|
||||||
|
class QPaintEvent;
|
||||||
|
class BaseWebPage;
|
||||||
|
|
||||||
class BaseWebView : public QWebView {
|
class BaseWebView : public QWebView {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit BaseWebView(QWidget *parent = 0);
|
explicit BaseWebView(QWidget *parent = 0);
|
||||||
|
|
||||||
signals:
|
protected:
|
||||||
|
void paintEvent(QPaintEvent *event);
|
||||||
public slots:
|
|
||||||
|
private:
|
||||||
|
BaseWebPage *m_page;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BASEWEBVIEW_H
|
#endif // BASEWEBVIEW_H
|
||||||
|
@ -20,25 +20,19 @@
|
|||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="documentMode">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="movable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
<widget class="QWidget" name="tab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Tab 1</string>
|
<string>Tab 1</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<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>
|
<item>
|
||||||
<widget class="QWidget" name="widget" native="true"/>
|
<widget class="WebBrowser" name="widget" native="true"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
@ -81,7 +75,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>800</width>
|
<width>800</width>
|
||||||
<height>19</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="m_menuFile">
|
<widget class="QMenu" name="m_menuFile">
|
||||||
@ -154,6 +148,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>WebBrowser</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>webbrowser.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
@ -1,5 +1,47 @@
|
|||||||
#include "gui/webbrowser.h"
|
#include <QVBoxLayout>
|
||||||
|
#include <QToolBar>
|
||||||
|
#include <QPointer>
|
||||||
WebBrowser::WebBrowser(QWidget *parent) : QWidget(parent) {
|
|
||||||
}
|
#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
|
#ifndef WEBBROWSER_H
|
||||||
#define FORMBROWSER_H
|
#define WEBBROWSER_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
|
|
||||||
class WebBrowser : public QWidget {
|
class QVBoxLayout;
|
||||||
Q_OBJECT
|
class BaseNetworkAccessManager;
|
||||||
public:
|
|
||||||
explicit WebBrowser(QWidget *parent = 0);
|
class WebBrowser : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
signals:
|
|
||||||
|
public:
|
||||||
public slots:
|
explicit WebBrowser(QWidget *parent = 0);
|
||||||
|
~WebBrowser();
|
||||||
};
|
|
||||||
|
static BaseNetworkAccessManager *getNetworkManager();
|
||||||
#endif // FORMBROWSER_H
|
|
||||||
|
private:
|
||||||
|
QVBoxLayout *m_layout;
|
||||||
|
|
||||||
|
static QPointer<BaseNetworkAccessManager> m_networkManager;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // WEBBROWSER_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user