author | kergoth <kergoth> | 2002-02-08 18:07:57 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-02-08 18:07:57 (UTC) |
commit | d5714ac7fe62676ee1a63be2f965cb567ef7ae3e (patch) (side-by-side diff) | |
tree | a9518ba91ba235733e00fbe6926f0ae7e29e8350 | |
parent | acae430926d1b5a8877e0d92cfc7abef749c8f1a (diff) | |
download | opie-d5714ac7fe62676ee1a63be2f965cb567ef7ae3e.zip opie-d5714ac7fe62676ee1a63be2f965cb567ef7ae3e.tar.gz opie-d5714ac7fe62676ee1a63be2f965cb567ef7ae3e.tar.bz2 |
Merged in Charles-Edouard Ruault's calculator patch to add temp conversion.
-rw-r--r-- | etc/unit_conversion.dat | 211 | ||||
-rw-r--r-- | noncore/tools/calculator/calculatorimpl.cpp | 24 | ||||
-rw-r--r-- | noncore/tools/calculator/calculatorimpl.h | 2 |
3 files changed, 232 insertions, 5 deletions
diff --git a/etc/unit_conversion.dat b/etc/unit_conversion.dat index 5ae312e..c19adf1 100644 --- a/etc/unit_conversion.dat +++ b/etc/unit_conversion.dat @@ -20,176 +20,387 @@ STARTTYPE Weight STND grams NAME mg RATIO 1000 +PREOFF 0.0 +POSTOFF 0.0 + NAME g RATIO 1 +PREOFF 0.0 +POSTOFF 0.0 + NAME kg RATIO 0.001 +PREOFF 0.0 +POSTOFF 0.0 + NAME tonnes RATIO 1e-06 +PREOFF 0.0 +POSTOFF 0.0 + NAME carats RATIO 5 +PREOFF 0.0 +POSTOFF 0.0 + NAME oz RATIO 0.03527336860670194 +PREOFF 0.0 +POSTOFF 0.0 + NAME lb RATIO 0.002204585537918871 +PREOFF 0.0 +POSTOFF 0.0 + NAME st RATIO 0.0001574703955656337 +PREOFF 0.0 +POSTOFF 0.0 + NAME St tons RATIO 1.102292768959636e-06 +PREOFF 0.0 +POSTOFF 0.0 + NAME Lg tons RATIO 9.841899722852103e-07 +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + ENDTYPE STARTTYPE Distance STND m NAME mm RATIO 1000 +PREOFF 0.0 +POSTOFF 0.0 + NAME cm RATIO 100 +PREOFF 0.0 +POSTOFF 0.0 + NAME m RATIO 1 +PREOFF 0.0 +POSTOFF 0.0 + NAME km RATIO 0.001 +PREOFF 0.0 +POSTOFF 0.0 + NAME points RATIO 2834.64566929134 +PREOFF 0.0 +POSTOFF 0.0 + NAME in RATIO 39.3700787401575 +PREOFF 0.0 +POSTOFF 0.0 + NAME ft RATIO 3.280839895013123 +PREOFF 0.0 +POSTOFF 0.0 + NAME yd RATIO 1.093613298337708 +PREOFF 0.0 +POSTOFF 0.0 + NAME mi RATIO 0.0006213711922373339 +PREOFF 0.0 +POSTOFF 0.0 + NAME naut. mi RATIO 0.0005399568034557236 +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + ENDTYPE STARTTYPE Area STND sq m NAME sq mm RATIO 1000000 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq cm RATIO 10000 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq m RATIO 1 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq km RATIO 1e-06 +PREOFF 0.0 +POSTOFF 0.0 + NAME hectares RATIO 0.0001 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq in RATIO 1550.0031000062 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq ft RATIO 10.7639104167097 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq yd RATIO 1.19599004630108 +PREOFF 0.0 +POSTOFF 0.0 + NAME sq mi RATIO 0.000000386102158542446 +PREOFF 0.0 +POSTOFF 0.0 + NAME acres RATIO 0.0002471053814671653 +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + ENDTYPE +STARTTYPE Temperatures +STND °C + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME °C +RATIO 1.0 +PREOFF 0.0 +POSTOFF 0.0 + +NAME °F +RATIO 1.8 +PREOFF -32.0 +POSTOFF +32.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +NAME +RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + +ENDTYPE STARTTYPE Volume STND litres NAME cu cm RATIO 1000 +PREOFF 0.0 +POSTOFF 0.0 + NAME ml RATIO 1000 +PREOFF 0.0 +POSTOFF 0.0 + NAME l RATIO 1 +PREOFF 0.0 +POSTOFF 0.0 + NAME tblspoon RATIO 67.6280454036859 +PREOFF 0.0 +POSTOFF 0.0 + NAME teaspoons RATIO 202.884136211058 +PREOFF 0.0 +POSTOFF 0.0 + NAME cu in RATIO 61.0237440947323 +PREOFF 0.0 +POSTOFF 0.0 + NAME cu ft RATIO 0.0353146667214886 +PREOFF 0.0 +POSTOFF 0.0 + NAME pt RATIO 2.11337641886519 +PREOFF 0.0 +POSTOFF 0.0 + NAME qt RATIO 1.05668820943259 +PREOFF 0.0 +POSTOFF 0.0 + NAME gal (US) RATIO 0.264172052358148 +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + NAME RATIO 1. +PREOFF 0.0 +POSTOFF 0.0 + ENDTYPE Extra units NAME fl oz (US) RATIO 33.8140227018429 +PREOFF 0.0 +POSTOFF 0.0 + diff --git a/noncore/tools/calculator/calculatorimpl.cpp b/noncore/tools/calculator/calculatorimpl.cpp index 2f7d7ce..1b93c7f 100644 --- a/noncore/tools/calculator/calculatorimpl.cpp +++ b/noncore/tools/calculator/calculatorimpl.cpp @@ -15,12 +15,17 @@ ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ +/* + * 01/14/2002 Charles-Edouard Ruault <ce@ruault.com> + * Added support for Temperature conversions. + */ + #include "calculatorimpl.h" #include <qpe/resource.h> #include <qpe/qmath.h> #include <qpe/qpeapplication.h> @@ -131,13 +136,14 @@ CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, line = ts.readLine(); if ( line.contains ("STARTTYPE" ) ) conversion_mode_count++; } entry_list = new double[conversion_mode_count*func_button_count]; - + preoffset_list = new double[conversion_mode_count*func_button_count]; + postoffset_list = new double[conversion_mode_count*func_button_count]; myfile.close(); myfile.open( IO_Translate | IO_ReadOnly ); QTextStream ts2(&myfile); // second pass, read in values int x = 0; @@ -150,12 +156,18 @@ CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, line = ts2.readLine(); if ( line.contains("NAME") ) { faces << line.remove(0,5); line2 = ts2.readLine(); line2.remove(0,6); entry_list[x] = line2.toDouble(); + line2 = ts2.readLine(); + line2.remove(0,7); + preoffset_list[x] = line2.toDouble(); + line2 = ts2.readLine(); + line2.remove(0,8); + postoffset_list[x] = line2.toDouble(); x++; } } } } } @@ -217,22 +229,24 @@ void CalculatorImpl::do_convert(int button) { if ( state == sError ) return; if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) && button < changeable_func_button_count ) { if ( last_conversion > -1 ) { if( state == sNewNumber ){ - acc = num + acc = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) - * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) ; + * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) + +postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button]; num = acc; LCD->display( acc ); } else { state = sNewNumber; - num = num + num = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) - * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) ; + * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) + + postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button];; LCD->display( num ); acc = num; } } last_conversion = button; } diff --git a/noncore/tools/calculator/calculatorimpl.h b/noncore/tools/calculator/calculatorimpl.h index bfb726f..f0180c9 100644 --- a/noncore/tools/calculator/calculatorimpl.h +++ b/noncore/tools/calculator/calculatorimpl.h @@ -121,12 +121,14 @@ private: QButtonGroup bgr_function, bgr_digits, bgr_std, bgr_command; QStringList faces, captions; // an array of doubles holding the conversion ratios double* entry_list; + double* preoffset_list; + double* postoffset_list; QPixmap xtopowerofy; QPixmap ythrootofx; QPixmap oneoverx; void display_pixmap_faces(void); |