summaryrefslogtreecommitdiff
path: root/noncore/tools
Unidiff
Diffstat (limited to 'noncore/tools') (more/less context) (show whitespace changes)
-rw-r--r--noncore/tools/calculator/calculatorimpl.cpp24
-rw-r--r--noncore/tools/calculator/calculatorimpl.h2
2 files changed, 21 insertions, 5 deletions
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 @@
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21/*
22 * 01/14/2002 Charles-Edouard Ruault <ce@ruault.com>
23 * Added support for Temperature conversions.
24 */
25
21#include "calculatorimpl.h" 26#include "calculatorimpl.h"
22 27
23#include <qpe/resource.h> 28#include <qpe/resource.h>
24#include <qpe/qmath.h> 29#include <qpe/qmath.h>
25#include <qpe/qpeapplication.h> 30#include <qpe/qpeapplication.h>
26 31
@@ -131,13 +136,14 @@ CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name,
131 line = ts.readLine(); 136 line = ts.readLine();
132 if ( line.contains ("STARTTYPE" ) ) 137 if ( line.contains ("STARTTYPE" ) )
133 conversion_mode_count++; 138 conversion_mode_count++;
134 } 139 }
135 140
136 entry_list = new double[conversion_mode_count*func_button_count]; 141 entry_list = new double[conversion_mode_count*func_button_count];
137 142 preoffset_list = new double[conversion_mode_count*func_button_count];
143 postoffset_list = new double[conversion_mode_count*func_button_count];
138 myfile.close(); 144 myfile.close();
139 myfile.open( IO_Translate | IO_ReadOnly ); 145 myfile.open( IO_Translate | IO_ReadOnly );
140 QTextStream ts2(&myfile); 146 QTextStream ts2(&myfile);
141 147
142 // second pass, read in values 148 // second pass, read in values
143 int x = 0; 149 int x = 0;
@@ -150,12 +156,18 @@ CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name,
150 line = ts2.readLine(); 156 line = ts2.readLine();
151 if ( line.contains("NAME") ) { 157 if ( line.contains("NAME") ) {
152 faces << line.remove(0,5); 158 faces << line.remove(0,5);
153 line2 = ts2.readLine(); 159 line2 = ts2.readLine();
154 line2.remove(0,6); 160 line2.remove(0,6);
155 entry_list[x] = line2.toDouble(); 161 entry_list[x] = line2.toDouble();
162 line2 = ts2.readLine();
163 line2.remove(0,7);
164 preoffset_list[x] = line2.toDouble();
165 line2 = ts2.readLine();
166 line2.remove(0,8);
167 postoffset_list[x] = line2.toDouble();
156 x++; 168 x++;
157 } 169 }
158 } 170 }
159 } 171 }
160 } 172 }
161 } 173 }
@@ -217,22 +229,24 @@ void CalculatorImpl::do_convert(int button) {
217 if ( state == sError ) 229 if ( state == sError )
218 return; 230 return;
219 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) && 231 if ( current_mode >= pre_conv_modes_count && current_mode <= (max_mode - post_conv_modes_count) &&
220 button < changeable_func_button_count ) { 232 button < changeable_func_button_count ) {
221 if ( last_conversion > -1 ) { 233 if ( last_conversion > -1 ) {
222 if( state == sNewNumber ){ 234 if( state == sNewNumber ){
223 acc = num 235 acc = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
224 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) 236 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
225 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) ; 237 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button])
238 +postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button];
226 num = acc; 239 num = acc;
227 LCD->display( acc ); 240 LCD->display( acc );
228 } else { 241 } else {
229 state = sNewNumber; 242 state = sNewNumber;
230 num = num 243 num = (num+ preoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
231 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion]) 244 / (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + last_conversion])
232 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button]) ; 245 * (entry_list[(current_mode - pre_conv_modes_count) * func_button_count + button])
246 + postoffset_list[(current_mode - pre_conv_modes_count) * func_button_count + button];;
233 LCD->display( num ); 247 LCD->display( num );
234 acc = num; 248 acc = num;
235 } 249 }
236 } 250 }
237 last_conversion = button; 251 last_conversion = button;
238 } 252 }
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:
121 121
122 QButtonGroup bgr_function, bgr_digits, bgr_std, bgr_command; 122 QButtonGroup bgr_function, bgr_digits, bgr_std, bgr_command;
123 QStringList faces, captions; 123 QStringList faces, captions;
124 124
125 // an array of doubles holding the conversion ratios 125 // an array of doubles holding the conversion ratios
126 double* entry_list; 126 double* entry_list;
127 double* preoffset_list;
128 double* postoffset_list;
127 129
128 QPixmap xtopowerofy; 130 QPixmap xtopowerofy;
129 QPixmap ythrootofx; 131 QPixmap ythrootofx;
130 QPixmap oneoverx; 132 QPixmap oneoverx;
131 133
132 void display_pixmap_faces(void); 134 void display_pixmap_faces(void);