Skip to content

Commit 0bc2d98

Browse files
committed
Make it actually work
1 parent aac594d commit 0bc2d98

File tree

5 files changed

+52
-1
lines changed

5 files changed

+52
-1
lines changed

index.html

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ <h2 id="project_tagline">A QML engine in a web browser.</h2>
4747
</div>
4848

4949
<div id="result">
50+
<iframe src="runner/runner.html" />
5051
</div>
5152

5253
<footer id="footer">

main.js

+18
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,22 @@ window.addEventListener("DOMContentLoaded", function () {
33
var editor = CodeMirror.fromTextArea(textarea, {
44
lineNumbers: true
55
});
6+
7+
var iframe = document.querySelector("#result iframe");
8+
iframe.addEventListener("load", function () {
9+
iframe.contentWindow.postMessage(textarea.value, "*");
10+
});
11+
12+
var execute = function() {
13+
iframe.src = iframe.src;
14+
};
15+
16+
textarea.addEventListener("change", execute);
17+
18+
editor.on("change", function() {
19+
textarea.value = editor.getValue();
20+
execute();
21+
});
22+
23+
execute();
624
});

runner/runner.html

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<script defer src="../node_modules/qmlweb/lib/qt.min.js"></script>
6+
<script defer src="../node_modules/qmlweb/lib/qmlweb.parser.min.js"></script>
7+
<script defer src="runner.js"></script>
8+
<title>QmlWeb Runner</title>
9+
</head>
10+
<body style="margin: 0">
11+
</body>
12+
</html>

runner/runner.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
(function() {
2+
var QMLEngine = window.QmlWeb ? QmlWeb.QMLEngine : window.QMLEngine;
3+
4+
window.addEventListener("message", function (message) {
5+
var qmlEngine = new QMLEngine();
6+
qmlEngine.loadQML(message.data);
7+
qmlEngine.start();
8+
});
9+
})();

stylesheets/styles.css

+12-1
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,23 @@ body {
3939
display: none;
4040
}
4141

42-
textarea {
42+
textarea, iframe {
4343
box-sizing: border-box;
4444
margin: 0;
4545
display: block;
4646
}
47+
iframe {
48+
border: 0px none;
49+
}
50+
#result, #result > iframe,
4751
#code, #code .CodeMirror, #code > textarea {
4852
width: 50vw;
4953
height: calc(100vh - 120px);
5054
}
55+
56+
/* Alternate: enable flex */
57+
#result {
58+
position: absolute;
59+
bottom: 0;
60+
right: 0;
61+
}

0 commit comments

Comments
 (0)