From: Tobias Koenig Date: Sun, 28 Oct 2012 07:38:38 +0000 (+0100) Subject: Add support for WebView X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=67ca977e5ef2cb8c93363516c989c7e4959c1e81;p=konrad%2FDeclarativeWidgets.git Add support for WebView or how to create your webbrowser with 36 loc... it's just awesome!!! :) --- diff --git a/browser.qml b/browser.qml new file mode 100644 index 0000000..8b8b21e --- /dev/null +++ b/browser.qml @@ -0,0 +1,36 @@ +import QtGui 1.0 + +Widget { + id: mainWidget + + VBoxLayout { + + HBoxLayout { + PushButton { + text: qsTr("<") + onClicked: webView.back() + } + + PushButton { + text: qsTr(">") + onClicked: webView.forward() + } + + LineEdit { + id: urlInput + } + + PushButton { + text: qsTr("Go") + onClicked: webView.url = urlInput.text + } + } + + WebView { + id: webView + + onTitleChanged: mainWidget.windowTitle = title + onUrlChanged: urlInput.text = url + } + } +} diff --git a/declarativeobjects.cpp b/declarativeobjects.cpp index 29cb0c9..551a4e8 100644 --- a/declarativeobjects.cpp +++ b/declarativeobjects.cpp @@ -1385,6 +1385,14 @@ void DeclarativeToolBar::addAction(QAction *action, AbstractDeclarativeObject *d CUSTOM_METAOBJECT(DeclarativeToolBar, QToolBar) +// DeclarativeWebView +DeclarativeWebView::DeclarativeWebView(QObject *parent) : DeclarativeWidgetProxy(parent) +{ + connectAllSignals(m_proxiedObject, this); +} + +CUSTOM_METAOBJECT(DeclarativeWebView, QWebView) + // DeclarativeWidget DeclarativeWidget::DeclarativeWidget(QObject *parent) : DeclarativeWidgetProxy(parent) { diff --git a/declarativeobjects_p.h b/declarativeobjects_p.h index 313ec1a..c1b228c 100644 --- a/declarativeobjects_p.h +++ b/declarativeobjects_p.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -809,6 +810,14 @@ class DeclarativeToolBar : public DeclarativeWidgetProxy virtual void addAction(QAction *action, AbstractDeclarativeObject *declarativeObject); }; +class DeclarativeWebView : public DeclarativeWidgetProxy +{ + DECLARATIVE_OBJECT + + public: + DeclarativeWebView(QObject *parent = 0); +}; + class DeclarativeWidget : public DeclarativeWidgetProxy { DECLARATIVE_OBJECT diff --git a/declarativewidgetdocument.cpp b/declarativewidgetdocument.cpp index bda2c43..dbbaffc 100644 --- a/declarativewidgetdocument.cpp +++ b/declarativewidgetdocument.cpp @@ -75,6 +75,7 @@ DeclarativeWidgetDocument::DeclarativeWidgetDocument(const QUrl &url, QObject *p qmlRegisterType("QtGui", 1, 0, "TextBrowser"); qmlRegisterType("QtGui", 1, 0, "TextEdit"); qmlRegisterType("QtGui", 1, 0, "ToolBar"); + qmlRegisterType("QtGui", 1, 0, "WebView"); qmlRegisterType("QtGui", 1, 0, "Widget"); d->m_component->loadUrl(d->m_url); diff --git a/declarativewidgets.pro b/declarativewidgets.pro index 7cfc422..fb5f4a4 100644 --- a/declarativewidgets.pro +++ b/declarativewidgets.pro @@ -21,7 +21,7 @@ SOURCES += \ objectadaptors.cpp \ qmetaobjectbuilder.cpp -QT += declarative +QT += declarative webkit OTHER_FILES += \ animation.qml \