summaryrefslogtreecommitdiff
authoreric <eric>2003-02-21 10:39:29 (UTC)
committer eric <eric>2003-02-21 10:39:29 (UTC)
commit2d77abb5ff37abf61e04657431d7e0e1f5138d94 (patch) (unidiff)
treec78d34380cb9e1722f41c56cda0bbbea394e2a1a
parentd25a16d1fd34374e4d2815dec4d11b25b2049432 (diff)
downloadopie-2d77abb5ff37abf61e04657431d7e0e1f5138d94.zip
opie-2d77abb5ff37abf61e04657431d7e0e1f5138d94.tar.gz
opie-2d77abb5ff37abf61e04657431d7e0e1f5138d94.tar.bz2
- Improve look 'n feel.
- fix a bug in '=' operation.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/euroconv/calcdisplay.cpp50
-rw-r--r--noncore/tools/euroconv/calcdisplay.h38
-rw-r--r--noncore/tools/euroconv/calckeypad.cpp48
-rw-r--r--noncore/tools/euroconv/calckeypad.h2
-rw-r--r--noncore/tools/euroconv/currency.h4
5 files changed, 109 insertions, 33 deletions
diff --git a/noncore/tools/euroconv/calcdisplay.cpp b/noncore/tools/euroconv/calcdisplay.cpp
index 06e5158..1659858 100644
--- a/noncore/tools/euroconv/calcdisplay.cpp
+++ b/noncore/tools/euroconv/calcdisplay.cpp
@@ -1,188 +1,216 @@
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 19
19#include "currency.h" 20#include "currency.h"
20#include "calcdisplay.h" 21#include "calcdisplay.h"
21 22
22 23
23LCDDisplay::LCDDisplay( QWidget *parent, const char *name ) 24LCDDisplay::LCDDisplay( QWidget *parent, const char *name )
24 : QHBox( parent, name ){ 25 : QHBox( parent, name ){
25 26
26 27
28
29this->setMargin(5);
30this->setSpacing(5);
31
27// Create display 32// Create display
28QVBox *vbxlayout = new QVBox (this); 33QVBox *vbxlayout = new QVBox (this);
29 34
30grpbxTop = new QVGroupBox(vbxlayout, "grpbxTop"); 35/*************** Top LCD ***********************/
36grpbxTop = new QHGroupBox(vbxlayout, "grpbxTop");
37grpbxStyle = grpbxTop->frameStyle();
38grpbxTop->setMaximumHeight(48);
39
31cbbxTop = new QComboBox(grpbxTop, "cbbxTop"); 40cbbxTop = new QComboBox(grpbxTop, "cbbxTop");
41cbbxTop->setMaximumWidth(50);
42cbbxTop->insertStrList(aCurrency);
43
32lcdTop = new QLCDNumber(10, grpbxTop, "lcdTop"); 44lcdTop = new QLCDNumber(10, grpbxTop, "lcdTop");
33lcdTop->setMode( QLCDNumber::DEC ); 45lcdTop->setMode( QLCDNumber::DEC );
34lcdTop->setSmallDecimalPoint(true); 46lcdTop->setSmallDecimalPoint(true);
35lcdTop->setSegmentStyle(QLCDNumber::Flat); 47lcdTop->setSegmentStyle(QLCDNumber::Flat);
36cbbxTop->insertStrList(aCurrency);
37 48
38grpbxBottom = new QVGroupBox(vbxlayout, "grpbxBottom"); 49/************** Bottom LCD ************************/
50grpbxBottom = new QHGroupBox(vbxlayout, "grpbxBottom");
51grpbxBottom->setMaximumHeight(46);
52grpbxBottom->setFrameStyle(0);
53grpbxBottom->setFrameShadow(QFrame::MShadow);
54
39cbbxBottom = new QComboBox(grpbxBottom, "cbbxBottom"); 55cbbxBottom = new QComboBox(grpbxBottom, "cbbxBottom");
56cbbxBottom->setMaximumWidth(50);
57cbbxBottom->insertStrList(aCurrency);
58
40lcdBottom = new QLCDNumber(10, grpbxBottom, "lcdBottom"); 59lcdBottom = new QLCDNumber(10, grpbxBottom, "lcdBottom");
41lcdBottom->setMode( QLCDNumber::DEC ); 60lcdBottom->setMode( QLCDNumber::DEC );
42lcdBottom->setSmallDecimalPoint(true); 61lcdBottom->setSmallDecimalPoint(true);
43lcdBottom->setSegmentStyle(QLCDNumber::Flat); 62lcdBottom->setSegmentStyle(QLCDNumber::Flat);
44cbbxBottom->insertStrList(aCurrency);
45 63
46// set combo box signals 64// set combo box signals
47connect(cbbxTop, SIGNAL(activated(int)), this, SLOT(cbbxChange())); 65connect(cbbxTop, SIGNAL(activated(int)), this, SLOT(cbbxChange()));
48connect(cbbxBottom, SIGNAL(activated(int)), this, SLOT(cbbxChange())); 66connect(cbbxBottom, SIGNAL(activated(int)), this, SLOT(cbbxChange()));
49 67
50btnSwap = new QPushButton("S",this, "swap"); 68btnSwap = new QPushButton(this, "swap");
51btnSwap->setMaximumSize(20,50); 69QPixmap imgSwap((const char**) swap_xpm);
52btnSwap->setMinimumSize(20,50); 70btnSwap->setPixmap(imgSwap);
71btnSwap->setFixedSize(20,40);
53// set signal 72// set signal
54connect(btnSwap, SIGNAL(clicked()), this, SLOT(swapLCD())); 73connect(btnSwap, SIGNAL(clicked()), this, SLOT(swapLCD()));
55 74
56// set default LCD to top 75// set default LCD to top
57iCurrentLCD = 0; 76iCurrentLCD = 0;
58 77
59//setValue(123.456);
60
61} 78}
62 79
63/*********************************************************************** 80/***********************************************************************
64 * SLOT: Display value in the correct LCD 81 * SLOT: Display value in the correct LCD
65 **********************************************************************/ 82 **********************************************************************/
66void LCDDisplay::setValue(double dSrcValue){ 83void LCDDisplay::setValue(double dSrcValue){
67 84
68double dDstValue=0; 85double dDstValue=0;
69 86
70int iSrcIndex; 87int iSrcIndex;
71int iDstIndex; 88int iDstIndex;
72 89
73 90
74// get item index of the focused 91// get item index of the focused
75if(!iCurrentLCD){ 92if(!iCurrentLCD){
76 iSrcIndex = cbbxTop->currentItem(); 93 iSrcIndex = cbbxTop->currentItem();
77 iDstIndex = cbbxBottom->currentItem(); 94 iDstIndex = cbbxBottom->currentItem();
78}else{ 95}else{
79 iSrcIndex = cbbxBottom->currentItem(); 96 iSrcIndex = cbbxBottom->currentItem();
80 iDstIndex = cbbxTop->currentItem(); 97 iDstIndex = cbbxTop->currentItem();
81} 98}
82 99
83if(iSrcIndex == iDstIndex) 100if(iSrcIndex == iDstIndex)
84 dDstValue = dSrcValue; 101 dDstValue = dSrcValue;
85else{ 102else{
86 if(iSrcIndex){ 103 if(iSrcIndex){
87 // we are NOT in Euro as iDstIndex <> 0 104 // we are NOT in Euro as iDstIndex <> 0
88 // Convert to Euro 105 // Convert to Euro
89 dDstValue = x2Euro(iSrcIndex, dSrcValue); 106 dDstValue = x2Euro(iSrcIndex, dSrcValue);
90 dDstValue = Euro2x(iDstIndex, dDstValue); 107 dDstValue = Euro2x(iDstIndex, dDstValue);
91 }else 108 }else
92 // We are in Euro 109 // We are in Euro
93 dDstValue = Euro2x(iDstIndex, dSrcValue); 110 dDstValue = Euro2x(iDstIndex, dSrcValue);
94} 111}
95 112
96 113
97if(!iCurrentLCD){ 114if(!iCurrentLCD){
98 lcdTop->display(dSrcValue); 115 lcdTop->display(dSrcValue);
99 lcdBottom->display(dDstValue); 116 lcdBottom->display(dDstValue);
100}else{ 117}else{
101 lcdBottom->display(dSrcValue); 118 lcdBottom->display(dSrcValue);
102 lcdTop->display(dDstValue); 119 lcdTop->display(dDstValue);
103} 120}
104 121
105} 122}
106 123
107/*********************************************************************** 124/***********************************************************************
108 * SLOT: Swap output keypad between LCD displays 125 * SLOT: Swap output keypad between LCD displays
109 **********************************************************************/ 126 **********************************************************************/
110void LCDDisplay::swapLCD(void){ 127void LCDDisplay::swapLCD(void){
111 128
112double dCurrentValue; 129double dCurrentValue;
113 130
114// get current value 131// get current value
115if(!iCurrentLCD){ 132if(!iCurrentLCD){
133 // iCurrentLCD = 0, lcdTop has current focus and is going to loose
134 // it
116 dCurrentValue = lcdTop->value(); 135 dCurrentValue = lcdTop->value();
117 iCurrentLCD = 1; 136 iCurrentLCD = 1;
137 grpbxTop->setFrameStyle(0);
138 grpbxBottom->setFrameStyle(grpbxStyle);
118}else{ 139}else{
119 dCurrentValue = lcdBottom->value(); 140 dCurrentValue = lcdBottom->value();
120 iCurrentLCD = 0; 141 iCurrentLCD = 0;
142 grpbxTop->setFrameStyle(grpbxStyle);
143 grpbxBottom->setFrameStyle(0);
121} 144}
122 145
123setValue(dCurrentValue); 146setValue(dCurrentValue);
124} 147}
125 148
126/*********************************************************************** 149/***********************************************************************
127 * SLOT: Currency change 150 * SLOT: Currency change
128 **********************************************************************/ 151 **********************************************************************/
129void LCDDisplay::cbbxChange(void){ 152void LCDDisplay::cbbxChange(void){
130 153
131double dCurrentValue; 154double dCurrentValue;
132 155
133printf("combo changes...\n");
134
135// get current value 156// get current value
136if(!iCurrentLCD){ 157if(!iCurrentLCD){
137 dCurrentValue = lcdTop->value(); 158 dCurrentValue = lcdTop->value();
138}else{ 159}else{
139 dCurrentValue = lcdBottom->value(); 160 dCurrentValue = lcdBottom->value();
140} 161}
141 162
142setValue(dCurrentValue); 163setValue(dCurrentValue);
143} 164}
144 165
145 166
146/*********************************************************************** 167/***********************************************************************
147 * Euro2x converts dValue from Euro to the currency which combo box 168 * Euro2x converts dValue from Euro to the currency which combo box
148 * index is provided in iIndex. 169 * index is provided in iIndex.
149 **********************************************************************/ 170 **********************************************************************/
150double LCDDisplay::Euro2x(int iIndex, double dValue){ 171double LCDDisplay::Euro2x(int iIndex, double dValue){
151 172
152switch (iIndex){ 173switch (iIndex){
153 case 0: // Euro 174 case 0: // Euro
154 return(dValue); 175 return(dValue);
155 break; 176 break;
156 177
157 case 1: // FF: French Francs 178 case 1: // FF: French Francs
158 return(dValue*FF); 179 return(dValue*FF);
159 break; 180 break;
160 181
161 case 2: // DM: Deutch Mark 182 case 2: // DM: Deutch Mark
162 return(dValue*DM); 183 return(dValue*DM);
163 break; 184 break;
185
186 default:
187 return 0;
164}//switch (iIndex) 188}//switch (iIndex)
165}// fct Eur2x 189}// fct Eur2x
166 190
167 191
168 192
169/*********************************************************************** 193/***********************************************************************
170 * x2Euro converts dValue to Euro from the currency which combo box 194 * x2Euro converts dValue to Euro from the currency which combo box
171 * index is provided in iIndex. 195 * index is provided in iIndex.
172 **********************************************************************/ 196 **********************************************************************/
173double LCDDisplay::x2Euro(int iIndex, double dValue){ 197double LCDDisplay::x2Euro(int iIndex, double dValue){
174 198
175switch (iIndex){ 199switch (iIndex){
176 case 0: // Euro 200 case 0: // Euro
177 return(dValue); 201 return(dValue);
178 break; 202 break;
179 203
180 case 1: // FF: French Francs 204 case 1: // FF: French Francs
181 return(dValue/FF); 205 return(dValue/FF);
182 break; 206 break;
183 207
184 case 2: // DM: Deutch Mark 208 case 2: // DM: Deutch Mark
185 return(dValue/DM); 209 return(dValue/DM);
186 break; 210 break;
187}//switch (iIndex) 211}//switch (iIndex)
212
213// we shouldn't come here
214return 0;
215
188}// fct x2Euro 216}// fct x2Euro
diff --git a/noncore/tools/euroconv/calcdisplay.h b/noncore/tools/euroconv/calcdisplay.h
index 17ce8f4..d1902cf 100644
--- a/noncore/tools/euroconv/calcdisplay.h
+++ b/noncore/tools/euroconv/calcdisplay.h
@@ -1,57 +1,89 @@
1/**************************************************************************** 1/****************************************************************************
2 * 2 *
3 * File: calcdisplay.h 3 * File: calcdisplay.h
4 * 4 *
5 * Description: Header file for the class LCDDisplay 5 * Description: Header file for the class LCDDisplay
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#ifndef CALCDISPLAY_H 16#ifndef CALCDISPLAY_H
17#define CALCDISPLAY_H 17#define CALCDISPLAY_H
18 18
19#include <qhbox.h> 19#include <qhbox.h>
20#include <qlcdnumber.h> 20#include <qlcdnumber.h>
21#include <qvgroupbox.h> 21#include <qhgroupbox.h>
22#include <qpushbutton.h> 22#include <qpushbutton.h>
23#include <qcombobox.h> 23#include <qcombobox.h>
24 24
25
26/* XPM */
27static char *swap_xpm[] = {
28/* width height num_colors chars_per_pixel */
29" 13 18 2 1",
30/* colors */
31". c None",
32"# c #000000",
33/* pixels */
34"..#######....",
35"..#####......",
36"..######.....",
37"..#...###....",
38"........##...",
39".........##..",
40"..........##.",
41"...........##",
42"...........##",
43"...........##",
44"...........##",
45"..........##.",
46".........##..",
47"........##...",
48"..#...###....",
49"..######.....",
50"..#####......",
51"..#######....",
52};
53
54
25class LCDDisplay : public QHBox{ 55class LCDDisplay : public QHBox{
26 56
27Q_OBJECT 57Q_OBJECT
28public: 58public:
29 LCDDisplay( QWidget *parent=0, const char *name=0 ); 59 LCDDisplay( QWidget *parent=0, const char *name=0 );
30 60
31public slots: 61public slots:
32 void setValue(double); 62 void setValue(double);
33 void swapLCD(void); 63 void swapLCD(void);
34 void cbbxChange(void); 64 void cbbxChange(void);
35 65
36//signals: 66//signals:
37// void valueChanged( int ); 67// void valueChanged( int );
38private: 68private:
39 QVGroupBox *grpbxTop; 69 int grpbxStyle;
70
71 QHGroupBox *grpbxTop;
40 QComboBox *cbbxTop; 72 QComboBox *cbbxTop;
41 QLCDNumber *lcdTop; 73 QLCDNumber *lcdTop;
42 74
43 QVGroupBox *grpbxBottom; 75 QHGroupBox *grpbxBottom;
44 QComboBox *cbbxBottom; 76 QComboBox *cbbxBottom;
45 QLCDNumber *lcdBottom; 77 QLCDNumber *lcdBottom;
46 78
47 QPushButton *btnSwap; 79 QPushButton *btnSwap;
48 80
49 int iCurrentLCD; // 0=top, 1=bottom 81 int iCurrentLCD; // 0=top, 1=bottom
50 82
51 double Euro2x(int iIndex, double dValue); 83 double Euro2x(int iIndex, double dValue);
52 double x2Euro(int iIndex, double dValue); 84 double x2Euro(int iIndex, double dValue);
53 85
54 86
55}; 87};
56 88
57#endif // CALCDISPLAY_H 89#endif // CALCDISPLAY_H
diff --git a/noncore/tools/euroconv/calckeypad.cpp b/noncore/tools/euroconv/calckeypad.cpp
index 4156570..f1d61c0 100644
--- a/noncore/tools/euroconv/calckeypad.cpp
+++ b/noncore/tools/euroconv/calckeypad.cpp
@@ -1,191 +1,207 @@
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;
25QButton *btnButton;
24 26
25// save lcd at init 27// save lcd at init
26display = lcd; 28display = lcd;
27// Init variable 29// Init variable
28dCurrent = 0; 30dCurrent = 0;
29iLenCurrent = 1; 31iLenCurrent = 1;
30bIsDec = false; 32bIsDec = false;
31dDecCurrent = 0; 33dDecCurrent = 0;
32iPreviousOperator = 0; 34iPreviousOperator = 0;
33dPreviousValue = 0; 35dPreviousValue = 0;
34 36
35// First line 37// First line
36btnClear = new QPushButton("CE/C", this, "Clear"); 38btnClear = new QPushButton("CE/C", this, "Clear");
37btn7 = new QPushButton("7", this, "7"); 39btn7 = new QPushButton("7", this, "7");
38btn8 = new QPushButton("8", this, "8"); 40btn8 = new QPushButton("8", this, "8");
39btn9 = new QPushButton("9", this, "9"); 41btn9 = new QPushButton("9", this, "9");
40btnPlus = new QPushButton("+", this, "+"); 42btnPlus = new QPushButton("+", this, "+");
41// 2nd line 43// 2nd line
42btnPercent = new QPushButton("%", this, "percent"); 44btnPercent = new QPushButton("%", this, "percent");
43btn4 = new QPushButton("4", this, "4"); 45btn4 = new QPushButton("4", this, "4");
44btn5 = new QPushButton("5", this, "5"); 46btn5 = new QPushButton("5", this, "5");
45btn6 = new QPushButton("6", this, "6"); 47btn6 = new QPushButton("6", this, "6");
46btnMinus = new QPushButton("-", this, "-"); 48btnMinus = new QPushButton("-", this, "-");
47// 3rd line 49// 3rd line
48btnF1 = new QPushButton("",this, "F1"); 50btnF1 = new QPushButton("",this, "F1");
49btn1 = new QPushButton("1", this, "1"); 51btn1 = new QPushButton("1", this, "1");
50btn2 = new QPushButton("2", this, "2"); 52btn2 = new QPushButton("2", this, "2");
51btn3 = new QPushButton("3", this, "3"); 53btn3 = new QPushButton("3", this, "3");
52btnMultiply = new QPushButton("X", this, "X"); 54btnMultiply = new QPushButton("X", this, "X");
53// 4th line 55// 4th line
54btnAbout = new QPushButton("?", this, "About"); 56btnAbout = new QPushButton("?", this, "About");
55btn0 = new QPushButton("0", this, "0"); 57btn0 = new QPushButton("0", this, "0");
56btnDot = new QPushButton(".", this, "dot"); 58btnDot = new QPushButton(".", this, "dot");
57btnEqual = new QPushButton("=", this, "equal"); 59btnEqual = new QPushButton("=", this, "equal");
58btnDivide = new QPushButton("/", this, "divide"); 60btnDivide = new QPushButton("/", this, "divide");
59 61
60// Digit key 62// Digit key
61grpbtnDigits = new QButtonGroup(0, "digits"); 63grpbtnDigits = new QButtonGroup(0, "digits");
62grpbtnDigits->insert(btn0, 0); 64grpbtnDigits->insert(btn0, 0);
63grpbtnDigits->insert(btn1, 1); 65grpbtnDigits->insert(btn1, 1);
64grpbtnDigits->insert(btn2, 2); 66grpbtnDigits->insert(btn2, 2);
65grpbtnDigits->insert(btn3, 3); 67grpbtnDigits->insert(btn3, 3);
66grpbtnDigits->insert(btn4, 4); 68grpbtnDigits->insert(btn4, 4);
67grpbtnDigits->insert(btn5, 5); 69grpbtnDigits->insert(btn5, 5);
68grpbtnDigits->insert(btn6, 6); 70grpbtnDigits->insert(btn6, 6);
69grpbtnDigits->insert(btn7, 7); 71grpbtnDigits->insert(btn7, 7);
70grpbtnDigits->insert(btn8, 8); 72grpbtnDigits->insert(btn8, 8);
71grpbtnDigits->insert(btn9, 9); 73grpbtnDigits->insert(btn9, 9);
72 74
75// set appearance of buttons
76for(i=0; i<10; i++){
77 btnButton = grpbtnDigits->find(i);
78 btnButton->setFixedSize(30,30);
79}
80
73// Operator key 81// Operator key
74grpbtnOperators = new QButtonGroup(0, "operator"); 82grpbtnOperators = new QButtonGroup(0, "operator");
75grpbtnOperators->insert(btnPlus, 1); 83grpbtnOperators->insert(btnPlus, 1);
76grpbtnOperators->insert(btnMinus,2); 84grpbtnOperators->insert(btnMinus,2);
77grpbtnOperators->insert(btnMultiply,3); 85grpbtnOperators->insert(btnMultiply,3);
78grpbtnOperators->insert(btnDivide,4); 86grpbtnOperators->insert(btnDivide,4);
79grpbtnOperators->insert(btnEqual,5); 87grpbtnOperators->insert(btnEqual,5);
88// set appearance of buttons
89for(i=1; i<6; i++){
90 btnButton = grpbtnOperators->find(i);
91 btnButton->setFixedSize(30,30);
92}
93btnClear->setFixedSize(30,30);
94btnClear->setPalette(QPalette( QColor(255, 99, 71) ) );
95btnDot->setFixedSize(30,30);
96btnPercent->setFixedSize(30,30);
97btnF1->setFixedSize(30,30);
98btnAbout->setFixedSize(30,30);
80 99
81 100
82// SIGNALS AND SLOTS 101// SIGNALS AND SLOTS
83connect(grpbtnDigits, SIGNAL(clicked(int) ), this, SLOT(enterDigits(int))); 102connect(grpbtnDigits, SIGNAL(clicked(int) ), this, SLOT(enterDigits(int)));
84connect(grpbtnOperators, SIGNAL(clicked(int)), this, SLOT(operatorPressed(int))); 103connect(grpbtnOperators, SIGNAL(clicked(int)), this, SLOT(operatorPressed(int)));
85connect(btnClear, SIGNAL(clicked()), this, SLOT(clearLCD())); 104connect(btnClear, SIGNAL(clicked()), this, SLOT(clearLCD()));
86connect(btnAbout, SIGNAL(clicked()), this, SLOT(aboutDialog())); 105connect(btnAbout, SIGNAL(clicked()), this, SLOT(aboutDialog()));
87connect(btnDot, SIGNAL(clicked()), this, SLOT(gotoDec())); 106connect(btnDot, SIGNAL(clicked()), this, SLOT(gotoDec()));
88} 107}
89 108
90 109
91/*********************************************************************** 110/***********************************************************************
92 * SLOT: enterDigits calculates the value to display and display it. 111 * SLOT: enterDigits calculates the value to display and display it.
93 **********************************************************************/ 112 **********************************************************************/
94void KeyPad::enterDigits(int i){ 113void KeyPad::enterDigits(int i){
95 114
96if(!dCurrent) 115if(!dCurrent)
97 dCurrent = i; 116 dCurrent = i;
98else if(!bIsDec){ 117else if(!bIsDec){
99 if(iLenCurrent > 9) 118 if(iLenCurrent > 9)
100 return; 119 return;
101 dCurrent *= 10; 120 dCurrent *= 10;
102 dCurrent += i; 121 dCurrent += i;
103 iLenCurrent++; 122 iLenCurrent++;
104}else{ 123}else{
105 dCurrent += i*dDecCurrent; 124 dCurrent += i*dDecCurrent;
106 dDecCurrent /= 10; 125 dDecCurrent /= 10;
107} 126}
108 127
109display->setValue(dCurrent); 128display->setValue(dCurrent);
110} 129}
111 130
112/*********************************************************************** 131/***********************************************************************
113 * SLOT: Operator has been pressed 132 * SLOT: Operator has been pressed
114 **********************************************************************/ 133 **********************************************************************/
115void KeyPad::operatorPressed(int i){ 134void KeyPad::operatorPressed(int i){
116 135
117if(iPreviousOperator){ 136if(iPreviousOperator){
118 switch(iPreviousOperator){ 137 switch(iPreviousOperator){
119 case 1: // Plus + 138 case 1: // Plus +
120 dCurrent += dPreviousValue; 139 dCurrent += dPreviousValue;
121 break; 140 break;
122 141
123 case 2: // Minus - 142 case 2: // Minus -
124 dCurrent = dPreviousValue - dCurrent; 143 dCurrent = dPreviousValue - dCurrent;
125 break; 144 break;
126 145
127 case 3: // Multiply * 146 case 3: // Multiply *
128 dCurrent *= dPreviousValue; 147 dCurrent *= dPreviousValue;
129 break; 148 break;
130 149
131 case 4: // Divide / 150 case 4: // Divide /
132 dCurrent = dPreviousValue / dCurrent; 151 dCurrent = dPreviousValue / dCurrent;
133 break; 152 break;
134 153
135 } 154 }
136 display->setValue(dCurrent); 155 display->setValue(dCurrent);
137} 156}
138if(i == 5){
139 // key '=' pressed
140 dPreviousValue = 0;
141 iPreviousOperator = 0;
142 // We don't want to add digits
143 iLenCurrent = 100;
144}else{
145 dPreviousValue = dCurrent;
146 iPreviousOperator = i;
147 // reset LCD for next digit
148 dCurrent = 0;
149 iLenCurrent = 1;
150 bIsDec = false;
151 dDecCurrent = 0;
152}
153 157
158dPreviousValue = dCurrent;
159iPreviousOperator = i;
160
161// reset LCD for next digit
162dCurrent = 0;
163iLenCurrent = 1;
164bIsDec = false;
165dDecCurrent = 0;
154} 166}
155/*********************************************************************** 167/***********************************************************************
156 * SLOT: clearLCD CE/C has been pressed 168 * SLOT: clearLCD CE/C has been pressed
157 **********************************************************************/ 169 **********************************************************************/
158void KeyPad::clearLCD(void){ 170void KeyPad::clearLCD(void){
159 171
160dCurrent = 0; 172dCurrent = 0;
161iLenCurrent = 1; 173iLenCurrent = 1;
162bIsDec = false; 174bIsDec = false;
163dDecCurrent = 0; 175dDecCurrent = 0;
164iPreviousOperator = 0; 176iPreviousOperator = 0;
165dPreviousValue = 0; 177dPreviousValue = 0;
166display->setValue(0); 178display->setValue(0);
167} 179}
168 180
169/*********************************************************************** 181/***********************************************************************
170 * SLOT: gotoDec Dot has been pressed 182 * SLOT: gotoDec Dot has been pressed
171 **********************************************************************/ 183 **********************************************************************/
172void KeyPad::gotoDec(void){ 184void KeyPad::gotoDec(void){
173 185
174bIsDec = true; 186bIsDec = true;
175dDecCurrent = 0.1; 187dDecCurrent = 0.1;
176} 188}
177 189
178 190
179 191
180/*********************************************************************** 192/***********************************************************************
181 * SLOT: Display About Dialog... 193 * SLOT: Display About Dialog...
182 **********************************************************************/ 194 **********************************************************************/
183void KeyPad::aboutDialog(void){ 195void KeyPad::aboutDialog(void){
184 196
185QMessageBox::about( this, "About Euroconv", 197QMessageBox::about( this, "About Euroconv",
186 "Euroconv is an Euro converter\n\n" 198 "Euroconv is an Euro converter\n\n"
187 "Copyright 2003 TALC Informatique.\n" 199 "Copyright 2003 TALC Informatique.\n"
188 "Under GPL license\n\n" 200 "Under GPL license\n\n"
189 "Written by Eric Santonacci for Opie\n" 201 "Written by Eric Santonacci for Opie\n"
190 "http://opie.handhelds.org\n" ); 202 "http://opie.handhelds.org\n\n"
203 "Version 0.2\n\n"
204 "Any comment or feedback to:\n"
205 "Eric.Santonacci@talc.fr\n");
206
191} 207}
diff --git a/noncore/tools/euroconv/calckeypad.h b/noncore/tools/euroconv/calckeypad.h
index 42e7eb3..aac3f41 100644
--- a/noncore/tools/euroconv/calckeypad.h
+++ b/noncore/tools/euroconv/calckeypad.h
@@ -42,37 +42,37 @@ private:
42 bool bIsDec; 42 bool bIsDec;
43 double dDecCurrent; 43 double dDecCurrent;
44 int iPreviousOperator; 44 int iPreviousOperator;
45 double dPreviousValue; 45 double dPreviousValue;
46 46
47 QPushButton *btn0; 47 QPushButton *btn0;
48 QPushButton *btn1; 48 QPushButton *btn1;
49 QPushButton *btn2; 49 QPushButton *btn2;
50 QPushButton *btn3; 50 QPushButton *btn3;
51 QPushButton *btn4; 51 QPushButton *btn4;
52 QPushButton *btn5; 52 QPushButton *btn5;
53 QPushButton *btn6; 53 QPushButton *btn6;
54 QPushButton *btn7; 54 QPushButton *btn7;
55 QPushButton *btn8; 55 QPushButton *btn8;
56 QPushButton *btn9; 56 QPushButton *btn9;
57 QButtonGroup *grpbtnDigits; 57 QButtonGroup *grpbtnDigits;
58 58
59 QPushButton *btnDot; 59 QPushButton *btnDot;
60 60
61 QPushButton *btnClear; 61 QPushButton *btnClear;
62 62
63 QPushButton *btnPlus; 63 QPushButton *btnPlus;
64 QPushButton *btnMinus; 64 QPushButton *btnMinus;
65 QPushButton *btnMultiply; 65 QPushButton *btnMultiply;
66 QPushButton *btnDivide; 66 QPushButton *btnDivide;
67 QPushButton *btnEqual; 67 QPushButton *btnEqual;
68 QPushButton *btnPercent; 68 QPushButton *btnPercent;
69 QPushButton *btnF1; 69 QPushButton *btnF1;
70 QPushButton *btnAbout; 70 QPushButton *btnAbout;
71 71
72 QButtonGroup *grpbtnOperators; 72 QButtonGroup *grpbtnOperators;
73 73
74 74 void setAppearance(void);
75 75
76}; 76};
77 77
78#endif // CALCKEYPAD_H 78#endif // CALCKEYPAD_H
diff --git a/noncore/tools/euroconv/currency.h b/noncore/tools/euroconv/currency.h
index 90f5b57..d9ee75c 100644
--- a/noncore/tools/euroconv/currency.h
+++ b/noncore/tools/euroconv/currency.h
@@ -1,20 +1,20 @@
1/**************************************************************************** 1/****************************************************************************
2 * 2 *
3 * File: currency.h 3 * File: currency.h
4 * 4 *
5 * Description: define constant for currency compare Euro 5 * Description: define constant for currency compare Euro
6 * 6 *
7 * 7 *
8 * Authors: Eric Santonacci <Eric.Santonacci@talc.fr> 8 * Authors: Eric Santonacci <Eric.Santonacci@talc.fr>
9 * 9 *
10 * 10 *
11 * $Id$ 11 * $Id$
12 * 12 *
13 ***************************************************************************/ 13 ***************************************************************************/
14 14
15// 1 Euro equal.... 15// 1 Euro equal....
16#define EURO 1 // Euro 16#define EURO 1 // Euro
17#define FF 6.55957 // French Francs 17#define FF 6.55957 // French Francs
18#define DM 1.96 // Deutch Mark 18#define DM 1.9594 // Deutch Mark
19 19
20static const char* aCurrency[] = { "Euro", "French Frs", "DM", 0 }; 20static const char* aCurrency[] = { "Euro", "FF", "DM", 0 };