477 |
477 |
478 |
478 |
479 void EditRecipe::w2_volume_changed(double val) |
479 void EditRecipe::w2_volume_changed(double val) |
480 { |
480 { |
481 qDebug() << "w2_vol_changed" << val; |
481 qDebug() << "w2_vol_changed" << val; |
|
482 |
|
483 if (recipe->w2_total_alkalinity && recipe->w2_sulfate) { |
|
484 /* |
|
485 * Seems a valid water, but don't go over the total. |
|
486 */ |
|
487 if (val < (recipe->w1_amount + recipe->w2_amount)) { |
|
488 recipe->w1_amount -= val - recipe->w2_amount; |
|
489 recipe->w2_amount = val; |
|
490 ui->w1_volEdit->setValue(recipe->w1_amount); |
|
491 } |
|
492 } else { |
|
493 /* |
|
494 * Invalid water, block changes. |
|
495 */ |
|
496 recipe->w2_amount = 0; |
|
497 } |
|
498 ui->w2_volEdit->setValue(recipe->w2_amount); |
|
499 |
|
500 calcWater(); |
|
501 is_changed(); |
|
502 } |
|
503 |
|
504 |
|
505 void EditRecipe::w1_name_changed(int val) |
|
506 { |
|
507 QSqlQuery query; |
|
508 |
|
509 qDebug() << "w1_name_changed" << val; |
|
510 if (val == 0) { |
|
511 /* |
|
512 * If no water is selected, take the default water. |
|
513 */ |
|
514 this->ignoreChanges = true; |
|
515 val = my_default_water; |
|
516 ui->w1_nameEdit->setCurrentIndex(val); |
|
517 this->ignoreChanges = false; |
|
518 } |
|
519 |
|
520 query.prepare("SELECT * FROM inventory_waters ORDER BY record"); |
|
521 query.exec(); |
|
522 query.first(); |
|
523 for (int i = 0; i < (val - 1); i++) { |
|
524 query.next(); |
|
525 } |
|
526 qDebug() << "set water" << query.value(1).toString(); |
|
527 |
|
528 recipe->w1_calcium = query.value(3).toDouble(); |
|
529 recipe->w1_magnesium = query.value(8).toDouble(); |
|
530 recipe->w1_total_alkalinity = query.value(11).toDouble(); |
|
531 recipe->w1_sodium = query.value(7).toDouble(); |
|
532 recipe->w1_chloride = query.value(6).toDouble(); |
|
533 recipe->w1_sulfate = query.value(5).toDouble(); |
|
534 recipe->w1_ph = query.value(9).toDouble(); |
|
535 |
|
536 ui->w1_caEdit->setValue(recipe->w1_calcium); |
|
537 ui->w1_mgEdit->setValue(recipe->w1_magnesium); |
|
538 ui->w1_hco3Edit->setValue(recipe->w1_total_alkalinity * 1.22); |
|
539 ui->w1_caco3Edit->setValue(recipe->w1_total_alkalinity); |
|
540 ui->w1_naEdit->setValue(recipe->w1_sodium); |
|
541 ui->w1_clEdit->setValue(recipe->w1_chloride); |
|
542 ui->w1_so4Edit->setValue(recipe->w1_sulfate); |
|
543 ui->w1_phEdit->setValue(recipe->w1_ph); |
|
544 |
|
545 is_changed(); |
|
546 calcWater(); |
|
547 } |
|
548 |
|
549 |
|
550 void EditRecipe::w2_name_changed(int val) |
|
551 { |
|
552 QSqlQuery query; |
|
553 |
|
554 qDebug() << "w2_name_changed" << val; |
|
555 |
|
556 if (val == 0) { // Clear water 2. |
|
557 recipe->w2_calcium = 0; |
|
558 recipe->w2_magnesium = 0; |
|
559 recipe->w2_total_alkalinity = 0; |
|
560 recipe->w2_sodium = 0; |
|
561 recipe->w2_chloride = 0; |
|
562 recipe->w2_sulfate = 0; |
|
563 recipe->w2_ph = 0; |
|
564 recipe->w1_amount += recipe->w2_amount; |
|
565 recipe->w2_amount = 0; |
|
566 } else { |
|
567 query.prepare("SELECT * FROM inventory_waters ORDER BY record"); |
|
568 query.exec(); |
|
569 query.first(); |
|
570 for (int i = 0; i < (val - 1); i++) { |
|
571 query.next(); |
|
572 } |
|
573 qDebug() << "set water" << query.value(1).toString(); |
|
574 |
|
575 recipe->w2_calcium = query.value(3).toDouble(); |
|
576 recipe->w2_magnesium = query.value(8).toDouble(); |
|
577 recipe->w2_total_alkalinity = query.value(11).toDouble(); |
|
578 recipe->w2_sodium = query.value(7).toDouble(); |
|
579 recipe->w2_chloride = query.value(6).toDouble(); |
|
580 recipe->w2_sulfate = query.value(5).toDouble(); |
|
581 recipe->w2_ph = query.value(9).toDouble(); |
|
582 } |
|
583 ui->w1_volEdit->setValue(recipe->w1_amount); |
|
584 ui->w2_volEdit->setValue(recipe->w2_amount); |
|
585 ui->w2_caEdit->setValue(recipe->w2_calcium); |
|
586 ui->w2_mgEdit->setValue(recipe->w2_magnesium); |
|
587 ui->w2_hco3Edit->setValue(recipe->w2_total_alkalinity * 1.22); |
|
588 ui->w2_caco3Edit->setValue(recipe->w2_total_alkalinity); |
|
589 ui->w2_naEdit->setValue(recipe->w2_sodium); |
|
590 ui->w2_clEdit->setValue(recipe->w2_chloride); |
|
591 ui->w2_so4Edit->setValue(recipe->w2_sulfate); |
|
592 ui->w2_phEdit->setValue(recipe->w2_ph); |
|
593 |
|
594 is_changed(); |
|
595 calcWater(); |
482 } |
596 } |
483 |
597 |
484 |
598 |
485 void EditRecipe::wt_target_changed(int val) |
599 void EditRecipe::wt_target_changed(int val) |
486 { |
600 { |