summaryrefslogtreecommitdiffstats
path: root/tests/QtWebKit/qmlplugin/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/QtWebKit/qmlplugin/main.py')
-rw-r--r--tests/QtWebKit/qmlplugin/main.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/QtWebKit/qmlplugin/main.py b/tests/QtWebKit/qmlplugin/main.py
new file mode 100644
index 0000000..62e83d3
--- /dev/null
+++ b/tests/QtWebKit/qmlplugin/main.py
@@ -0,0 +1,66 @@
+
+'''QML PLugin for WebKit.
+
+Adapted from QtLabs[1].
+
+Usage: python main.py index.html
+
+[1] http://blog.qtlabs.org.br/2011/05/30/transformando-o-qml-no-proximo-flash/
+'''
+import sys
+
+from PySide.QtCore import QUrl
+from PySide.QtGui import QApplication
+from PySide.QtDeclarative import QDeclarativeView
+from PySide.QtWebKit import QWebPluginFactory, QWebView, QWebSettings
+
+class PluginFactory(QWebPluginFactory):
+
+ def plugins(self):
+ plugins = []
+
+ mime = self.MimeType()
+ mime.name = 'QmlFile'
+ mime.fileExtensions = ['.qml']
+
+ plugin = self.Plugin()
+ plugin.name = 'QmlPlugin'
+ plugin.mimeTypes = [mime]
+
+ plugins.append(plugin)
+
+ return plugins
+
+ def create(self, mimeType, url, argumentNames, argumentValues):
+ if mimeType != 'application/x-qml':
+ return None
+
+ for name, value in zip(argumentNames, argumentValues):
+ if name == 'width':
+ width = int(value)
+ elif name == 'height':
+ height = int(value)
+
+ view = QDeclarativeView()
+ view.resize(width, height)
+ view.setSource(url)
+
+ return view
+
+def main():
+
+ app = QApplication([])
+
+ view = QWebView()
+ fac = PluginFactory()
+ view.page().setPluginFactory(fac)
+ QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
+
+ view.load(QUrl(sys.argv[1]))
+
+ view.resize(840, 600)
+ view.show()
+
+ return app.exec_()
+if __name__ == '__main__':
+ main()