diff --git a/examples/quick/demos/calqlatr/calqlatr.pro b/examples/quick/demos/calqlatr/calqlatr.pro
index 1b002a5f271da745fe0c7d1d3aa5b5745fab4b28..91d52a293e5de43db887c54cbbb94eb4ab7415e4 100644
--- a/examples/quick/demos/calqlatr/calqlatr.pro
+++ b/examples/quick/demos/calqlatr/calqlatr.pro
@@ -6,5 +6,24 @@ SOURCES += main.cpp
 RESOURCES += calqlatr.qrc \
     ../../shared/shared.qrc
 
+OTHER_FILES = calqlatr.qml \
+    content/Button.qml \
+    content/Display.qml \
+    content/NumberPad.qml \
+    content/StyleLabel.qml \
+    content/audio/touch.wav \
+    content/calculator.js \
+    content/images/icon-back.png \
+    content/images/icon-close.png \
+    content/images/icon-settings.png \
+    content/images/logo.png \
+    content/images/paper-edge-left.png \
+    content/images/paper-edge-right.png \
+    content/images/paper-grip.png \
+    content/images/settings-selected-a.png \
+    content/images/settings-selected-b.png \
+    content/images/touch-green.png \
+    content/images/touch-white.png
+
 target.path = $$[QT_INSTALL_EXAMPLES]/quick/demos/calqlatr
 INSTALLS += target
diff --git a/examples/quick/demos/calqlatr/calqlatr.qml b/examples/quick/demos/calqlatr/calqlatr.qml
index 16b2e197244dce005ebbc129e62d6759b5a2bc45..0a092c25daf819b5f68c0c461acf2fca8e53cefa 100644
--- a/examples/quick/demos/calqlatr/calqlatr.qml
+++ b/examples/quick/demos/calqlatr/calqlatr.qml
@@ -57,7 +57,7 @@ Rectangle {
 
     Item {
         id: pad
-        width: window.width * 0.58
+        width: 180
         NumberPad { y: 10; anchors.horizontalCenter: parent.horizontalCenter }
     }
 
@@ -77,7 +77,7 @@ Rectangle {
     Display {
         id: display
         x: -16
-        width: window.width * 0.42
+        width: window.width - pad.width
         height: parent.height
 
         MouseArea {
@@ -85,7 +85,12 @@ Rectangle {
             property real oldP: 0
             property bool rewind: false
 
-            anchors.fill: parent
+            anchors {
+                bottom: parent.bottom
+                left: parent.left
+                right: parent.right
+            }
+            height: 50
             onPositionChanged: {
                 var reverse = startX > window.width / 2
                 var mx = mapToItem(window, mouse.x).x
diff --git a/examples/quick/demos/calqlatr/content/Display.qml b/examples/quick/demos/calqlatr/content/Display.qml
index 4a78a3ebcd1d3a64e1b50e3daa00424f52ed0258..ec8edfea665447c7461b533df754adad3f48a69b 100644
--- a/examples/quick/demos/calqlatr/content/Display.qml
+++ b/examples/quick/demos/calqlatr/content/Display.qml
@@ -42,23 +42,38 @@ import QtQuick 2.0
 
 Item {
     id: display
+    property bool enteringDigits: false
 
     function displayOperator(operator)
     {
         listView.model.append({ "operator": operator, "operand": "" })
+        enteringDigits = true
     }
 
     function newLine(operator, operand)
     {
         listView.model.append({ "operator": operator, "operand": operand })
+        enteringDigits = false
+        listView.positionViewAtEnd()
     }
 
     function appendDigit(digit)
     {
-        if (!listView.model.count)
+        if (!enteringDigits)
             listView.model.append({ "operator": "", "operand": "" })
         var i = listView.model.count - 1;
         listView.model.get(i).operand = listView.model.get(i).operand + digit;
+        enteringDigits = true
+    }
+
+    function clear()
+    {
+        if (enteringDigits) {
+            var i = listView.model.count - 1
+            if (i >= 0)
+                listView.model.remove(i)
+            enteringDigits = false
+        }
     }
 
     Item {
@@ -87,6 +102,7 @@ Item {
         }
 
         Image {
+            id: grip
             source: "images/paper-grip.png"
             anchors.horizontalCenter: parent.horizontalCenter
             anchors.bottom: parent.bottom
@@ -97,7 +113,7 @@ Item {
             id: listView
             x: 16; y: 30
             width: display.width
-            height: display.height
+            height: display.height - 50 - y
             delegate: Item {
                 height: 20
                 width: parent.width
diff --git a/examples/quick/demos/calqlatr/content/NumberPad.qml b/examples/quick/demos/calqlatr/content/NumberPad.qml
index 3203e18431a86d544ffddf941d4b37741f0bc10b..c7f268065102a9fed3a3b063f705684744fa3fb5 100644
--- a/examples/quick/demos/calqlatr/content/NumberPad.qml
+++ b/examples/quick/demos/calqlatr/content/NumberPad.qml
@@ -60,7 +60,7 @@ Grid {
     Button { text: "±"; color: "#6da43d"; operator: true }
     Button { text: "−"; color: "#6da43d"; operator: true }
     Button { text: "+"; color: "#6da43d"; operator: true }
-    Button { text: " "; color: "#6da43d"; operator: true }
+    Button { text: "√"; color: "#6da43d"; operator: true }
     Button { text: "÷"; color: "#6da43d"; operator: true }
     Button { text: "×"; color: "#6da43d"; operator: true }
     Button { text: "C"; color: "#6da43d"; operator: true }
diff --git a/examples/quick/demos/calqlatr/content/calculator.js b/examples/quick/demos/calqlatr/content/calculator.js
index d86fecbf3943f7c95e29901c258f1fcef4cb5aee..da8e940b16b5d808761bc06d9bab54a9cfced485 100644
--- a/examples/quick/demos/calqlatr/content/calculator.js
+++ b/examples/quick/demos/calqlatr/content/calculator.js
@@ -84,7 +84,7 @@ function operatorPressed(op)
     } else if (previousOperator == "×") {
         digits = Number(curVal) * Number(digits.valueOf())
     } else if (previousOperator == "÷") {
-        digits = Number(Number(curVal) / Number(digits.valueOf())).toString()
+        digits = Number(curVal) / Number(digits.valueOf())
     } else if (previousOperator == "=") {
     }
 
@@ -110,9 +110,9 @@ function operatorPressed(op)
         digits = (Math.abs(digits.valueOf())).toString()
     } else if (op == "Int") {
         digits = (Math.floor(digits.valueOf())).toString()
-    } else if (op == window.plusminus) {
+    } else if (op == "±") {
         digits = (digits.valueOf() * -1).toString()
-    } else if (op == window.squareRoot) {
+    } else if (op == "√") {
         digits = (Math.sqrt(digits.valueOf())).toString()
     } else if (op == "mc") {
         memory = 0;
@@ -130,7 +130,7 @@ function operatorPressed(op)
     } else if (op == "Off") {
         Qt.quit();
     } else if (op == "C") {
-        digits = "0"
+        display.clear()
     } else if (op == "AC") {
         curVal = 0
         memory = 0