History

add option to add javascript objects to a DataWebDialog

Stephen Birarda committed 12 years ago

Commit e09eef91 parent a66b6e73 files · +25 −3Browse files

Showing the changes to interface/src/ui/DataWebDialog.cpp (1 of 3 files). Show all

Unified · Split

interface/src/ui/DataWebDialog.cpp+13−1
@@ -9,6 +9,7 @@ · 8 unmodified lines
99 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
1010 //
1111
12+#include <qwebframe.h>
1213 #include <qwebview.h>
1314
1415 #include <AccountManager.h>
@@ -33,9 +34,14 @@ DataWebDialog::DataWebDialog() { · 18 unmodified lines
3334 connect(this, &QWebView::linkClicked, Application::getInstance(), &Application::openUrl);
3435 }
3536
36−DataWebDialog* DataWebDialog::dialogForPath(const QString& path) {
37+DataWebDialog* DataWebDialog::dialogForPath(const QString& path,
38+ const JavascriptObjectMap& javascriptObjects) {
3739 DataWebDialog* dialogWebView = new DataWebDialog();
3840
41+ dialogWebView->_javascriptObjects = javascriptObjects;
42+ connect(dialogWebView->page()->mainFrame(), &QWebFrame::javaScriptWindowObjectCleared,
43+ dialogWebView, &DataWebDialog::addJavascriptObjectsToWindow);
44+
3945 QUrl dataWebUrl(DEFAULT_NODE_AUTH_URL);
4046 dataWebUrl.setPath(path);
4147
@@ -44,4 +50,10 @@ DataWebDialog* DataWebDialog::dialogForPath(const QString& path) { · 2 unmodified lines
4450 dialogWebView->load(dataWebUrl);
4551
4652 return dialogWebView;
53+}
54+
55+void DataWebDialog::addJavascriptObjectsToWindow() {
56+ foreach(const QString& name, _javascriptObjects.keys()) {
57+ page()->mainFrame()->addToJavaScriptWindowObject(name, _javascriptObjects[name]);
58+ }
4759 }