252 connect(ui->est_og2Edit, &QDoubleSpinBox::textChanged, this, &EditRecipe::is_changed); |
252 connect(ui->est_og2Edit, &QDoubleSpinBox::textChanged, this, &EditRecipe::is_changed); |
253 connect(ui->perc_mashShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_mash_valueChanged); |
253 connect(ui->perc_mashShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_mash_valueChanged); |
254 connect(ui->perc_sugarsShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_sugars_valueChanged); |
254 connect(ui->perc_sugarsShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_sugars_valueChanged); |
255 connect(ui->perc_caraShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_cara_valueChanged); |
255 connect(ui->perc_caraShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_cara_valueChanged); |
256 connect(ui->lintnerShow, &QProgressBar::valueChanged, this, &EditRecipe::on_lintner_valueChanged); |
256 connect(ui->lintnerShow, &QProgressBar::valueChanged, this, &EditRecipe::on_lintner_valueChanged); |
257 // connect(ui->fermentablesTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Changed(int, int))); |
257 connect(ui->fermentablesTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Fermentable_changed(int, int))); |
258 |
258 |
259 // All signals from tab "Hops" |
259 // All signals from tab "Hops" |
260 // connect(ui->hopsTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Changed(int, int))); |
260 // connect(ui->hopsTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Changed(int, int))); |
261 |
261 |
262 // All signals from tab "Miscs" |
262 // All signals from tab "Miscs" |
383 w = QString("%1%").arg(d, 2, 'f', 1, '0'); |
383 w = QString("%1%").arg(d, 2, 'f', 1, '0'); |
384 item = new QTableWidgetItem(w); |
384 item = new QTableWidgetItem(w); |
385 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
385 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
386 ui->fermentablesTable->setItem(i, 7, item); |
386 ui->fermentablesTable->setItem(i, 7, item); |
387 |
387 |
388 if (obj["f_adjust_to_total_100"].toString().toInt()) { |
388 QTableWidgetItem *checkBoxItem = new QTableWidgetItem(); |
389 pWidget = new QWidget(); |
389 checkBoxItem->setCheckState((obj["f_adjust_to_total_100"].toInt()) ? Qt::Checked : Qt::Unchecked); |
390 label = new QLabel; |
390 checkBoxItem->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
391 label->setPixmap(QPixmap(":icons/silk/tick.png")); |
391 ui->fermentablesTable->setItem(i, 8, checkBoxItem); |
392 pLayout = new QHBoxLayout(pWidget); |
|
393 pLayout->addWidget(label); |
|
394 pLayout->setAlignment(Qt::AlignCenter); |
|
395 pLayout->setContentsMargins(0, 0, 0, 0); |
|
396 pWidget->setLayout(pLayout); |
|
397 ui->fermentablesTable->setCellWidget(i, 8, pWidget); |
|
398 } else { |
|
399 ui->fermentablesTable->removeCellWidget(i, 8); |
|
400 } |
|
401 |
392 |
402 /* Add the Delete row button */ |
393 /* Add the Delete row button */ |
403 pWidget = new QWidget(); |
394 pWidget = new QWidget(); |
404 QPushButton* btn_edit = new QPushButton(); |
395 QPushButton* btn_edit = new QPushButton(); |
405 btn_edit->setObjectName(QString("%1").arg(i)); /* Send row with the button */ |
396 btn_edit->setObjectName(QString("%1").arg(i)); /* Send row with the button */ |
804 { |
795 { |
805 is_changed(); |
796 is_changed(); |
806 } |
797 } |
807 |
798 |
808 |
799 |
|
800 void EditRecipe::cell_Fermentable_changed(int nRow, int nCol) |
|
801 { |
|
802 if (this->ignoreChanges) |
|
803 return; |
|
804 |
|
805 qDebug() << "Cell at row " + QString::number(nRow) + " column " + QString::number(nCol) + " was changed."; |
|
806 |
|
807 if (nCol == 8) { // 100% checkbox |
|
808 this->ignoreChanges = true; |
|
809 |
|
810 if (ui->fermentablesTable->item(nRow, nCol)->checkState() == Qt::Checked) { |
|
811 /* |
|
812 * This row is checked. Remove any other checked item. |
|
813 */ |
|
814 for (int i = 0; i < ui->fermentablesTable->rowCount(); i++) { |
|
815 if (i != nRow) { |
|
816 QTableWidgetItem *checkBoxItem = ui->fermentablesTable->item(i, nCol); |
|
817 checkBoxItem->setCheckState(Qt::Unchecked); |
|
818 ui->fermentablesTable->setItem(i, nCol, checkBoxItem); |
|
819 } |
|
820 } |
|
821 } else { |
|
822 /* |
|
823 * Unchecked, start working with amounts instead of percentages. |
|
824 */ |
|
825 } |
|
826 qDebug() << ui->fermentablesTable->item(nRow, nCol)->checkState(); |
|
827 this->ignoreChanges = false; |
|
828 } |
|
829 |
|
830 // TODO: some checks and auto fixes. |
|
831 // make_Json(); |
|
832 } |
|
833 |
|
834 |
809 void EditRecipe::on_deleteFermentRow_clicked() |
835 void EditRecipe::on_deleteFermentRow_clicked() |
810 { |
836 { |
811 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender()); |
837 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender()); |
812 int row = pb->objectName().toInt(); |
838 int row = pb->objectName().toInt(); |
813 qDebug() << "Delete row" << row; |
839 qDebug() << "Delete row" << row; |