Removed CONFIG+=parallel_test from suspected parallel-unsafe tests
[profile/ivi/qtdeclarative.git] / examples / demos / calculator / CalculatorCore / calculator.js
1
2 var curVal = 0
3 var memory = 0
4 var lastOp = ""
5 var timer = 0
6
7 function disabled(op) {
8     if (op == "." && display.text.toString().search(/\./) != -1) {
9         return true
10     } else if (op == window.squareRoot &&  display.text.toString().search(/-/) != -1) {
11         return true
12     } else {
13         return false
14     }
15 }
16
17 function doOperation(op) {
18     if (op == '*')//Keyboard Aliases
19         op = window.multiplication;
20     if (op == '/')
21         op = window.division;
22     if (disabled(op)) {
23         return
24     }
25
26     if (op.toString().length==1 && ((op >= "0" && op <= "9") || op==".") ) {
27         if (display.text.toString().length >= 14)
28             return; // No arbitrary length numbers
29         if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp == ".") ) {
30             display.text = display.text + op.toString()
31         } else {
32             display.text = op
33         }
34         lastOp = op
35         return
36     }
37     lastOp = op
38
39     if (display.currentOperation.text == "+") {
40         display.text = Number(display.text.valueOf()) + Number(curVal.valueOf())
41     } else if (display.currentOperation.text == "-") {
42         display.text = Number(curVal) - Number(display.text.valueOf())
43     } else if (display.currentOperation.text == window.multiplication) {
44         display.text = Number(curVal) * Number(display.text.valueOf())
45     } else if (display.currentOperation.text == window.division) {
46         display.text = Number(Number(curVal) / Number(display.text.valueOf())).toString()
47     } else if (display.currentOperation.text == "=") {
48     }
49
50     if (op == "+" || op == "-" || op == window.multiplication || op == window.division) {
51         display.currentOperation.text = op
52         curVal = display.text.valueOf()
53         return
54     }
55
56     curVal = 0
57     display.currentOperation.text = ""
58
59     if (op == "1/x") {
60         display.text = (1 / display.text.valueOf()).toString()
61     } else if (op == "x^2") {
62         display.text = (display.text.valueOf() * display.text.valueOf()).toString()
63     } else if (op == "Abs") {
64         display.text = (Math.abs(display.text.valueOf())).toString()
65     } else if (op == "Int") {
66         display.text = (Math.floor(display.text.valueOf())).toString()
67     } else if (op == window.plusminus) {
68         display.text = (display.text.valueOf() * -1).toString()
69     } else if (op == window.squareRoot) {
70         display.text = (Math.sqrt(display.text.valueOf())).toString()
71     } else if (op == "mc") {
72         memory = 0;
73     } else if (op == "m+") {
74         memory += display.text.valueOf()
75     } else if (op == "mr") {
76         display.text = memory.toString()
77     } else if (op == "m-") {
78         memory = display.text.valueOf()
79     } else if (op == window.leftArrow) {
80         display.text = display.text.toString().slice(0, -1)
81         if (display.text.length == 0) {
82             display.text = "0"
83         }
84     } else if (op == "Off") {
85         Qt.quit();
86     } else if (op == "C") {
87         display.text = "0"
88     } else if (op == "AC") {
89         curVal = 0
90         memory = 0
91         lastOp = ""
92         display.text ="0"
93     }
94 }
95