src/EditProductExport.cpp

changeset 268
72e8ade9aff2
parent 267
8af232524e64
child 269
f92db2eabd0d
equal deleted inserted replaced
267:8af232524e64 268:72e8ade9aff2
582 { 582 {
583 double left = vol_availEdit->value(); 583 double left = vol_availEdit->value();
584 584
585 qDebug() << "split_show" << product->splits.size(); 585 qDebug() << "split_show" << product->splits.size();
586 const QSignalBlocker blocker1(splitTable); 586 const QSignalBlocker blocker1(splitTable);
587 split_delButton->setEnabled(product->splits.size() > 0); 587
588 if (product->divide_type == 0) {
589 split_addButton->setEnabled(false);
590 split_addButton->setToolTip("");
591 } else {
592 split_addButton->setEnabled(true);
593 split_addButton->setToolTip(tr("Add a splitted batch"));
594 }
595
596 if (product->splits.size() == 0) {
597 splitatEdit->setEnabled(true);
598 splitatEdit->setToolTip(tr("Choose split moment in the brew process"));
599 split_delButton->setEnabled(false);
600 split_delButton->setToolTip(tr(""));
601 } else {
602 splitatEdit->setEnabled(false);
603 splitatEdit->setToolTip("");
604 split_delButton->setEnabled(true);
605 split_delButton->setToolTip(tr("Delete the last splitted batch"));
606 }
588 607
589 for (int i = 0; i < product->splits.size(); i++) { 608 for (int i = 0; i < product->splits.size(); i++) {
590 609
591 qDebug() << i << product->splits.at(i).code << product->splits.at(i).name << QString::number(product->splits.at(i).size); 610 qDebug() << i << product->splits.at(i).code << product->splits.at(i).name << QString::number(product->splits.at(i).size);
592 splitTable->setItem(i, 0, new QTableWidgetItem(product->splits.at(i).code)); 611
593 splitTable->setItem(i, 1, new QTableWidgetItem(product->splits.at(i).name)); 612 QTableWidgetItem *item = new QTableWidgetItem(product->splits.at(i).code);
594 splitTable->setItem(i, 2, new QTableWidgetItem(QString::number(product->splits.at(i).size, 'f', 1))); 613 item->setFlags(item->flags() ^ Qt::ItemIsEditable);
614 item->setToolTip(tr("The read-only `product code` of the batch"));
615 splitTable->setItem(i, 0, item);
616
617 item = new QTableWidgetItem(product->splits.at(i).name);
618 item->setToolTip(tr("Batch name, click to change the name"));
619 splitTable->setItem(i, 1, item);
620
621 item = new QTableWidgetItem(QString::number(product->splits.at(i).size, 'f', 2));
622 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
623 item->setToolTip(tr("Batch size, click to change the volume"));
624 splitTable->setItem(i, 2, item);
595 left -= product->splits.at(i).size; 625 left -= product->splits.at(i).size;
596 } 626 }
597 627
598 if (left < 0) 628 if (left < 0)
599 left = 0; 629 left = 0;
647 break; 677 break;
648 case 6: vol_availEdit->setValue(product->package_volume); 678 case 6: vol_availEdit->setValue(product->package_volume);
649 break; 679 break;
650 } 680 }
651 product->divide_type = val; 681 product->divide_type = val;
652 split_addButton->setEnabled(product->divide_type != 0);
653 split_show(); 682 split_show();
654 } 683 }
655 684
656 685
657 void EditProduct::split_table_changed(int nRow, int nCol) 686 void EditProduct::split_table_changed(int nRow, int nCol)
658 { 687 {
688 QTableWidgetItem *item;
689
659 qDebug() << "split_table_changed" << nRow << nCol; 690 qDebug() << "split_table_changed" << nRow << nCol;
691
692 if (nCol == 1) {
693 /* Split name is changed. */
694 item = splitTable->item(nRow, nCol);
695 product->splits[nRow].name = item->text();
696 }
697 if (nCol == 2) {
698 item = splitTable->item(nRow, nCol);
699 double vol = item->text().toDouble();
700 double room = vol_availEdit->value();
701
702 for (int i = 0; i < product->splits.size(); i++) {
703 if (i != nRow)
704 room -= product->splits.at(i).size;
705 }
706 qDebug() << vol << room;
707 if (vol > (room - 1)) {
708 product->splits[nRow].size = room - 1;
709 } else {
710 product->splits[nRow].size = round(vol * 100.0) / 100.0;
711 }
712 }
660 713
661 split_show(); 714 split_show();
662 } 715 }
663 716
664 717
671 this->textIsChanged = false; 724 this->textIsChanged = false;
672 } 725 }
673 726
674 QDialog* dialog = new QDialog(this); 727 QDialog* dialog = new QDialog(this);
675 dialog->setWindowTitle(tr("Split product")); 728 dialog->setWindowTitle(tr("Split product"));
676 729 dialog->setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
677 dialog->setObjectName(QString::fromUtf8("SplitDialog")); 730 dialog->setObjectName(QString::fromUtf8("SplitDialog"));
678 dialog->resize(1024, 560); 731 dialog->resize(1024, 560);
732
679 QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog); 733 QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog);
680 buttonBox->setObjectName(QString::fromUtf8("buttonBox")); 734 buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
681 buttonBox->setGeometry(QRect(30, 510, 961, 32)); 735 buttonBox->setGeometry(QRect(30, 510, 961, 32));
682 buttonBox->setOrientation(Qt::Horizontal); 736 buttonBox->setOrientation(Qt::Horizontal);
683 buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); 737 buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
684 buttonBox->setCenterButtons(true); 738 buttonBox->setCenterButtons(true);
739 //buttonBox->button(QDialogButtonBox::Ok)->setDefault(false);
740 //buttonBox->button(QDialogButtonBox::Cancel)->setDefault(false);
685 QLabel *topLabel = new QLabel(dialog); 741 QLabel *topLabel = new QLabel(dialog);
686 topLabel->setObjectName(QString::fromUtf8("topLabel")); 742 topLabel->setObjectName(QString::fromUtf8("topLabel"));
687 topLabel->setGeometry(QRect(30, 20, 961, 31)); 743 topLabel->setGeometry(QRect(30, 20, 961, 31));
688 topLabel->setText(tr("Split product")); 744 topLabel->setText(tr("Split product"));
689 QFont font; 745 QFont font;
735 QLabel *splitatLabel = new QLabel(dialog); 791 QLabel *splitatLabel = new QLabel(dialog);
736 splitatLabel->setObjectName(QString::fromUtf8("splitatLabel")); 792 splitatLabel->setObjectName(QString::fromUtf8("splitatLabel"));
737 splitatLabel->setGeometry(QRect(660, 110, 141, 20)); 793 splitatLabel->setGeometry(QRect(660, 110, 141, 20));
738 splitatLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); 794 splitatLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
739 splitatLabel->setText(tr("Split at moment:")); 795 splitatLabel->setText(tr("Split at moment:"));
740 QLabel *vol_leftLabel = new QLabel(dialog);
741 vol_leftLabel->setObjectName(QString::fromUtf8("vol_leftLabel"));
742 vol_leftLabel->setGeometry(QRect(660, 140, 141, 20));
743 vol_leftLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
744 vol_leftLabel->setText(tr("Volume remaining:"));
745
746 splitatEdit = new QComboBox(dialog); 796 splitatEdit = new QComboBox(dialog);
747 splitatEdit->setObjectName(QString::fromUtf8("splitatEdit")); 797 splitatEdit->setObjectName(QString::fromUtf8("splitatEdit"));
748 splitatEdit->setGeometry(QRect(810, 110, 181, 23)); 798 splitatEdit->setGeometry(QRect(810, 110, 181, 23));
749 splitatEdit->addItem(tr("Not divided")); 799 splitatEdit->addItem(tr("Not divided"));
750 splitatEdit->addItem(tr("After mash")); 800 splitatEdit->addItem(tr("After mash"));
767 } 817 }
768 if (product->stage > PROD_STAGE_TERTIARY) { 818 if (product->stage > PROD_STAGE_TERTIARY) {
769 splitatEdit->setItemData(6, false, Qt::UserRole -1); 819 splitatEdit->setItemData(6, false, Qt::UserRole -1);
770 } 820 }
771 821
822 QLabel *vol_leftLabel = new QLabel(dialog);
823 vol_leftLabel->setObjectName(QString::fromUtf8("vol_leftLabel"));
824 vol_leftLabel->setGeometry(QRect(660, 140, 141, 20));
825 vol_leftLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
826 vol_leftLabel->setText(tr("Volume remaining:"));
772 vol_leftEdit = new QDoubleSpinBox(dialog); 827 vol_leftEdit = new QDoubleSpinBox(dialog);
773 vol_leftEdit->setObjectName(QString::fromUtf8("vol_leftEdit")); 828 vol_leftEdit->setObjectName(QString::fromUtf8("vol_leftEdit"));
774 vol_leftEdit->setGeometry(QRect(810, 140, 111, 24)); 829 vol_leftEdit->setGeometry(QRect(810, 140, 111, 24));
775 vol_leftEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); 830 vol_leftEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
776 vol_leftEdit->setReadOnly(true); 831 vol_leftEdit->setReadOnly(true);
803 split_addButton->setGeometry(QRect(170, 180, 100, 23)); 858 split_addButton->setGeometry(QRect(170, 180, 100, 23));
804 QIcon icon; 859 QIcon icon;
805 icon.addFile(QString::fromUtf8("../resources/icons/silk/add.png"), QSize(), QIcon::Normal, QIcon::Off); 860 icon.addFile(QString::fromUtf8("../resources/icons/silk/add.png"), QSize(), QIcon::Normal, QIcon::Off);
806 split_addButton->setIcon(icon); 861 split_addButton->setIcon(icon);
807 split_addButton->setText(tr("Add")); 862 split_addButton->setText(tr("Add"));
808 split_addButton->setEnabled(product->divide_type != 0);
809 863
810 split_delButton = new QPushButton(dialog); 864 split_delButton = new QPushButton(dialog);
811 split_delButton->setObjectName(QString::fromUtf8("delButton")); 865 split_delButton->setObjectName(QString::fromUtf8("delButton"));
812 split_delButton->setGeometry(QRect(660, 180, 100, 23)); 866 split_delButton->setGeometry(QRect(660, 180, 100, 23));
813 QIcon icon2; 867 QIcon icon2;
814 icon2.addFile(QString::fromUtf8("../resources/icons/silk/delete.png"), QSize(), QIcon::Normal, QIcon::Off); 868 icon2.addFile(QString::fromUtf8("../resources/icons/silk/delete.png"), QSize(), QIcon::Normal, QIcon::Off);
815 split_delButton->setIcon(icon2); 869 split_delButton->setIcon(icon2);
816 split_delButton->setText(tr("Delete")); 870 split_delButton->setText(tr("Delete"));
817 split_delButton->setEnabled(false); 871
818 872 split_show();
819 QObject::connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept())); 873 QObject::connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept()));
820 QObject::connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject())); 874 QObject::connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject()));
821 connect(split_addButton, SIGNAL(clicked()), this, SLOT(split_add_clicked())); 875 connect(split_addButton, SIGNAL(clicked()), this, SLOT(split_add_clicked()));
822 connect(split_delButton, SIGNAL(clicked()), this, SLOT(split_del_clicked())); 876 connect(split_delButton, SIGNAL(clicked()), this, SLOT(split_del_clicked()));
823 connect(splitatEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::split_splitat_changed); 877 connect(splitatEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::split_splitat_changed);

mercurial