src/EditRecipe.cpp

changeset 103
6da4e93b6ceb
parent 102
b017001850df
child 104
c02dfb7bb2f9
equal deleted inserted replaced
102:b017001850df 103:6da4e93b6ceb
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;

mercurial