summaryrefslogtreecommitdiff
authoreric <eric>2003-04-15 07:42:19 (UTC)
committer eric <eric>2003-04-15 07:42:19 (UTC)
commite263613e83b64fa93b5f3c1b904715daf076cc78 (patch) (unidiff)
tree2c41969e72ec324cb60e0c34516b945832f89c10
parent99b059a9d6f16f1e30b0088d35deacf8b9384f28 (diff)
downloadopie-e263613e83b64fa93b5f3c1b904715daf076cc78.zip
opie-e263613e83b64fa93b5f3c1b904715daf076cc78.tar.gz
opie-e263613e83b64fa93b5f3c1b904715daf076cc78.tar.bz2
- Fix a bug with numbers between 0 and 1.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/euroconv/calcdisplay.cpp4
-rw-r--r--noncore/tools/euroconv/calckeypad.cpp13
2 files changed, 11 insertions, 6 deletions
diff --git a/noncore/tools/euroconv/calcdisplay.cpp b/noncore/tools/euroconv/calcdisplay.cpp
index 898de81..e5a49e6 100644
--- a/noncore/tools/euroconv/calcdisplay.cpp
+++ b/noncore/tools/euroconv/calcdisplay.cpp
@@ -1,248 +1,248 @@
1/**************************************************************************** 1/****************************************************************************
2 * 2 *
3 * File: calcdisplay.cpp 3 * File: calcdisplay.cpp
4 * 4 *
5 * Description: 5 * Description:
6 * 6 *
7 * 7 *
8 * Authors: Eric Santonacci <Eric.Santonacci@talc.fr> 8 * Authors: Eric Santonacci <Eric.Santonacci@talc.fr>
9 * 9 *
10 * Requirements: Qt 10 * Requirements: Qt
11 * 11 *
12 * $Id$ 12 * $Id$
13 * 13 *
14 ***************************************************************************/ 14 ***************************************************************************/
15 15
16#include <stdio.h> 16#include <stdio.h>
17#include <qvbox.h> 17#include <qvbox.h>
18#include <qpixmap.h> 18#include <qpixmap.h>
19 19
20#include "currency.h" 20#include "currency.h"
21#include "calcdisplay.h" 21#include "calcdisplay.h"
22 22
23 23
24LCDDisplay::LCDDisplay( QWidget *parent, const char *name ) 24LCDDisplay::LCDDisplay( QWidget *parent, const char *name )
25 : QHBox( parent, name ){ 25 : QHBox( parent, name ){
26 26
27 27
28 28
29this->setMargin(5); 29this->setMargin(5);
30this->setSpacing(5); 30this->setSpacing(5);
31 31
32// Create display 32// Create display
33QVBox *vbxlayout = new QVBox (this); 33QVBox *vbxlayout = new QVBox (this);
34 34
35/*************** Top LCD ***********************/ 35/*************** Top LCD ***********************/
36grpbxTop = new QHGroupBox(vbxlayout, "grpbxTop"); 36grpbxTop = new QHGroupBox(vbxlayout, "grpbxTop");
37grpbxStyle = grpbxTop->frameStyle(); 37grpbxStyle = grpbxTop->frameStyle();
38grpbxTop->setMaximumHeight(48); 38grpbxTop->setMaximumHeight(48);
39 39
40cbbxTop = new QComboBox(grpbxTop, "cbbxTop"); 40cbbxTop = new QComboBox(grpbxTop, "cbbxTop");
41cbbxTop->setMaximumWidth(50); 41cbbxTop->setMaximumWidth(50);
42cbbxTop->insertStrList(aCurrency); 42cbbxTop->insertStrList(aCurrency);
43 43
44lcdTop = new QLCDNumber(10, grpbxTop, "lcdTop"); 44lcdTop = new QLCDNumber(10, grpbxTop, "lcdTop");
45lcdTop->setMode( QLCDNumber::DEC ); 45lcdTop->setMode( QLCDNumber::DEC );
46lcdTop->setSmallDecimalPoint(true); 46lcdTop->setSmallDecimalPoint(false);
47lcdTop->setSegmentStyle(QLCDNumber::Flat); 47lcdTop->setSegmentStyle(QLCDNumber::Flat);
48 48
49/************** Bottom LCD ************************/ 49/************** Bottom LCD ************************/
50grpbxBottom = new QHGroupBox(vbxlayout, "grpbxBottom"); 50grpbxBottom = new QHGroupBox(vbxlayout, "grpbxBottom");
51grpbxBottom->setMaximumHeight(46); 51grpbxBottom->setMaximumHeight(46);
52grpbxBottom->setFrameStyle(0); 52grpbxBottom->setFrameStyle(0);
53grpbxBottom->setFrameShadow(QFrame::MShadow); 53grpbxBottom->setFrameShadow(QFrame::MShadow);
54 54
55cbbxBottom = new QComboBox(grpbxBottom, "cbbxBottom"); 55cbbxBottom = new QComboBox(grpbxBottom, "cbbxBottom");
56cbbxBottom->setMaximumWidth(50); 56cbbxBottom->setMaximumWidth(50);
57cbbxBottom->insertStrList(aCurrency); 57cbbxBottom->insertStrList(aCurrency);
58 58
59lcdBottom = new QLCDNumber(10, grpbxBottom, "lcdBottom"); 59lcdBottom = new QLCDNumber(10, grpbxBottom, "lcdBottom");
60lcdBottom->setMode( QLCDNumber::DEC ); 60lcdBottom->setMode( QLCDNumber::DEC );
61lcdBottom->setSmallDecimalPoint(true); 61lcdBottom->setSmallDecimalPoint(false);
62lcdBottom->setSegmentStyle(QLCDNumber::Flat); 62lcdBottom->setSegmentStyle(QLCDNumber::Flat);
63 63
64// set combo box signals 64// set combo box signals
65connect(cbbxTop, SIGNAL(activated(int)), this, SLOT(cbbxChange())); 65connect(cbbxTop, SIGNAL(activated(int)), this, SLOT(cbbxChange()));
66connect(cbbxBottom, SIGNAL(activated(int)), this, SLOT(cbbxChange())); 66connect(cbbxBottom, SIGNAL(activated(int)), this, SLOT(cbbxChange()));
67 67
68btnSwap = new QPushButton(this, "swap"); 68btnSwap = new QPushButton(this, "swap");
69QPixmap imgSwap((const char**) swap_xpm); 69QPixmap imgSwap((const char**) swap_xpm);
70btnSwap->setPixmap(imgSwap); 70btnSwap->setPixmap(imgSwap);
71btnSwap->setFixedSize(20,40); 71btnSwap->setFixedSize(20,40);
72// set signal 72// set signal
73connect(btnSwap, SIGNAL(clicked()), this, SLOT(swapLCD())); 73connect(btnSwap, SIGNAL(clicked()), this, SLOT(swapLCD()));
74 74
75// set default LCD to top 75// set default LCD to top
76iCurrentLCD = 0; 76iCurrentLCD = 0;
77 77
78} 78}
79 79
80/*********************************************************************** 80/***********************************************************************
81 * SLOT: Display value in the correct LCD 81 * SLOT: Display value in the correct LCD
82 **********************************************************************/ 82 **********************************************************************/
83void LCDDisplay::setValue(double dSrcValue){ 83void LCDDisplay::setValue(double dSrcValue){
84 84
85double dDstValue=0; 85double dDstValue=0;
86 86
87int iSrcIndex; 87int iSrcIndex;
88int iDstIndex; 88int iDstIndex;
89 89
90 90
91// get item index of the focused 91// get item index of the focused
92if(!iCurrentLCD){ 92if(!iCurrentLCD){
93 iSrcIndex = cbbxTop->currentItem(); 93 iSrcIndex = cbbxTop->currentItem();
94 iDstIndex = cbbxBottom->currentItem(); 94 iDstIndex = cbbxBottom->currentItem();
95}else{ 95}else{
96 iSrcIndex = cbbxBottom->currentItem(); 96 iSrcIndex = cbbxBottom->currentItem();
97 iDstIndex = cbbxTop->currentItem(); 97 iDstIndex = cbbxTop->currentItem();
98} 98}
99 99
100if(iSrcIndex == iDstIndex) 100if(iSrcIndex == iDstIndex)
101 dDstValue = dSrcValue; 101 dDstValue = dSrcValue;
102else{ 102else{
103 if(iSrcIndex){ 103 if(iSrcIndex){
104 // we are NOT in Euro as iDstIndex <> 0 104 // we are NOT in Euro as iDstIndex <> 0
105 // Convert to Euro 105 // Convert to Euro
106 dDstValue = x2Euro(iSrcIndex, dSrcValue); 106 dDstValue = x2Euro(iSrcIndex, dSrcValue);
107 dDstValue = Euro2x(iDstIndex, dDstValue); 107 dDstValue = Euro2x(iDstIndex, dDstValue);
108 }else 108 }else
109 // We are in Euro 109 // We are in Euro
110 dDstValue = Euro2x(iDstIndex, dSrcValue); 110 dDstValue = Euro2x(iDstIndex, dSrcValue);
111} 111}
112 112
113 113
114if(!iCurrentLCD){ 114if(!iCurrentLCD){
115 lcdTop->display(dSrcValue); 115 lcdTop->display(dSrcValue);
116 lcdBottom->display(dDstValue); 116 lcdBottom->display(dDstValue);
117}else{ 117}else{
118 lcdBottom->display(dSrcValue); 118 lcdBottom->display(dSrcValue);
119 lcdTop->display(dDstValue); 119 lcdTop->display(dDstValue);
120} 120}
121 121
122} 122}
123 123
124/*********************************************************************** 124/***********************************************************************
125 * SLOT: Swap output keypad between LCD displays 125 * SLOT: Swap output keypad between LCD displays
126 **********************************************************************/ 126 **********************************************************************/
127void LCDDisplay::swapLCD(void){ 127void LCDDisplay::swapLCD(void){
128 128
129double dCurrentValue; 129double dCurrentValue;
130 130
131// get current value 131// get current value
132if(!iCurrentLCD){ 132if(!iCurrentLCD){
133 // iCurrentLCD = 0, lcdTop has current focus and is going to loose 133 // iCurrentLCD = 0, lcdTop has current focus and is going to loose
134 // it 134 // it
135 dCurrentValue = lcdTop->value(); 135 dCurrentValue = lcdTop->value();
136 iCurrentLCD = 1; 136 iCurrentLCD = 1;
137 grpbxTop->setFrameStyle(0); 137 grpbxTop->setFrameStyle(0);
138 grpbxBottom->setFrameStyle(grpbxStyle); 138 grpbxBottom->setFrameStyle(grpbxStyle);
139}else{ 139}else{
140 dCurrentValue = lcdBottom->value(); 140 dCurrentValue = lcdBottom->value();
141 iCurrentLCD = 0; 141 iCurrentLCD = 0;
142 grpbxTop->setFrameStyle(grpbxStyle); 142 grpbxTop->setFrameStyle(grpbxStyle);
143 grpbxBottom->setFrameStyle(0); 143 grpbxBottom->setFrameStyle(0);
144} 144}
145 145
146setValue(dCurrentValue); 146setValue(dCurrentValue);
147} 147}
148 148
149/*********************************************************************** 149/***********************************************************************
150 * SLOT: Currency change 150 * SLOT: Currency change
151 **********************************************************************/ 151 **********************************************************************/
152void LCDDisplay::cbbxChange(void){ 152void LCDDisplay::cbbxChange(void){
153 153
154double dCurrentValue; 154double dCurrentValue;
155 155
156// get current value 156// get current value
157if(!iCurrentLCD){ 157if(!iCurrentLCD){
158 dCurrentValue = lcdTop->value(); 158 dCurrentValue = lcdTop->value();
159}else{ 159}else{
160 dCurrentValue = lcdBottom->value(); 160 dCurrentValue = lcdBottom->value();
161} 161}
162 162
163setValue(dCurrentValue); 163setValue(dCurrentValue);
164} 164}
165 165
166 166
167/*********************************************************************** 167/***********************************************************************
168 * Euro2x converts dValue from Euro to the currency which combo box 168 * Euro2x converts dValue from Euro to the currency which combo box
169 * index is provided in iIndex. 169 * index is provided in iIndex.
170 **********************************************************************/ 170 **********************************************************************/
171double LCDDisplay::Euro2x(int iIndex, double dValue){ 171double LCDDisplay::Euro2x(int iIndex, double dValue){
172 172
173switch (iIndex){ 173switch (iIndex){
174 case 0: // Euro 174 case 0: // Euro
175 return(dValue); 175 return(dValue);
176 break; 176 break;
177 177
178 case 1: // FF: French Francs 178 case 1: // FF: French Francs
179 return(dValue*FRF); 179 return(dValue*FRF);
180 break; 180 break;
181 181
182 case 2: // DM: Deutch Mark 182 case 2: // DM: Deutch Mark
183 return(dValue*DEM); 183 return(dValue*DEM);
184 break; 184 break;
185 185
186 case 3: // BEL Belgium Francs 186 case 3: // BEL Belgium Francs
187 return(dValue*BEF); 187 return(dValue*BEF);
188 break; 188 break;
189 189
190 case 4: // ITL Itialian Lire 190 case 4: // ITL Itialian Lire
191 return(dValue*ITL); 191 return(dValue*ITL);
192 break; 192 break;
193 193
194 case 5: // LUF Luxemburg 194 case 5: // LUF Luxemburg
195 return(dValue*LUF); 195 return(dValue*LUF);
196 break; 196 break;
197 197
198 case 6: // IEP Irish Pound 198 case 6: // IEP Irish Pound
199 return(dValue*IEP); 199 return(dValue*IEP);
200 break; 200 break;
201 201
202 default: 202 default:
203 return 0; 203 return 0;
204}//switch (iIndex) 204}//switch (iIndex)
205}// fct Eur2x 205}// fct Eur2x
206 206
207 207
208 208
209/*********************************************************************** 209/***********************************************************************
210 * x2Euro converts dValue to Euro from the currency which combo box 210 * x2Euro converts dValue to Euro from the currency which combo box
211 * index is provided in iIndex. 211 * index is provided in iIndex.
212 **********************************************************************/ 212 **********************************************************************/
213double LCDDisplay::x2Euro(int iIndex, double dValue){ 213double LCDDisplay::x2Euro(int iIndex, double dValue){
214 214
215switch (iIndex){ 215switch (iIndex){
216 case 0: // Euro 216 case 0: // Euro
217 return(dValue); 217 return(dValue);
218 break; 218 break;
219 219
220 case 1: // FF: French Francs 220 case 1: // FF: French Francs
221 return(dValue/FRF); 221 return(dValue/FRF);
222 break; 222 break;
223 223
224 case 2: // DM: Deutch Mark 224 case 2: // DM: Deutch Mark
225 return(dValue/DEM); 225 return(dValue/DEM);
226 break; 226 break;
227 227
228 case 3: // BEL Belgium Francs 228 case 3: // BEL Belgium Francs
229 return(dValue/BEF); 229 return(dValue/BEF);
230 break; 230 break;
231 231
232 case 4: // ITL Itialian Lire 232 case 4: // ITL Itialian Lire
233 return(dValue/ITL); 233 return(dValue/ITL);
234 break; 234 break;
235 235
236 case 5: // LUF Luxemburg 236 case 5: // LUF Luxemburg
237 return(dValue/LUF); 237 return(dValue/LUF);
238 break; 238 break;
239 239
240 case 6: // IEP Irish Pound 240 case 6: // IEP Irish Pound
241 return(dValue/IEP); 241 return(dValue/IEP);
242 break; 242 break;
243}//switch (iIndex) 243}//switch (iIndex)
244 244
245// we shouldn't come here 245// we shouldn't come here
246return 0; 246return 0;
247 247
248}// fct x2Euro 248}// fct x2Euro
diff --git a/noncore/tools/euroconv/calckeypad.cpp b/noncore/tools/euroconv/calckeypad.cpp
index 1678095..e4898a3 100644
--- a/noncore/tools/euroconv/calckeypad.cpp
+++ b/noncore/tools/euroconv/calckeypad.cpp
@@ -1,214 +1,219 @@
1/**************************************************************************** 1/****************************************************************************
2 * 2 *
3 * File: calckeypad.cpp 3 * File: calckeypad.cpp
4 * 4 *
5 * Description: 5 * Description:
6 * 6 *
7 * 7 *
8 * Authors: Eric Santonacci <Eric.Santonacci@talc.fr> 8 * Authors: Eric Santonacci <Eric.Santonacci@talc.fr>
9 * 9 *
10 * Requirements: Qt 10 * Requirements: Qt
11 * 11 *
12 * $Id$ 12 * $Id$
13 * 13 *
14 ***************************************************************************/ 14 ***************************************************************************/
15 15
16#include <qmessagebox.h> 16#include <qmessagebox.h>
17 17
18#include "calckeypad.h" 18#include "calckeypad.h"
19 19
20 20
21KeyPad::KeyPad(LCDDisplay *lcd, QWidget *parent, const char *name ) 21KeyPad::KeyPad(LCDDisplay *lcd, QWidget *parent, const char *name )
22 : QGrid(5, parent, name){ 22 : QGrid(5, parent, name){
23 23
24int i; 24int i;
25QButton *btnButton; 25QButton *btnButton;
26 26
27// save lcd at init 27// save lcd at init
28display = lcd; 28display = lcd;
29// Init variable 29// Init variable
30dCurrent = 0; 30dCurrent = 0;
31iLenCurrent = 1; 31iLenCurrent = 1;
32bIsDec = false; 32bIsDec = false;
33dDecCurrent = 0; 33dDecCurrent = 0;
34iPreviousOperator = 0; 34iPreviousOperator = 0;
35dPreviousValue = 0; 35dPreviousValue = 0;
36 36
37// First line 37// First line
38btnClear = new QPushButton("CE/C", this, "Clear"); 38btnClear = new QPushButton("CE/C", this, "Clear");
39btn7 = new QPushButton("7", this, "7"); 39btn7 = new QPushButton("7", this, "7");
40btn8 = new QPushButton("8", this, "8"); 40btn8 = new QPushButton("8", this, "8");
41btn9 = new QPushButton("9", this, "9"); 41btn9 = new QPushButton("9", this, "9");
42btnPlus = new QPushButton("+", this, "+"); 42btnPlus = new QPushButton("+", this, "+");
43// 2nd line 43// 2nd line
44btnPercent = new QPushButton("%", this, "percent"); 44btnPercent = new QPushButton("%", this, "percent");
45btn4 = new QPushButton("4", this, "4"); 45btn4 = new QPushButton("4", this, "4");
46btn5 = new QPushButton("5", this, "5"); 46btn5 = new QPushButton("5", this, "5");
47btn6 = new QPushButton("6", this, "6"); 47btn6 = new QPushButton("6", this, "6");
48btnMinus = new QPushButton("-", this, "-"); 48btnMinus = new QPushButton("-", this, "-");
49// 3rd line 49// 3rd line
50btnF1 = new QPushButton("",this, "F1"); 50btnF1 = new QPushButton("",this, "F1");
51btn1 = new QPushButton("1", this, "1"); 51btn1 = new QPushButton("1", this, "1");
52btn2 = new QPushButton("2", this, "2"); 52btn2 = new QPushButton("2", this, "2");
53btn3 = new QPushButton("3", this, "3"); 53btn3 = new QPushButton("3", this, "3");
54btnMultiply = new QPushButton("X", this, "X"); 54btnMultiply = new QPushButton("X", this, "X");
55// 4th line 55// 4th line
56btnAbout = new QPushButton("?", this, "About"); 56btnAbout = new QPushButton("?", this, "About");
57btn0 = new QPushButton("0", this, "0"); 57btn0 = new QPushButton("0", this, "0");
58btnDot = new QPushButton(".", this, "dot"); 58btnDot = new QPushButton(".", this, "dot");
59btnEqual = new QPushButton("=", this, "equal"); 59btnEqual = new QPushButton("=", this, "equal");
60btnDivide = new QPushButton("/", this, "divide"); 60btnDivide = new QPushButton("/", this, "divide");
61 61
62// Digit key 62// Digit key
63grpbtnDigits = new QButtonGroup(0, "digits"); 63grpbtnDigits = new QButtonGroup(0, "digits");
64grpbtnDigits->insert(btn0, 0); 64grpbtnDigits->insert(btn0, 0);
65grpbtnDigits->insert(btn1, 1); 65grpbtnDigits->insert(btn1, 1);
66grpbtnDigits->insert(btn2, 2); 66grpbtnDigits->insert(btn2, 2);
67grpbtnDigits->insert(btn3, 3); 67grpbtnDigits->insert(btn3, 3);
68grpbtnDigits->insert(btn4, 4); 68grpbtnDigits->insert(btn4, 4);
69grpbtnDigits->insert(btn5, 5); 69grpbtnDigits->insert(btn5, 5);
70grpbtnDigits->insert(btn6, 6); 70grpbtnDigits->insert(btn6, 6);
71grpbtnDigits->insert(btn7, 7); 71grpbtnDigits->insert(btn7, 7);
72grpbtnDigits->insert(btn8, 8); 72grpbtnDigits->insert(btn8, 8);
73grpbtnDigits->insert(btn9, 9); 73grpbtnDigits->insert(btn9, 9);
74 74
75// set appearance of buttons 75// set appearance of buttons
76for(i=0; i<10; i++){ 76for(i=0; i<10; i++){
77 btnButton = grpbtnDigits->find(i); 77 btnButton = grpbtnDigits->find(i);
78 btnButton->setFixedSize(30,30); 78 btnButton->setFixedSize(30,30);
79} 79}
80 80
81// Operator key 81// Operator key
82grpbtnOperators = new QButtonGroup(0, "operator"); 82grpbtnOperators = new QButtonGroup(0, "operator");
83grpbtnOperators->insert(btnPlus, 1); 83grpbtnOperators->insert(btnPlus, 1);
84grpbtnOperators->insert(btnMinus,2); 84grpbtnOperators->insert(btnMinus,2);
85grpbtnOperators->insert(btnMultiply,3); 85grpbtnOperators->insert(btnMultiply,3);
86grpbtnOperators->insert(btnDivide,4); 86grpbtnOperators->insert(btnDivide,4);
87grpbtnOperators->insert(btnEqual,5); 87grpbtnOperators->insert(btnEqual,5);
88// set appearance of buttons 88// set appearance of buttons
89for(i=1; i<6; i++){ 89for(i=1; i<6; i++){
90 btnButton = grpbtnOperators->find(i); 90 btnButton = grpbtnOperators->find(i);
91 btnButton->setFixedSize(30,30); 91 btnButton->setFixedSize(30,30);
92} 92}
93btnClear->setFixedSize(30,30); 93btnClear->setFixedSize(30,30);
94btnClear->setPalette(QPalette( QColor(255, 99, 71) ) ); 94btnClear->setPalette(QPalette( QColor(255, 99, 71) ) );
95btnDot->setFixedSize(30,30); 95btnDot->setFixedSize(30,30);
96btnPercent->setFixedSize(30,30); 96btnPercent->setFixedSize(30,30);
97btnF1->setFixedSize(30,30); 97btnF1->setFixedSize(30,30);
98btnAbout->setFixedSize(30,30); 98btnAbout->setFixedSize(30,30);
99 99
100 100
101// SIGNALS AND SLOTS 101// SIGNALS AND SLOTS
102connect(grpbtnDigits, SIGNAL(clicked(int) ), this, SLOT(enterDigits(int))); 102connect(grpbtnDigits, SIGNAL(clicked(int) ), this, SLOT(enterDigits(int)));
103connect(grpbtnOperators, SIGNAL(clicked(int)), this, SLOT(operatorPressed(int))); 103connect(grpbtnOperators, SIGNAL(clicked(int)), this, SLOT(operatorPressed(int)));
104connect(btnClear, SIGNAL(clicked()), this, SLOT(clearLCD())); 104connect(btnClear, SIGNAL(clicked()), this, SLOT(clearLCD()));
105connect(btnAbout, SIGNAL(clicked()), this, SLOT(aboutDialog())); 105connect(btnAbout, SIGNAL(clicked()), this, SLOT(aboutDialog()));
106connect(btnDot, SIGNAL(clicked()), this, SLOT(gotoDec())); 106connect(btnDot, SIGNAL(clicked()), this, SLOT(gotoDec()));
107} 107}
108 108
109 109
110/*********************************************************************** 110/***********************************************************************
111 * SLOT: enterDigits calculates the value to display and display it. 111 * SLOT: enterDigits calculates the value to display and display it.
112 **********************************************************************/ 112 **********************************************************************/
113void KeyPad::enterDigits(int i){ 113void KeyPad::enterDigits(int i){
114 114
115if(!dCurrent) 115if(!dCurrent)
116 dCurrent = i; 116 if(bIsDec) {
117 dCurrent = i*dDecCurrent;
118 dDecCurrent /= 10;
119 }
120 else
121 dCurrent = i;
117else if(iLenCurrent > 9) 122else if(iLenCurrent > 9)
118 return; 123 return;
119else if(!bIsDec){ 124else if(!bIsDec){
120 dCurrent *= 10; 125 dCurrent *= 10;
121 dCurrent += i; 126 dCurrent += i;
122 iLenCurrent++; 127 iLenCurrent++;
123}else{ 128}else{
124 dCurrent += i*dDecCurrent; 129 dCurrent += i*dDecCurrent;
125 dDecCurrent /= 10; 130 dDecCurrent /= 10;
126} 131}
127 132
128display->setValue(dCurrent); 133display->setValue(dCurrent);
129} 134}
130 135
131/*********************************************************************** 136/***********************************************************************
132 * SLOT: Operator has been pressed 137 * SLOT: Operator has been pressed
133 **********************************************************************/ 138 **********************************************************************/
134void KeyPad::operatorPressed(int i){ 139void KeyPad::operatorPressed(int i){
135 140
136if(iPreviousOperator){ 141if(iPreviousOperator){
137 switch(iPreviousOperator){ 142 switch(iPreviousOperator){
138 case 1: // Plus + 143 case 1: // Plus +
139 dCurrent += dPreviousValue; 144 dCurrent += dPreviousValue;
140 break; 145 break;
141 146
142 case 2: // Minus - 147 case 2: // Minus -
143 dCurrent = dPreviousValue - dCurrent; 148 dCurrent = dPreviousValue - dCurrent;
144 break; 149 break;
145 150
146 case 3: // Multiply * 151 case 3: // Multiply *
147 dCurrent *= dPreviousValue; 152 dCurrent *= dPreviousValue;
148 break; 153 break;
149 154
150 case 4: // Divide / 155 case 4: // Divide /
151 dCurrent = dPreviousValue / dCurrent; 156 dCurrent = dPreviousValue / dCurrent;
152 break; 157 break;
153 158
154 } 159 }
155 display->setValue(dCurrent); 160 display->setValue(dCurrent);
156} 161}
157 162
158if(i==5){ 163if(i==5){
159 // ensure we won't be able to enter more digits 164 // ensure we won't be able to enter more digits
160 iLenCurrent = 100; 165 iLenCurrent = 100;
161 iPreviousOperator = 0; 166 iPreviousOperator = 0;
162 dPreviousValue = 0; 167 dPreviousValue = 0;
163}else{ 168}else{
164 dPreviousValue = dCurrent; 169 dPreviousValue = dCurrent;
165 iPreviousOperator = i; 170 iPreviousOperator = i;
166 171
167 // reset LCD for next digit 172 // reset LCD for next digit
168 dCurrent = 0; 173 dCurrent = 0;
169 iLenCurrent = 1; 174 iLenCurrent = 1;
170 bIsDec = false; 175 bIsDec = false;
171 dDecCurrent = 0; 176 dDecCurrent = 0;
172} 177}
173} 178}
174/*********************************************************************** 179/***********************************************************************
175 * SLOT: clearLCD CE/C has been pressed 180 * SLOT: clearLCD CE/C has been pressed
176 **********************************************************************/ 181 **********************************************************************/
177void KeyPad::clearLCD(void){ 182void KeyPad::clearLCD(void){
178 183
179dCurrent = 0; 184dCurrent = 0;
180iLenCurrent = 1; 185iLenCurrent = 1;
181bIsDec = false; 186bIsDec = false;
182dDecCurrent = 0; 187dDecCurrent = 0;
183iPreviousOperator = 0; 188iPreviousOperator = 0;
184dPreviousValue = 0; 189dPreviousValue = 0;
185display->setValue(0); 190display->setValue(0);
186} 191}
187 192
188/*********************************************************************** 193/***********************************************************************
189 * SLOT: gotoDec Dot has been pressed 194 * SLOT: gotoDec Dot has been pressed
190 **********************************************************************/ 195 **********************************************************************/
191void KeyPad::gotoDec(void){ 196void KeyPad::gotoDec(void){
192 197
193bIsDec = true; 198 bIsDec = true;
194dDecCurrent = 0.1; 199 dDecCurrent = 0.1;
195} 200}
196 201
197 202
198 203
199/*********************************************************************** 204/***********************************************************************
200 * SLOT: Display About Dialog... 205 * SLOT: Display About Dialog...
201 **********************************************************************/ 206 **********************************************************************/
202void KeyPad::aboutDialog(void){ 207void KeyPad::aboutDialog(void){
203 208
204QMessageBox::about( this, "About Euroconv", 209QMessageBox::about( this, "About Euroconv",
205 "Euroconv is an Euro converter\n\n" 210 "Euroconv is an Euro converter\n\n"
206 "Copyright 2003 TALC Informatique.\n" 211 "Copyright 2003 TALC Informatique.\n"
207 "Under GPL license\n\n" 212 "Under GPL license\n\n"
208 "Written by Eric Santonacci for Opie\n" 213 "Written by Eric Santonacci for Opie\n"
209 "http://opie.handhelds.org\n\n" 214 "http://opie.handhelds.org\n\n"
210 "Version 0.4\n\n" 215 "Version 0.5\n\n"
211 "Any comment or feedback to:\n" 216 "Any comment or feedback to:\n"
212 "Eric.Santonacci@talc.fr\n"); 217 "Eric.Santonacci@talc.fr\n");
213 218
214} 219}