diff options
author | Johanna Aijala <johanna.aijala@digia.com> | 2014-09-16 15:14:16 +0300 |
---|---|---|
committer | Topi Reiniö <topi.reinio@digia.com> | 2014-09-25 10:26:26 +0200 |
commit | da217ce941e1f4bde594cf97221f953b106cb15a (patch) | |
tree | 4aede517d3665b8e87685165c721e5b205a3002e /examples/quick/demos/calqlatr/content/calculator.js | |
parent | 6641214214213f079176b81e9a98d63cf21bfd3c (diff) |
Updated calqlatr demo
Fixes and finetuning of calqlatr demo:
- fixed text overlapping, changed max length of a number from 14 to 9
- fixed app "freeze" after entering number of maximum length
- implemented +/- operator functionality
- fixed listview scrolling, after multiple operations listview was
scrolling only when entering '=' leaving the active line hidden when
the numbers and operator were typed
- added support for entering numbers and certain operators from keyboard
- removed commented code
Task-number: QTBUG-38818
Change-Id: Ic0ecd2dff68a89007421e95a5bdc3ab7ca2e401d
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Diffstat (limited to 'examples/quick/demos/calqlatr/content/calculator.js')
-rw-r--r-- | examples/quick/demos/calqlatr/content/calculator.js | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/examples/quick/demos/calqlatr/content/calculator.js b/examples/quick/demos/calqlatr/content/calculator.js index da8e940b16..906cb9d3b7 100644 --- a/examples/quick/demos/calqlatr/content/calculator.js +++ b/examples/quick/demos/calqlatr/content/calculator.js @@ -59,7 +59,7 @@ function digitPressed(op) { if (disabled(op)) return - if (digits.toString().length >= 14) + if (digits.toString().length >= 8) return if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp == ".") ) { digits = digits + op.toString() @@ -80,7 +80,7 @@ function operatorPressed(op) if (previousOperator == "+") { digits = Number(digits.valueOf()) + Number(curVal.valueOf()) } else if (previousOperator == "−") { - digits = Number(curVal) - Number(digits.valueOf()) + digits = Number(curVal.valueOf()) - Number(digits.valueOf()) } else if (previousOperator == "×") { digits = Number(curVal) * Number(digits.valueOf()) } else if (previousOperator == "÷") { @@ -91,11 +91,15 @@ function operatorPressed(op) if (op == "+" || op == "−" || op == "×" || op == "÷") { previousOperator = op curVal = digits.valueOf() + digits = "" display.displayOperator(previousOperator) return } if (op == "=") { + if (digits.toString().length >= 9) + digits = digits.toExponential(2) + display.newLine("=", digits.toString()) } @@ -112,6 +116,8 @@ function operatorPressed(op) digits = (Math.floor(digits.valueOf())).toString() } else if (op == "±") { digits = (digits.valueOf() * -1).toString() + display.clear() + display.appendDigit(digits) } else if (op == "√") { digits = (Math.sqrt(digits.valueOf())).toString() } else if (op == "mc") { @@ -122,22 +128,23 @@ function operatorPressed(op) digits = memory.toString() } else if (op == "m-") { memory = digits.valueOf() - } else if (op == window.leftArrow) { + } else if (op == "backspace") { digits = digits.toString().slice(0, -1) - if (digits.length == 0) { - digits = "0" - } + display.clear() + display.appendDigit(digits) } else if (op == "Off") { Qt.quit(); } else if (op == "C") { display.clear() + curVal = 0 + memory = 0 + lastOp = "" + digits ="0" } else if (op == "AC") { curVal = 0 memory = 0 lastOp = "" digits ="0" } - - } |