author | kergoth <kergoth> | 2002-02-08 18:07:57 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-02-08 18:07:57 (UTC) |
commit | d5714ac7fe62676ee1a63be2f965cb567ef7ae3e (patch) (unidiff) | |
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 | |||
@@ -2,194 +2,405 @@ | |||
2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2001 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
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 | STARTTYPE Weight | 21 | STARTTYPE Weight |
22 | STND grams | 22 | STND grams |
23 | 23 | ||
24 | NAME mg | 24 | NAME mg |
25 | RATIO 1000 | 25 | RATIO 1000 |
26 | PREOFF 0.0 | ||
27 | POSTOFF 0.0 | ||
28 | |||
26 | 29 | ||
27 | NAME g | 30 | NAME g |
28 | RATIO 1 | 31 | RATIO 1 |
32 | PREOFF 0.0 | ||
33 | POSTOFF 0.0 | ||
34 | |||
29 | 35 | ||
30 | NAME kg | 36 | NAME kg |
31 | RATIO 0.001 | 37 | RATIO 0.001 |
38 | PREOFF 0.0 | ||
39 | POSTOFF 0.0 | ||
40 | |||
32 | 41 | ||
33 | NAME tonnes | 42 | NAME tonnes |
34 | RATIO 1e-06 | 43 | RATIO 1e-06 |
44 | PREOFF 0.0 | ||
45 | POSTOFF 0.0 | ||
46 | |||
35 | 47 | ||
36 | NAME carats | 48 | NAME carats |
37 | RATIO 5 | 49 | RATIO 5 |
50 | PREOFF 0.0 | ||
51 | POSTOFF 0.0 | ||
52 | |||
38 | 53 | ||
39 | NAME oz | 54 | NAME oz |
40 | RATIO 0.03527336860670194 | 55 | RATIO 0.03527336860670194 |
56 | PREOFF 0.0 | ||
57 | POSTOFF 0.0 | ||
58 | |||
41 | 59 | ||
42 | NAME lb | 60 | NAME lb |
43 | RATIO 0.002204585537918871 | 61 | RATIO 0.002204585537918871 |
62 | PREOFF 0.0 | ||
63 | POSTOFF 0.0 | ||
64 | |||
44 | 65 | ||
45 | NAME st | 66 | NAME st |
46 | RATIO 0.0001574703955656337 | 67 | RATIO 0.0001574703955656337 |
68 | PREOFF 0.0 | ||
69 | POSTOFF 0.0 | ||
70 | |||
47 | 71 | ||
48 | NAME St tons | 72 | NAME St tons |
49 | RATIO 1.102292768959636e-06 | 73 | RATIO 1.102292768959636e-06 |
74 | PREOFF 0.0 | ||
75 | POSTOFF 0.0 | ||
76 | |||
50 | 77 | ||
51 | NAME Lg tons | 78 | NAME Lg tons |
52 | RATIO 9.841899722852103e-07 | 79 | RATIO 9.841899722852103e-07 |
80 | PREOFF 0.0 | ||
81 | POSTOFF 0.0 | ||
82 | |||
53 | 83 | ||
54 | NAME | 84 | NAME |
55 | RATIO 1. | 85 | RATIO 1. |
86 | PREOFF 0.0 | ||
87 | POSTOFF 0.0 | ||
88 | |||
56 | 89 | ||
57 | NAME | 90 | NAME |
58 | RATIO 1. | 91 | RATIO 1. |
92 | PREOFF 0.0 | ||
93 | POSTOFF 0.0 | ||
94 | |||
59 | 95 | ||
60 | ENDTYPE | 96 | ENDTYPE |
61 | 97 | ||
62 | 98 | ||
63 | 99 | ||
64 | STARTTYPE Distance | 100 | STARTTYPE Distance |
65 | STND m | 101 | STND m |
66 | 102 | ||
67 | NAME mm | 103 | NAME mm |
68 | RATIO 1000 | 104 | RATIO 1000 |
105 | PREOFF 0.0 | ||
106 | POSTOFF 0.0 | ||
107 | |||
69 | 108 | ||
70 | NAME cm | 109 | NAME cm |
71 | RATIO 100 | 110 | RATIO 100 |
111 | PREOFF 0.0 | ||
112 | POSTOFF 0.0 | ||
113 | |||
72 | 114 | ||
73 | NAME m | 115 | NAME m |
74 | RATIO 1 | 116 | RATIO 1 |
117 | PREOFF 0.0 | ||
118 | POSTOFF 0.0 | ||
119 | |||
75 | 120 | ||
76 | NAME km | 121 | NAME km |
77 | RATIO 0.001 | 122 | RATIO 0.001 |
123 | PREOFF 0.0 | ||
124 | POSTOFF 0.0 | ||
125 | |||
78 | 126 | ||
79 | NAME points | 127 | NAME points |
80 | RATIO 2834.64566929134 | 128 | RATIO 2834.64566929134 |
129 | PREOFF 0.0 | ||
130 | POSTOFF 0.0 | ||
131 | |||
81 | 132 | ||
82 | NAME in | 133 | NAME in |
83 | RATIO 39.3700787401575 | 134 | RATIO 39.3700787401575 |
135 | PREOFF 0.0 | ||
136 | POSTOFF 0.0 | ||
137 | |||
84 | 138 | ||
85 | NAME ft | 139 | NAME ft |
86 | RATIO 3.280839895013123 | 140 | RATIO 3.280839895013123 |
141 | PREOFF 0.0 | ||
142 | POSTOFF 0.0 | ||
143 | |||
87 | 144 | ||
88 | NAME yd | 145 | NAME yd |
89 | RATIO 1.093613298337708 | 146 | RATIO 1.093613298337708 |
147 | PREOFF 0.0 | ||
148 | POSTOFF 0.0 | ||
149 | |||
90 | 150 | ||
91 | NAME mi | 151 | NAME mi |
92 | RATIO 0.0006213711922373339 | 152 | RATIO 0.0006213711922373339 |
153 | PREOFF 0.0 | ||
154 | POSTOFF 0.0 | ||
155 | |||
93 | 156 | ||
94 | NAME naut. mi | 157 | NAME naut. mi |
95 | RATIO 0.0005399568034557236 | 158 | RATIO 0.0005399568034557236 |
159 | PREOFF 0.0 | ||
160 | POSTOFF 0.0 | ||
161 | |||
96 | 162 | ||
97 | NAME | 163 | NAME |
98 | RATIO 1. | 164 | RATIO 1. |
165 | PREOFF 0.0 | ||
166 | POSTOFF 0.0 | ||
167 | |||
99 | 168 | ||
100 | NAME | 169 | NAME |
101 | RATIO 1. | 170 | RATIO 1. |
171 | PREOFF 0.0 | ||
172 | POSTOFF 0.0 | ||
173 | |||
102 | 174 | ||
103 | ENDTYPE | 175 | ENDTYPE |
104 | 176 | ||
105 | 177 | ||
106 | 178 | ||
107 | STARTTYPE Area | 179 | STARTTYPE Area |
108 | STND sq m | 180 | STND sq m |
109 | 181 | ||
110 | NAME sq mm | 182 | NAME sq mm |
111 | RATIO 1000000 | 183 | RATIO 1000000 |
184 | PREOFF 0.0 | ||
185 | POSTOFF 0.0 | ||
186 | |||
112 | 187 | ||
113 | NAME sq cm | 188 | NAME sq cm |
114 | RATIO 10000 | 189 | RATIO 10000 |
190 | PREOFF 0.0 | ||
191 | POSTOFF 0.0 | ||
192 | |||
115 | 193 | ||
116 | NAME sq m | 194 | NAME sq m |
117 | RATIO 1 | 195 | RATIO 1 |
196 | PREOFF 0.0 | ||
197 | POSTOFF 0.0 | ||
198 | |||
118 | 199 | ||
119 | NAME sq km | 200 | NAME sq km |
120 | RATIO 1e-06 | 201 | RATIO 1e-06 |
202 | PREOFF 0.0 | ||
203 | POSTOFF 0.0 | ||
204 | |||
121 | 205 | ||
122 | NAME hectares | 206 | NAME hectares |
123 | RATIO 0.0001 | 207 | RATIO 0.0001 |
208 | PREOFF 0.0 | ||
209 | POSTOFF 0.0 | ||
210 | |||
124 | 211 | ||
125 | NAME sq in | 212 | NAME sq in |
126 | RATIO 1550.0031000062 | 213 | RATIO 1550.0031000062 |
214 | PREOFF 0.0 | ||
215 | POSTOFF 0.0 | ||
216 | |||
127 | 217 | ||
128 | NAME sq ft | 218 | NAME sq ft |
129 | RATIO 10.7639104167097 | 219 | RATIO 10.7639104167097 |
220 | PREOFF 0.0 | ||
221 | POSTOFF 0.0 | ||
222 | |||
130 | 223 | ||
131 | NAME sq yd | 224 | NAME sq yd |
132 | RATIO 1.19599004630108 | 225 | RATIO 1.19599004630108 |
226 | PREOFF 0.0 | ||
227 | POSTOFF 0.0 | ||
228 | |||
133 | 229 | ||
134 | NAME sq mi | 230 | NAME sq mi |
135 | RATIO 0.000000386102158542446 | 231 | RATIO 0.000000386102158542446 |
232 | PREOFF 0.0 | ||
233 | POSTOFF 0.0 | ||
234 | |||
136 | 235 | ||
137 | NAME acres | 236 | NAME acres |
138 | RATIO 0.0002471053814671653 | 237 | RATIO 0.0002471053814671653 |
238 | PREOFF 0.0 | ||
239 | POSTOFF 0.0 | ||
240 | |||
139 | 241 | ||
140 | NAME | 242 | NAME |
141 | RATIO 1. | 243 | RATIO 1. |
244 | PREOFF 0.0 | ||
245 | POSTOFF 0.0 | ||
246 | |||
142 | 247 | ||
143 | NAME | 248 | NAME |
144 | RATIO 1. | 249 | RATIO 1. |
250 | PREOFF 0.0 | ||
251 | POSTOFF 0.0 | ||
252 | |||
145 | 253 | ||
146 | ENDTYPE | 254 | ENDTYPE |
147 | 255 | ||
256 | STARTTYPE Temperatures | ||
257 | STND °C | ||
258 | |||
259 | NAME | ||
260 | RATIO 1. | ||
261 | PREOFF 0.0 | ||
262 | POSTOFF 0.0 | ||
263 | |||
264 | NAME | ||
265 | RATIO 1. | ||
266 | PREOFF 0.0 | ||
267 | POSTOFF 0.0 | ||
268 | |||
269 | NAME | ||
270 | RATIO 1. | ||
271 | PREOFF 0.0 | ||
272 | POSTOFF 0.0 | ||
273 | |||
274 | NAME | ||
275 | RATIO 1. | ||
276 | PREOFF 0.0 | ||
277 | POSTOFF 0.0 | ||
278 | |||
279 | NAME | ||
280 | RATIO 1. | ||
281 | PREOFF 0.0 | ||
282 | POSTOFF 0.0 | ||
283 | |||
284 | NAME °C | ||
285 | RATIO 1.0 | ||
286 | PREOFF 0.0 | ||
287 | POSTOFF 0.0 | ||
288 | |||
289 | NAME °F | ||
290 | RATIO 1.8 | ||
291 | PREOFF -32.0 | ||
292 | POSTOFF +32.0 | ||
293 | |||
294 | NAME | ||
295 | RATIO 1. | ||
296 | PREOFF 0.0 | ||
297 | POSTOFF 0.0 | ||
298 | |||
299 | NAME | ||
300 | RATIO 1. | ||
301 | PREOFF 0.0 | ||
302 | POSTOFF 0.0 | ||
303 | |||
304 | NAME | ||
305 | RATIO 1. | ||
306 | PREOFF 0.0 | ||
307 | POSTOFF 0.0 | ||
308 | |||
309 | NAME | ||
310 | RATIO 1. | ||
311 | PREOFF 0.0 | ||
312 | POSTOFF 0.0 | ||
313 | |||
314 | NAME | ||
315 | RATIO 1. | ||
316 | PREOFF 0.0 | ||
317 | POSTOFF 0.0 | ||
318 | |||
319 | ENDTYPE | ||
148 | 320 | ||
149 | 321 | ||
150 | STARTTYPE Volume | 322 | STARTTYPE Volume |
151 | STND litres | 323 | STND litres |
152 | 324 | ||
153 | NAME cu cm | 325 | NAME cu cm |
154 | RATIO 1000 | 326 | RATIO 1000 |
327 | PREOFF 0.0 | ||
328 | POSTOFF 0.0 | ||
329 | |||
155 | 330 | ||
156 | NAME ml | 331 | NAME ml |
157 | RATIO 1000 | 332 | RATIO 1000 |
333 | PREOFF 0.0 | ||
334 | POSTOFF 0.0 | ||
335 | |||
158 | 336 | ||
159 | NAME l | 337 | NAME l |
160 | RATIO 1 | 338 | RATIO 1 |
339 | PREOFF 0.0 | ||
340 | POSTOFF 0.0 | ||
341 | |||
161 | 342 | ||
162 | NAME tblspoon | 343 | NAME tblspoon |
163 | RATIO 67.6280454036859 | 344 | RATIO 67.6280454036859 |
345 | PREOFF 0.0 | ||
346 | POSTOFF 0.0 | ||
347 | |||
164 | 348 | ||
165 | NAME teaspoons | 349 | NAME teaspoons |
166 | RATIO 202.884136211058 | 350 | RATIO 202.884136211058 |
351 | PREOFF 0.0 | ||
352 | POSTOFF 0.0 | ||
353 | |||
167 | 354 | ||
168 | NAME cu in | 355 | NAME cu in |
169 | RATIO 61.0237440947323 | 356 | RATIO 61.0237440947323 |
357 | PREOFF 0.0 | ||
358 | POSTOFF 0.0 | ||
359 | |||
170 | 360 | ||
171 | NAME cu ft | 361 | NAME cu ft |
172 | RATIO 0.0353146667214886 | 362 | RATIO 0.0353146667214886 |
363 | PREOFF 0.0 | ||
364 | POSTOFF 0.0 | ||
365 | |||
173 | 366 | ||
174 | NAME pt | 367 | NAME pt |
175 | RATIO 2.11337641886519 | 368 | RATIO 2.11337641886519 |
369 | PREOFF 0.0 | ||
370 | POSTOFF 0.0 | ||
371 | |||
176 | 372 | ||
177 | NAME qt | 373 | NAME qt |
178 | RATIO 1.05668820943259 | 374 | RATIO 1.05668820943259 |
375 | PREOFF 0.0 | ||
376 | POSTOFF 0.0 | ||
377 | |||
179 | 378 | ||
180 | NAME gal (US) | 379 | NAME gal (US) |
181 | RATIO 0.264172052358148 | 380 | RATIO 0.264172052358148 |
381 | PREOFF 0.0 | ||
382 | POSTOFF 0.0 | ||
383 | |||
182 | 384 | ||
183 | NAME | 385 | NAME |
184 | RATIO 1. | 386 | RATIO 1. |
387 | PREOFF 0.0 | ||
388 | POSTOFF 0.0 | ||
389 | |||
185 | 390 | ||
186 | NAME | 391 | NAME |
187 | RATIO 1. | 392 | RATIO 1. |
393 | PREOFF 0.0 | ||
394 | POSTOFF 0.0 | ||
395 | |||
188 | 396 | ||
189 | ENDTYPE | 397 | ENDTYPE |
190 | 398 | ||
191 | Extra units | 399 | Extra units |
192 | 400 | ||
193 | NAME fl oz (US) | 401 | NAME fl oz (US) |
194 | RATIO 33.8140227018429 | 402 | RATIO 33.8140227018429 |
403 | PREOFF 0.0 | ||
404 | POSTOFF 0.0 | ||
405 | |||
195 | 406 | ||
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 | |||
@@ -1,44 +1,49 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
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 | ||
27 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
28 | #include <qcombobox.h> | 33 | #include <qcombobox.h> |
29 | #include <qlabel.h> | 34 | #include <qlabel.h> |
30 | #include <qfont.h> | 35 | #include <qfont.h> |
31 | #include <qlayout.h> | 36 | #include <qlayout.h> |
32 | #include <qstringlist.h> | 37 | #include <qstringlist.h> |
33 | #include <qfile.h> | 38 | #include <qfile.h> |
34 | #include <qtextstream.h> | 39 | #include <qtextstream.h> |
35 | #include <qmessagebox.h> | 40 | #include <qmessagebox.h> |
36 | #include <math.h> | 41 | #include <math.h> |
37 | 42 | ||
38 | CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, | 43 | CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, |
39 | WFlags f ) | 44 | WFlags f ) |
40 | : Calculator( parent, name, f ) | 45 | : Calculator( parent, name, f ) |
41 | { | 46 | { |
42 | xtopowerofy = Resource::loadPixmap("xtopowerofy"); | 47 | xtopowerofy = Resource::loadPixmap("xtopowerofy"); |
43 | ythrootofx = Resource::loadPixmap("ythrootofx"); | 48 | ythrootofx = Resource::loadPixmap("ythrootofx"); |
44 | oneoverx = Resource::loadPixmap("oneoverx"); | 49 | oneoverx = Resource::loadPixmap("oneoverx"); |
@@ -113,67 +118,74 @@ CalculatorImpl::CalculatorImpl( QWidget * parent, const char * name, | |||
113 | ComboBoxFunction->insertItem(captions.last()); | 118 | ComboBoxFunction->insertItem(captions.last()); |
114 | 119 | ||
115 | // now add in the conversion modes | 120 | // now add in the conversion modes |
116 | // when the menu gets done, these should be in a submenu | 121 | // when the menu gets done, these should be in a submenu |
117 | QString tmp = QPEApplication::qpeDir(); | 122 | QString tmp = QPEApplication::qpeDir(); |
118 | tmp += "/etc/unit_conversion.dat"; | 123 | tmp += "/etc/unit_conversion.dat"; |
119 | QFile myfile(tmp); | 124 | QFile myfile(tmp); |
120 | if ( !myfile.open( IO_Translate | IO_ReadOnly ) ) { | 125 | if ( !myfile.open( IO_Translate | IO_ReadOnly ) ) { |
121 | // QMessageBox::warning(this, "Warning", "Data file\nunit_conversion.dat\nnot found\nNo conversion\nfeatures will\nbe available"); | 126 | // QMessageBox::warning(this, "Warning", "Data file\nunit_conversion.dat\nnot found\nNo conversion\nfeatures will\nbe available"); |
122 | // disable the f button if no conv file available | 127 | // disable the f button if no conv file available |
123 | ComboBoxFunction->setEnabled(FALSE); | 128 | ComboBoxFunction->setEnabled(FALSE); |
124 | } | 129 | } |
125 | else { | 130 | else { |
126 | QString line, line2; | 131 | QString line, line2; |
127 | QTextStream ts(&myfile); | 132 | QTextStream ts(&myfile); |
128 | 133 | ||
129 | // first pass, see how many conversion types there are in order to allocate for them | 134 | // first pass, see how many conversion types there are in order to allocate for them |
130 | while ( ! ts.eof() ) { | 135 | while ( ! ts.eof() ) { |
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; |
144 | while ( ! ts2.eof() ) { | 150 | while ( ! ts2.eof() ) { |
145 | line = ts2.readLine(); | 151 | line = ts2.readLine(); |
146 | if ( line.contains("STARTTYPE") ) { | 152 | if ( line.contains("STARTTYPE") ) { |
147 | captions << line.remove(0,10); | 153 | captions << line.remove(0,10); |
148 | ComboBoxFunction->insertItem(captions.last()); | 154 | ComboBoxFunction->insertItem(captions.last()); |
149 | while ( !line.contains("ENDTYPE") ) { | 155 | while ( !line.contains("ENDTYPE") ) { |
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 | } |
162 | myfile.close(); | 174 | myfile.close(); |
163 | clear(); | 175 | clear(); |
164 | max_mode = pre_conv_modes_count + conversion_mode_count + post_conv_modes_count - 1; | 176 | max_mode = pre_conv_modes_count + conversion_mode_count + post_conv_modes_count - 1; |
165 | display_pixmap_faces(); | 177 | display_pixmap_faces(); |
166 | 178 | ||
167 | qApp->installEventFilter( this ); | 179 | qApp->installEventFilter( this ); |
168 | } | 180 | } |
169 | 181 | ||
170 | bool CalculatorImpl::eventFilter( QObject *o, QEvent *e ) | 182 | bool CalculatorImpl::eventFilter( QObject *o, QEvent *e ) |
171 | { | 183 | { |
172 | if ( e->type() == QEvent::KeyPress && state != sError ) { | 184 | if ( e->type() == QEvent::KeyPress && state != sError ) { |
173 | QKeyEvent *k = (QKeyEvent*)e; | 185 | QKeyEvent *k = (QKeyEvent*)e; |
174 | if ( k->key() >= Key_0 && k->key() <= Key_9 ) { | 186 | if ( k->key() >= Key_0 && k->key() <= Key_9 ) { |
175 | enterNumber( k->key() - Key_0 ); | 187 | enterNumber( k->key() - Key_0 ); |
176 | return true; | 188 | return true; |
177 | } else { | 189 | } else { |
178 | switch ( k->key() ) { | 190 | switch ( k->key() ) { |
179 | case Key_Equal: | 191 | case Key_Equal: |
@@ -199,58 +211,60 @@ bool CalculatorImpl::eventFilter( QObject *o, QEvent *e ) | |||
199 | return true; | 211 | return true; |
200 | case Key_ParenLeft: | 212 | case Key_ParenLeft: |
201 | if ( current_mode < pre_conv_modes_count ) | 213 | if ( current_mode < pre_conv_modes_count ) |
202 | execOp( oOpenBrace ); | 214 | execOp( oOpenBrace ); |
203 | return true; | 215 | return true; |
204 | case Key_ParenRight: | 216 | case Key_ParenRight: |
205 | if ( current_mode < pre_conv_modes_count ) | 217 | if ( current_mode < pre_conv_modes_count ) |
206 | execOp( oCloseBrace ); | 218 | execOp( oCloseBrace ); |
207 | return true; | 219 | return true; |
208 | default: | 220 | default: |
209 | break; | 221 | break; |
210 | } | 222 | } |
211 | } | 223 | } |
212 | } | 224 | } |
213 | return Calculator::eventFilter( o, e ); | 225 | return Calculator::eventFilter( o, e ); |
214 | } | 226 | } |
215 | 227 | ||
216 | void CalculatorImpl::do_convert(int button) { | 228 | 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 | } |
239 | } | 253 | } |
240 | 254 | ||
241 | 255 | ||
242 | void CalculatorImpl::function_button(int mode){ | 256 | void CalculatorImpl::function_button(int mode){ |
243 | if ( state == sError ) | 257 | if ( state == sError ) |
244 | clear(); | 258 | clear(); |
245 | // dont need the next line when using a popup menu | 259 | // dont need the next line when using a popup menu |
246 | current_mode = mode; | 260 | current_mode = mode; |
247 | 261 | ||
248 | // reset the last conv | 262 | // reset the last conv |
249 | last_conversion = -1; | 263 | last_conversion = -1; |
250 | 264 | ||
251 | // set the caption | 265 | // set the caption |
252 | this->setCaption( captions[current_mode] ); | 266 | this->setCaption( captions[current_mode] ); |
253 | 267 | ||
254 | reset_conv(); | 268 | reset_conv(); |
255 | 269 | ||
256 | for ( int x = 0 ; x < changeable_func_button_count ; x++ ) { | 270 | for ( int x = 0 ; x < changeable_func_button_count ; x++ ) { |
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 | |||
@@ -103,33 +103,35 @@ private: | |||
103 | 103 | ||
104 | void execOp( Operation i ); | 104 | void execOp( Operation i ); |
105 | double evalExpr( int op ); | 105 | double evalExpr( int op ); |
106 | QLabel * memMark; | 106 | QLabel * memMark; |
107 | QString fake; | 107 | QString fake; |
108 | 108 | ||
109 | // useful values for conversion stuff | 109 | // useful values for conversion stuff |
110 | int current_mode, max_mode, conversion_mode_count, last_conversion; | 110 | int current_mode, max_mode, conversion_mode_count, last_conversion; |
111 | 111 | ||
112 | // make adding new modes easier for ourselves | 112 | // make adding new modes easier for ourselves |
113 | static const int pre_conv_modes_count = 1; | 113 | static const int pre_conv_modes_count = 1; |
114 | static const int post_conv_modes_count = 0; | 114 | static const int post_conv_modes_count = 0; |
115 | 115 | ||
116 | // an array of pointers to the func buttons | 116 | // an array of pointers to the func buttons |
117 | static const int func_button_count = 12; | 117 | static const int func_button_count = 12; |
118 | // this is an abomination | 118 | // this is an abomination |
119 | static const int changeable_func_button_count = 10; | 119 | static const int changeable_func_button_count = 10; |
120 | QPushButton* func_buttons[func_button_count]; | 120 | QPushButton* func_buttons[func_button_count]; |
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); |
133 | }; | 135 | }; |
134 | 136 | ||
135 | #endif | 137 | #endif |