Diff 2 HTML: orig/kalkulacka2/ckalkulacka.cpp vs. kalkulacka2/ckalkulacka.cpp

orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
9    l_first = 0;9    l_first = 0;
10    l_second = 0;10    l_second = 0;
11    l_finish = 0;11    l_finish = 0;
n12    l_operator = -1; n12    l_operator = OperatorNone;
1313
14    ui->VYSLEDEK->setText("0");14    ui->VYSLEDEK->setText("0");
15}15}
orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
24    l_first = 0;24    l_first = 0;
25    l_second = 0;25    l_second = 0;
26    l_finish = 0;26    l_finish = 0;
n27    l_operator = -1; n27    l_operator = OperatorNone;
2828
29    ui->VYSLEDEK->setText("0");29    ui->VYSLEDEK->setText("0");
30    SetDisableAll(false);30    SetDisableAll(false);
31}31}
3232
nn33void CKalkulacka::handleNumericalButton(int aNumber)
34{
35    //QString a_str = ui->VYSLEDEK->text();
36    QString a_str(ui->VYSLEDEK->text()); // usetri jeden tmp objekt
37    QString input;
38    input.setNum(aNumber, 10); // pouze dekadicky
39
40    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
41        a_str = "0";
42
43    if (a_str == "0" && a_str != "-0")
44        a_str = input;
45    else if (a_str == "-0")
46        a_str = "-" + input;
47    else
48        a_str += input;
49
50    if (l_operator == -1)
51    {
52        l_first = a_str.toDouble();
53    }
54    else
55        l_second = a_str.toDouble();
56
57    ui->pushButton_3->setDisabled(false);
58    ui->VYSLEDEK->setText(a_str);
59}
60
33void CKalkulacka::on_JEDNA_released()61void CKalkulacka::on_JEDNA_released()
34{62{
n35    QString a_str = ui->VYSLEDEK->text(); n63    handleNumericalButton(1);
36
37    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
38        a_str = "0";
39
40    if (a_str == "0" && a_str != "-0")
41        a_str = "1";
42    else if (a_str == "-0")
43        a_str = "-1";
44    else
45        a_str += "1";
46
47    if (l_operator == -1)
48    {
49        l_first = a_str.toDouble();
50    }
51    else
52        l_second = a_str.toDouble();
53
54    ui->pushButton_3->setDisabled(false);
55    ui->VYSLEDEK->setText(a_str);
56}64}
5765
58void CKalkulacka::on_NULA_released()66void CKalkulacka::on_NULA_released()
59{67{
n60    QString a_str = ui->VYSLEDEK->text(); n68    handleNumericalButton(0);
61
62    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
63        a_str = "0";
64
65    if (a_str.length() > 1 && a_str != "-0" || a_str != "0" && a_str != "-0")
66        a_str += "0";
67
68    if (l_operator == -1)
69    {
70        l_first = a_str.toDouble();
71    }
72    else
73        l_second = a_str.toDouble();
74
75    ui->pushButton_3->setDisabled(false);
76    ui->VYSLEDEK->setText(a_str);
77}69}
7870
79void CKalkulacka::on_DVA_released()71void CKalkulacka::on_DVA_released()
nn72{
73    handleNumericalButton(2);
74}
75
76void CKalkulacka::on_TRI_released()
77{
78    handleNumericalButton(3);
79}
80
81void CKalkulacka::on_CTYRI_released()
82{
83    handleNumericalButton(4);
84}
85
86void CKalkulacka::on_PET_released()
87{
88    handleNumericalButton(5);
89}
90
91void CKalkulacka::on_SEST_released()
92{
93    handleNumericalButton(6);
94}
95
96void CKalkulacka::on_SEDM_released()
97{
98    handleNumericalButton(7);
99}
100
101void CKalkulacka::on_OSM_released()
102{
103    handleNumericalButton(8);
104}
105
106void CKalkulacka::on_DEVET_released()
107{
108    handleNumericalButton(9);
109}
110
111void CKalkulacka::on_pushButton_6_released()
80{112{
81    QString a_str = ui->VYSLEDEK->text();113    QString a_str = ui->VYSLEDEK->text();
82    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")114    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
83        a_str = "0";115        a_str = "0";
84116
n85    if (a_str == "0" && a_str != "-0") n117    if (a_str.indexOf(".") == -1 && a_str.indexOf(",") == -1)
86        a_str = "2";
87    else if (a_str == "-0")
88        a_str = "-2";
89    else
90        a_str += "2";118        a_str += ".";
119    else
120        return;
91121
n92    if (l_operator == -1)n122    if (l_operator == OperatorNone)
93    {123    {
94        l_first = a_str.toDouble();124        l_first = a_str.toDouble();
95    }125    }
orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
100    ui->VYSLEDEK->setText(a_str);130    ui->VYSLEDEK->setText(a_str);
101}131}
102132
n103void CKalkulacka::on_TRI_released()n133void CKalkulacka::on_pushButton_5_released()
104{134{
105    QString a_str = ui->VYSLEDEK->text();135    QString a_str = ui->VYSLEDEK->text();
106    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")136    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
107        a_str = "0";137        a_str = "0";
108138
n109   if (a_str == "0" && a_str != "-0") n
110        a_str = "3";
111    else if (a_str == "-0")
112        a_str = "-3";
113    else
114        a_str += "3";
115
116    if (l_operator == -1)
117    {
118        l_first = a_str.toDouble();
119    }
120    else
121        l_second = a_str.toDouble();
122
123    ui->pushButton_3->setDisabled(false);
124    ui->VYSLEDEK->setText(a_str);
125}
126
127void CKalkulacka::on_CTYRI_released()
128{
129    QString a_str = ui->VYSLEDEK->text();
130    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
131        a_str = "0";
132
133    if (a_str == "0" && a_str != "-0")
134        a_str = "4";
135    else if (a_str == "-0")
136        a_str = "-4";
137    else
138        a_str += "4";
139
140    if (l_operator == -1)
141    {
142        l_first = a_str.toDouble();
143    }
144    else
145        l_second = a_str.toDouble();
146
147    ui->pushButton_3->setDisabled(false);
148    ui->VYSLEDEK->setText(a_str);
149}
150
151void CKalkulacka::on_PET_released()
152{
153    QString a_str = ui->VYSLEDEK->text();
154    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
155        a_str = "0";
156
157    if (a_str == "0" && a_str != "-0")
158        a_str = "5";
159    else if (a_str == "-0")
160        a_str = "-5";
161    else
162        a_str += "5";
163
164    if (l_operator == -1)
165    {
166        l_first = a_str.toDouble();
167    }
168    else
169        l_second = a_str.toDouble();
170
171    ui->pushButton_3->setDisabled(false);
172    ui->VYSLEDEK->setText(a_str);
173}
174
175void CKalkulacka::on_SEST_released()
176{
177    QString a_str = ui->VYSLEDEK->text();
178    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
179        a_str = "0";
180
181    if (a_str == "0" && a_str != "-0")
182        a_str = "6";
183    else if (a_str == "-0")
184        a_str = "-6";
185    else
186        a_str += "6";
187
188    if (l_operator == -1)
189    {
190        l_first = a_str.toDouble();
191    }
192    else
193        l_second = a_str.toDouble();
194
195    ui->pushButton_3->setDisabled(false);
196    ui->VYSLEDEK->setText(a_str);
197}
198
199void CKalkulacka::on_SEDM_released()
200{
201    QString a_str = ui->VYSLEDEK->text();
202    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
203        a_str = "0";
204
205    if (a_str == "0" && a_str != "-0")
206        a_str = "7";
207    else if (a_str == "-0")
208        a_str = "-7";
209    else
210        a_str += "7";
211
212    if (l_operator == -1)
213    {
214        l_first = a_str.toDouble();
215    }
216    else
217        l_second = a_str.toDouble();
218
219    ui->pushButton_3->setDisabled(false);
220    ui->VYSLEDEK->setText(a_str);
221}
222
223void CKalkulacka::on_OSM_released()
224{
225    QString a_str = ui->VYSLEDEK->text();
226    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
227        a_str = "0";
228
229    if (a_str == "0" && a_str != "-0")
230        a_str = "8";
231    else if (a_str == "-0")
232        a_str = "-8";
233    else
234        a_str += "8";
235
236    if (l_operator == -1)
237    {
238        l_first = a_str.toDouble();
239    }
240    else
241        l_second = a_str.toDouble();
242
243    ui->pushButton_3->setDisabled(false);
244    ui->VYSLEDEK->setText(a_str);
245}
246
247void CKalkulacka::on_DEVET_released()
248{
249    QString a_str = ui->VYSLEDEK->text();
250    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
251        a_str = "0";
252
253    if (a_str == "0" && a_str != "-0")
254        a_str = "9";
255    else if (a_str == "-0")
256        a_str = "-9";
257    else
258        a_str += "9";
259
260    if (l_operator == -1)
261    {
262        l_first = a_str.toDouble();
263    }
264    else
265        l_second = a_str.toDouble();
266
267    ui->pushButton_3->setDisabled(false);
268    ui->VYSLEDEK->setText(a_str);
269}
270
271void CKalkulacka::on_pushButton_6_released()
272{
273    QString a_str = ui->VYSLEDEK->text();
274    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
275        a_str = "0";
276
277    if (a_str.indexOf(".") == -1 && a_str.indexOf(",") == -1)
278        a_str += ".";
279    else
280        return;
281
282    if (l_operator == -1)
283    {
284        l_first = a_str.toDouble();
285    }
286    else
287        l_second = a_str.toDouble();
288
289    ui->pushButton_3->setDisabled(false);
290    ui->VYSLEDEK->setText(a_str);
291}
292
293void CKalkulacka::on_pushButton_5_released()
294{
295    QString a_str = ui->VYSLEDEK->text();
296    if (a_str == "+" || a_str == "-" || a_str == "/" || a_str == "*")
297        a_str = "0";
298
299    if (a_str.indexOf("-") != -1)139    if (a_str.indexOf("-") != -1)
300        a_str.remove(0, 1);140        a_str.remove(0, 1);
301    else141    else
302        a_str = "-"+a_str;142        a_str = "-"+a_str;
303143
n304    if (l_operator == -1)n144    if (l_operator == OperatorNone)
305    {145    {
306        l_first = a_str.toDouble();146        l_first = a_str.toDouble();
307    }147    }
orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
312    ui->VYSLEDEK->setText(a_str);152    ui->VYSLEDEK->setText(a_str);
313}153}
314154
nn155void CKalkulacka::handleOperators(Operators o)
156{
157    QString a_str(ui->VYSLEDEK->text());
158    QList<QString> l;
159    l << "none" << "+" << "-" << "*" << "/";
160
161    l_first = a_str.toDouble();
162    l_operator = o;
163    ui->pushButton_3->setDisabled(true);
164
165    ui->VYSLEDEK->setText(l.at(o));
166}
167
315void CKalkulacka::on_pushButton_7_released()168void CKalkulacka::on_pushButton_7_released()
316{169{
n317    QString a_str = ui->VYSLEDEK->text(); n170    handleOperators(CKalkulacka::OperatorPlus);
318
319    l_first = a_str.toDouble();
320    l_operator = 1;
321    ui->pushButton_3->setDisabled(true);
322
323    ui->VYSLEDEK->setText("+");
324}171}
325172
326void CKalkulacka::on_pushButton_8_released()173void CKalkulacka::on_pushButton_8_released()
327{174{
n328    QString a_str = ui->VYSLEDEK->text(); n175    handleOperators(CKalkulacka::OperatorMinus);
329
330    l_first = a_str.toDouble();
331    l_operator = 2;
332    ui->pushButton_3->setDisabled(true);
333
334    ui->VYSLEDEK->setText("-");
335}176}
336177
337void CKalkulacka::on_pushButton_9_released()178void CKalkulacka::on_pushButton_9_released()
338{179{
n339    QString a_str = ui->VYSLEDEK->text(); n180    handleOperators(CKalkulacka::OperatorMultiply);
340
341    l_first = a_str.toDouble();
342    l_operator = 3;
343    ui->pushButton_3->setDisabled(true);
344
345    ui->VYSLEDEK->setText("*");
346}181}
347182
348void CKalkulacka::on_pushButton_10_released()183void CKalkulacka::on_pushButton_10_released()
349{184{
n350    QString a_str = ui->VYSLEDEK->text(); n185    handleOperators(CKalkulacka::OperatorDivide);
351
352    l_first = a_str.toDouble();
353    l_operator = 4;
354    ui->pushButton_3->setDisabled(true);
355
356    ui->VYSLEDEK->setText("/");
357}186}
358187
359void CKalkulacka::on_ROVNASE_released()188void CKalkulacka::on_ROVNASE_released()
360{189{
n361    char a_buffer[255]; n190    char a_buffer[255]; // WTF? Proc 255? Proc to vubec omezovat?
362191
363    switch(l_operator)192    switch(l_operator)
364    {193    {
n365        case 1: n194        case OperatorPlus:
366            l_finish = l_first + l_second;195            l_finish = l_first + l_second;
n367            sprintf(a_buffer, "%g", (double)l_finish); n
368            ui->VYSLEDEK->setText(a_buffer);
369            ui->pushButton_3->setDisabled(true);
370            break;196            break;
n371        case 2: n197        case OperatorMinus:
372            l_finish = l_first - l_second;198            l_finish = l_first - l_second;
n373            sprintf(a_buffer, "%g", (double)l_finish); n
374            ui->VYSLEDEK->setText(a_buffer);
375            ui->pushButton_3->setDisabled(true);
376            break;199            break;
n377        case 3: n200        case OperatorMultiply:
378            l_finish = l_first * l_second;201            l_finish = l_first * l_second;
n379            sprintf(a_buffer, "%g", (double)l_finish); n
380            ui->VYSLEDEK->setText(a_buffer);
381            ui->pushButton_3->setDisabled(true);
382            break;202            break;
n383        case 4: n203        case OperatorDivide:
384            if (l_second != 0)204            if (l_second != 0)
n385            { n
386                l_finish = l_first / l_second;205                l_finish = l_first / l_second;
n387                sprintf(a_buffer, "%g", (double)l_finish); n
388                ui->VYSLEDEK->setText(a_buffer);
389                ui->pushButton_3->setDisabled(true);
390            }
391            else206            else
392            {207            {
393                ui->VYSLEDEK->setText("error");208                ui->VYSLEDEK->setText("error");
394                ui->pushButton_3->setDisabled(true);209                ui->pushButton_3->setDisabled(true);
395                SetDisableAll(true);210                SetDisableAll(true);
nn211                return;
396            }212            }
n397 n
398            break;213            break;
nn214        default:
215            qDebug("None operator in ROVNASE slot...");
399    }216    }
nn217    sprintf(a_buffer, "%g", (double)l_finish);
218    ui->VYSLEDEK->setText(a_buffer);
219    ui->pushButton_3->setDisabled(true);
400}220}
401221
402void CKalkulacka::on_pushButton_3_released()222void CKalkulacka::on_pushButton_3_released()
orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
408    else if (a_str.length() == 1 || (a_str.length() == 2 && a_str.indexOf("-") != -1))228    else if (a_str.length() == 1 || (a_str.length() == 2 && a_str.indexOf("-") != -1))
409        a_str = "0";229        a_str = "0";
410230
n411    if (l_operator == -1)n231    if (l_operator == OperatorNone)
412    {232    {
413        l_first = a_str.toDouble();233        l_first = a_str.toDouble();
414    }234    }
orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
422{242{
423    QString a_str("0");243    QString a_str("0");
424244
n425    if (l_operator == -1)n245    if (l_operator == OperatorNone)
426    {246    {
427        l_first = a_str.toDouble();247        l_first = a_str.toDouble();
428    }248    }
orig/kalkulacka2/ckalkulacka.cppkalkulacka2/ckalkulacka.cpp
434254
435void CKalkulacka::SetDisableAll(bool a_enabled)255void CKalkulacka::SetDisableAll(bool a_enabled)
436{256{
n437    ui->JEDNA->setDisabled(a_enabled); n257    // To asi bude lepsi nez rucne vypsany seznam tlacitek.
438    ui->DVA->setDisabled(a_enabled); 258    // Zvlaste, kdyz se kdykoli muze pridat dalsi...
439    ui->TRI->setDisabled(a_enabled); 259    QList<QPushButton *> buttons = this->findChildren<QPushButton *>();
440    ui->CTYRI->setDisabled(a_enabled); 260    foreach(QPushButton * o, buttons)
441    ui->PET->setDisabled(a_enabled); 261        o->setDisabled(a_enabled);
442    ui->SEST->setDisabled(a_enabled);
443    ui->SEDM->setDisabled(a_enabled);
444    ui->OSM->setDisabled(a_enabled);
445    ui->DEVET->setDisabled(a_enabled);
446    ui->NULA->setDisabled(a_enabled);
447    ui->pushButton_10->setDisabled(a_enabled);
448    ui->pushButton_2->setDisabled(a_enabled);
449    ui->pushButton_3->setDisabled(a_enabled);
450    ui->pushButton_5->setDisabled(a_enabled);
451    ui->pushButton_6->setDisabled(a_enabled);
452    ui->pushButton_9->setDisabled(a_enabled);
453    ui->pushButton_8->setDisabled(a_enabled);
454    ui->pushButton_7->setDisabled(a_enabled);
455    ui->ROVNASE->setDisabled(a_enabled);
456}262}
457263
458void CKalkulacka::keyPressEvent ( QKeyEvent * event )264void CKalkulacka::keyPressEvent ( QKeyEvent * event )
459{265{
tt266    // jen finta na umlceni prekladace
267    Q_UNUSED(event);
460}268}