src/PrinterDialog.cpp

changeset 160
2b62a032079f
parent 159
231f5c8002e3
child 175
f1ed3a2a94e9
equal deleted inserted replaced
159:231f5c8002e3 160:2b62a032079f
309 } 309 }
310 } else if (p_job == PR_RECIPE) { 310 } else if (p_job == PR_RECIPE) {
311 311
312 printHeader(&painter); 312 printHeader(&painter);
313 y = 120; 313 y = 120;
314 /* Fermentables supplies header */ 314 /* Generic header */
315 painter.setFont(QFont("Helvetica", 9, QFont::Bold)); 315 painter.setFont(QFont("Helvetica", 9, QFont::Bold));
316 painter.setPen(Qt::black); 316 painter.setPen(Qt::black);
317 painter.fillRect( 0, y, 735, 20, c_header); 317 painter.fillRect( 0, y, 735, 20, c_header);
318 painter.drawText( 0, y+4, 735, 20, Qt::AlignCenter, tr("Recipe overview")); 318 painter.drawText( 0, y+4, 735, 20, Qt::AlignCenter, tr("Recipe overview"));
319 y += 20; 319 y += 20;
493 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); 493 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
494 y += 20; 494 y += 20;
495 } 495 }
496 painter.fillRect(670, y, 60, 20, c_line1); 496 painter.fillRect(670, y, 60, 20, c_line1);
497 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost_yeasts, 1, 'f', 3)); 497 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost_yeasts, 1, 'f', 3));
498 y += 40; 498
499 if ((y + 80 + (recipe->miscs.size() * 20)) > painter.device()->height()) { /* Rows + header + footer + blank */
500 printer->newPage();
501 printHeader(&painter);
502 y = 120;
503 } else {
504 y += 40;
505 }
499 506
500 /* Miscs */ 507 /* Miscs */
501 painter.setFont(QFont("Helvetica", 9, QFont::Bold)); 508 painter.setFont(QFont("Helvetica", 9, QFont::Bold));
502 painter.fillRect( 0, y, 735, 20, c_header); 509 painter.fillRect( 0, y, 735, 20, c_header);
503 painter.drawText( 0, y+4, 410, 20, Qt::AlignLeft, tr("Misc ingredient")); 510 painter.drawText( 0, y+4, 410, 20, Qt::AlignLeft, tr("Misc ingredient"));
533 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); 540 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3));
534 y += 20; 541 y += 20;
535 } 542 }
536 painter.fillRect(670, y, 60, 20, c_line1); 543 painter.fillRect(670, y, 60, 20, c_line1);
537 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost_miscs, 1, 'f', 3)); 544 painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost_miscs, 1, 'f', 3));
538 y += 40; 545
546 if ((y + 60 + (recipe->mashs.size() * 20)) > painter.device()->height()) { /* Rows + header + blank */
547 printer->newPage();
548 printHeader(&painter);
549 y = 120;
550 } else {
551 y += 40;
552 }
539 553
540 /* Mash */ 554 /* Mash */
541 painter.setFont(QFont("Helvetica", 9, QFont::Bold)); 555 painter.setFont(QFont("Helvetica", 9, QFont::Bold));
542 painter.fillRect( 0, y, 735, 20, c_header); 556 painter.fillRect( 0, y, 735, 20, c_header);
543 painter.drawText( 0, y+4, 160, 20, Qt::AlignLeft, tr("Mash step")); 557 painter.drawText( 0, y+4, 160, 20, Qt::AlignLeft, tr("Mash step"));
564 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_infuse_amount, 1, 'f', 1)); 578 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_infuse_amount, 1, 'f', 1));
565 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_infuse_temp, 1, 'f', 1)); 579 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_infuse_temp, 1, 'f', 1));
566 } 580 }
567 y += 20; 581 y += 20;
568 } 582 }
583
584 if ((y + 80 + ((recipe->w2_amount > 0) ? 40:0)) > painter.device()->height()) { /* waters + header + blank */
585 printer->newPage();
586 printHeader(&painter);
587 y = 120;
588 } else {
589 y += 40;
590 }
591
592 /* Water */
593 painter.setFont(QFont("Helvetica", 9, QFont::Bold));
594 painter.fillRect( 0, y, 735, 20, c_header);
595 painter.drawText( 0, y+4, 135, 20, Qt::AlignLeft, tr("Water source"));
596 painter.drawText(135, y+4, 70, 20, Qt::AlignRight, tr("Volume"));
597 painter.drawText(210, y+4, 70, 20, Qt::AlignRight, tr("Ca"));
598 painter.drawText(285, y+4, 70, 20, Qt::AlignRight, tr("Mg"));
599 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, tr("CaCO3"));
600 painter.drawText(435, y+4, 70, 20, Qt::AlignRight, tr("Na"));
601 painter.drawText(510, y+4, 70, 20, Qt::AlignRight, tr("Cl"));
602 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, tr("SO4"));
603 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, tr("pH"));
604 y += 20;
605 painter.setFont(QFont("Helvetica", 9, QFont::Normal));
606 painter.fillRect( 0, y, 735, 20, w_line);
607 painter.drawText( 0, y+4, 135, 20, Qt::AlignLeft, recipe->w1_name);
608 painter.drawText(135, y+4, 70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->w1_amount, 1, 'f', 1));
609 painter.drawText(210, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_calcium, 1, 'f', 1));
610 painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_magnesium, 1, 'f', 1));
611 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_total_alkalinity, 1, 'f', 1));
612 painter.drawText(435, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_sodium, 1, 'f', 1));
613 painter.drawText(510, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_chloride, 1, 'f', 1));
614 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_sulfate, 1, 'f', 1));
615 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w1_ph, 1, 'f', 2));
616 y += 20;
617 if (recipe->w2_amount > 0) {
618 /*
619 * If there is dillution water, show it and the mixed result too.
620 */
621 painter.fillRect( 0, y, 735, 20, w_line);
622 painter.drawText( 0, y+4, 135, 20, Qt::AlignLeft, recipe->w2_name);
623 painter.drawText(135, y+4, 70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->w2_amount, 1, 'f', 1));
624 painter.drawText(210, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_calcium, 1, 'f', 1));
625 painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_magnesium, 1, 'f', 1));
626 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_total_alkalinity, 1, 'f', 1));
627 painter.drawText(435, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_sodium, 1, 'f', 1));
628 painter.drawText(510, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_chloride, 1, 'f', 1));
629 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_sulfate, 1, 'f', 1));
630 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->w2_ph, 1, 'f', 2));
631 y += 20;
632 painter.fillRect( 0, y, 735, 20, w_line);
633 painter.drawText( 0, y+4, 135, 20, Qt::AlignLeft, tr("Mixed water"));
634 painter.drawText(135, y+4, 70, 20, Qt::AlignRight, QString("%1 L").arg(recipe->wg_amount, 1, 'f', 1));
635 painter.drawText(210, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_calcium, 1, 'f', 1));
636 painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_magnesium, 1, 'f', 1));
637 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_total_alkalinity, 1, 'f', 1));
638 painter.drawText(435, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_sodium, 1, 'f', 1));
639 painter.drawText(510, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_chloride, 1, 'f', 1));
640 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_sulfate, 1, 'f', 1));
641 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wg_ph, 1, 'f', 2));
642 y += 20;
643 }
644 painter.fillRect( 0, y, 735, 20, w_line);
645 painter.drawText( 0, y+4, 135, 20, Qt::AlignLeft, tr("Treated water"));
646 painter.drawText(210, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_calcium, 1, 'f', 1));
647 painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_magnesium, 1, 'f', 1));
648 painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_total_alkalinity, 1, 'f', 1));
649 painter.drawText(435, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_sodium, 1, 'f', 1));
650 painter.drawText(510, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_chloride, 1, 'f', 1));
651 painter.drawText(585, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_sulfate, 1, 'f', 1));
652 painter.drawText(660, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(recipe->wb_ph, 1, 'f', 2));
653 y += 20;
569 } 654 }
570 655
656 /*
657 * Print recipe notes if present.
658 */
659 if (recipe->notes.length()) {
660 QStringList lines = recipe->notes.split("\n");
661
662 if (lines.size() && recipe->notes != "") {
663 if ((y + 80 + (lines.size() * 20)) > painter.device()->height()) {
664 printer->newPage();
665 printHeader(&painter);
666 y = 120;
667 } else {
668 y += 40;
669 }
670
671 /* Notes header */
672 painter.setFont(QFont("Helvetica", 9, QFont::Bold));
673 painter.setPen(Qt::black);
674 painter.fillRect( 0, y, 735, 20, c_header);
675 painter.drawText( 0, y+4, 735, 20, Qt::AlignCenter, tr("Recipe notes"));
676 y += 20;
677 painter.setFont(QFont("Helvetica", 9, QFont::Normal));
678 for (int i = 0; i < lines.size(); i++) {
679 painter.fillRect( 0, y, 735, 20, c_line1);
680 painter.drawText( 0, y+4, 735, 20, Qt::AlignLeft, lines[i]);
681 y += 20;
682 }
683 }
684 }
571 685
572 painter.end(); 686 painter.end();
573 } 687 }
574 688
575 689

mercurial