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