-rw-r--r-- | noncore/tools/euroconv/calckeypad.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/noncore/tools/euroconv/calckeypad.cpp b/noncore/tools/euroconv/calckeypad.cpp index f1d61c0..4d0c37f 100644 --- a/noncore/tools/euroconv/calckeypad.cpp +++ b/noncore/tools/euroconv/calckeypad.cpp @@ -111,15 +111,15 @@ connect(btnDot, SIGNAL(clicked()), this, SLOT(gotoDec())); * SLOT: enterDigits calculates the value to display and display it. **********************************************************************/ void KeyPad::enterDigits(int i){ if(!dCurrent) dCurrent = i; -else if(!bIsDec){ - if(iLenCurrent > 9) +else if(iLenCurrent > 9) return; +else if(!bIsDec){ dCurrent *= 10; dCurrent += i; iLenCurrent++; }else{ dCurrent += i*dDecCurrent; dDecCurrent /= 10; @@ -152,20 +152,27 @@ if(iPreviousOperator){ break; } display->setValue(dCurrent); } -dPreviousValue = dCurrent; -iPreviousOperator = i; - -// reset LCD for next digit -dCurrent = 0; -iLenCurrent = 1; -bIsDec = false; -dDecCurrent = 0; +if(i==5){ + // ensure we won't be able to enter more digits + iLenCurrent = 100; + iPreviousOperator = 0; + dPreviousValue = 0; +}else{ + dPreviousValue = dCurrent; + iPreviousOperator = i; + + // reset LCD for next digit + dCurrent = 0; + iLenCurrent = 1; + bIsDec = false; + dDecCurrent = 0; +} } /*********************************************************************** * SLOT: clearLCD CE/C has been pressed **********************************************************************/ void KeyPad::clearLCD(void){ @@ -197,11 +204,11 @@ void KeyPad::aboutDialog(void){ QMessageBox::about( this, "About Euroconv", "Euroconv is an Euro converter\n\n" "Copyright 2003 TALC Informatique.\n" "Under GPL license\n\n" "Written by Eric Santonacci for Opie\n" "http://opie.handhelds.org\n\n" - "Version 0.2\n\n" + "Version 0.3\n\n" "Any comment or feedback to:\n" "Eric.Santonacci@talc.fr\n"); } |