Add support for WebView
authorTobias Koenig <tobias.koenig@kdab.com>
Sun, 28 Oct 2012 07:38:38 +0000 (08:38 +0100)
committerTobias Koenig <tobias.koenig@kdab.com>
Sun, 28 Oct 2012 07:38:38 +0000 (08:38 +0100)
or how to create your webbrowser with 36 loc... it's just awesome!!! :)

browser.qml [new file with mode: 0644]
declarativeobjects.cpp
declarativeobjects_p.h
declarativewidgetdocument.cpp
declarativewidgets.pro

diff --git a/browser.qml b/browser.qml
new file mode 100644 (file)
index 0000000..8b8b21e
--- /dev/null
@@ -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
+    }
+  }
+}
index 29cb0c9..551a4e8 100644 (file)
@@ -1385,6 +1385,14 @@ void DeclarativeToolBar::addAction(QAction *action, AbstractDeclarativeObject *d
 
 CUSTOM_METAOBJECT(DeclarativeToolBar, QToolBar)
 
+// DeclarativeWebView
+DeclarativeWebView::DeclarativeWebView(QObject *parent) : DeclarativeWidgetProxy<QWebView>(parent)
+{
+  connectAllSignals(m_proxiedObject, this);
+}
+
+CUSTOM_METAOBJECT(DeclarativeWebView, QWebView)
+
 // DeclarativeWidget
 DeclarativeWidget::DeclarativeWidget(QObject *parent) : DeclarativeWidgetProxy<QWidget>(parent)
 {
index 313ec1a..c1b228c 100644 (file)
@@ -29,6 +29,7 @@
 #include <QtGui/QTextBrowser>
 #include <QtGui/QToolBar>
 #include <QtGui/QVBoxLayout>
+#include <QtWebKit/QWebView>
 #include <QtDeclarative/QDeclarativeListProperty>
 #include <QtDeclarative/qdeclarativeinfo.h>
 #include <qdeclarative.h>
@@ -809,6 +810,14 @@ class DeclarativeToolBar : public DeclarativeWidgetProxy<QToolBar>
     virtual void addAction(QAction *action, AbstractDeclarativeObject *declarativeObject);
 };
 
+class DeclarativeWebView : public DeclarativeWidgetProxy<QWebView>
+{
+  DECLARATIVE_OBJECT
+
+  public:
+    DeclarativeWebView(QObject *parent = 0);
+};
+
 class DeclarativeWidget : public DeclarativeWidgetProxy<QWidget>
 {
   DECLARATIVE_OBJECT
index bda2c43..dbbaffc 100644 (file)
@@ -75,6 +75,7 @@ DeclarativeWidgetDocument::DeclarativeWidgetDocument(const QUrl &url, QObject *p
   qmlRegisterType<DeclarativeTextBrowser>("QtGui", 1, 0, "TextBrowser");
   qmlRegisterType<DeclarativeTextEdit>("QtGui", 1, 0, "TextEdit");
   qmlRegisterType<DeclarativeToolBar>("QtGui", 1, 0, "ToolBar");
+  qmlRegisterType<DeclarativeWebView>("QtGui", 1, 0, "WebView");
   qmlRegisterType<DeclarativeWidget>("QtGui", 1, 0, "Widget");
 
   d->m_component->loadUrl(d->m_url);
index 7cfc422..fb5f4a4 100644 (file)
@@ -21,7 +21,7 @@ SOURCES += \
     objectadaptors.cpp \
     qmetaobjectbuilder.cpp
 
-QT += declarative
+QT += declarative webkit
 
 OTHER_FILES += \
     animation.qml \