# HG changeset patch # User Michiel Broek # Date 1649016132 -7200 # Node ID 6da4e93b6cebc5666b96939b7d8948af63ce5a4b # Parent b017001850dfc56eb93dbaa193f1d511290dcd0c Experiment with checkboxes in the fermentable table. diff -r b017001850df -r 6da4e93b6ceb src/EditRecipe.cpp --- a/src/EditRecipe.cpp Sun Apr 03 17:43:45 2022 +0200 +++ b/src/EditRecipe.cpp Sun Apr 03 22:02:12 2022 +0200 @@ -254,7 +254,7 @@ connect(ui->perc_sugarsShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_sugars_valueChanged); connect(ui->perc_caraShow, &QProgressBar::valueChanged, this, &EditRecipe::on_perc_cara_valueChanged); connect(ui->lintnerShow, &QProgressBar::valueChanged, this, &EditRecipe::on_lintner_valueChanged); -// connect(ui->fermentablesTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Changed(int, int))); + connect(ui->fermentablesTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Fermentable_changed(int, int))); // All signals from tab "Hops" // connect(ui->hopsTable, SIGNAL(cellChanged(int, int)), this, SLOT(cell_Changed(int, int))); @@ -385,19 +385,10 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 7, item); - if (obj["f_adjust_to_total_100"].toString().toInt()) { - pWidget = new QWidget(); - label = new QLabel; - label->setPixmap(QPixmap(":icons/silk/tick.png")); - pLayout = new QHBoxLayout(pWidget); - pLayout->addWidget(label); - pLayout->setAlignment(Qt::AlignCenter); - pLayout->setContentsMargins(0, 0, 0, 0); - pWidget->setLayout(pLayout); - ui->fermentablesTable->setCellWidget(i, 8, pWidget); - } else { - ui->fermentablesTable->removeCellWidget(i, 8); - } + QTableWidgetItem *checkBoxItem = new QTableWidgetItem(); + checkBoxItem->setCheckState((obj["f_adjust_to_total_100"].toInt()) ? Qt::Checked : Qt::Unchecked); + checkBoxItem->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + ui->fermentablesTable->setItem(i, 8, checkBoxItem); /* Add the Delete row button */ pWidget = new QWidget(); @@ -806,6 +797,41 @@ } +void EditRecipe::cell_Fermentable_changed(int nRow, int nCol) +{ + if (this->ignoreChanges) + return; + + qDebug() << "Cell at row " + QString::number(nRow) + " column " + QString::number(nCol) + " was changed."; + + if (nCol == 8) { // 100% checkbox + this->ignoreChanges = true; + + if (ui->fermentablesTable->item(nRow, nCol)->checkState() == Qt::Checked) { + /* + * This row is checked. Remove any other checked item. + */ + for (int i = 0; i < ui->fermentablesTable->rowCount(); i++) { + if (i != nRow) { + QTableWidgetItem *checkBoxItem = ui->fermentablesTable->item(i, nCol); + checkBoxItem->setCheckState(Qt::Unchecked); + ui->fermentablesTable->setItem(i, nCol, checkBoxItem); + } + } + } else { + /* + * Unchecked, start working with amounts instead of percentages. + */ + } + qDebug() << ui->fermentablesTable->item(nRow, nCol)->checkState(); + this->ignoreChanges = false; + } + + // TODO: some checks and auto fixes. +// make_Json(); +} + + void EditRecipe::on_deleteFermentRow_clicked() { QPushButton *pb = qobject_cast(QObject::sender()); diff -r b017001850df -r 6da4e93b6ceb src/EditRecipe.h --- a/src/EditRecipe.h Sun Apr 03 17:43:45 2022 +0200 +++ b/src/EditRecipe.h Sun Apr 03 22:02:12 2022 +0200 @@ -34,6 +34,7 @@ void refreshYeasts(); void refreshMashs(); void refreshAll(); + void cell_Fermentable_changed(int nRow, int nCol); void on_deleteFermentRow_clicked(); void on_perc_mash_valueChanged(int value); diff -r b017001850df -r 6da4e93b6ceb src/MainWindow.cpp --- a/src/MainWindow.cpp Sun Apr 03 17:43:45 2022 +0200 +++ b/src/MainWindow.cpp Sun Apr 03 22:02:12 2022 +0200 @@ -247,7 +247,7 @@ ui->mainStack->addWidget(RecipesTreeWindow); ui->mainStack->setCurrentIndex(index); setWindowTitle( QString("BMSapp - %1 - Recipes").arg(VERSIONSTRING)); -// ui->menuBar->setVisible(false); + ui->menuBar->setVisible(false); } diff -r b017001850df -r 6da4e93b6ceb ui/EditRecipe.ui --- a/ui/EditRecipe.ui Sun Apr 03 17:43:45 2022 +0200 +++ b/ui/EditRecipe.ui Sun Apr 03 22:02:12 2022 +0200 @@ -15,7 +15,7 @@ - + @@ -95,7 +95,7 @@ QTabWidget::Rounded - 4 + 0 Qt::ElideNone @@ -165,15 +165,15 @@ 140 50 881 - 81 + 91 - 900 - 20 + 0 + 180 131 20 @@ -188,8 +188,8 @@ - 1040 - 20 + 140 + 180 61 21 @@ -202,7 +202,7 @@ 0 - 140 + 150 131 20 @@ -218,7 +218,7 @@ 140 - 140 + 150 181 23 @@ -228,7 +228,7 @@ 370 - 140 + 150 131 20 @@ -244,7 +244,7 @@ 370 - 170 + 180 131 20 @@ -260,7 +260,7 @@ 740 - 140 + 150 131 20 @@ -276,7 +276,7 @@ 740 - 170 + 180 131 20 @@ -292,7 +292,7 @@ 510 - 140 + 150 101 24 @@ -317,7 +317,7 @@ 510 - 170 + 180 101 24 @@ -339,7 +339,7 @@ 880 - 140 + 150 101 24 @@ -367,7 +367,7 @@ 880 - 170 + 180 87 24 @@ -397,637 +397,693 @@ 0.500000000000000 - - - - 220 - 320 - 148 - 24 - - - - - - - 0 - 320 - 131 - 20 - - - - Estimated OG: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 140 - 320 - 71 - 24 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - QAbstractSpinBox::UpDownArrows - - - true - - - 3 - - - 0.980000000000000 - - - 2.000000000000000 - - - 0.001000000000000 - - - - - - 370 - 320 - 131 - 20 - - - - Estimated FG: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 740 - 320 - 131 - 20 - - - - Alcohol Volume: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 0 - 350 - 131 - 20 - - - - Color EBC: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 510 - 320 - 71 - 24 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - QAbstractSpinBox::NoButtons - - - true - - - 3 - - - 0.980000000000000 - - - 2.000000000000000 - - - 0.001000000000000 - - - - - - 590 - 320 - 148 - 24 - - - - + - 880 - 320 - 71 - 24 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - true - - - QAbstractSpinBox::NoButtons - - - false - - - % - - - 1 - - - 0.000000000000000 - - - 80.000000000000000 - - - 0.100000000000000 - - - - - - 140 - 350 - 71 - 24 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - true - - - QAbstractSpinBox::NoButtons - - - false - - - 0 - - - 0.000000000000000 - - - 400.000000000000000 - - - 1.000000000000000 - - - - - - 960 - 320 - 148 - 24 - - - - - - - 510 - 350 - 141 - 23 - - - - - - - 220 - 350 - 148 - 24 - - - - - - - 510 - 200 - 226 - 23 - - - - - - - 0 - 260 - 131 - 20 - - - - Style type: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 0 - 230 - 131 - 20 - - - - Style guide: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 370 - 230 - 131 - 20 - - - - Style name: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 370 - 260 - 131 - 20 + 10 + 340 + 1101 + 121 - - Category: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 740 - 230 - 131 - 20 - - - - Style group: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 740 - 260 - 131 - 20 - - - - Category number: + + Overview - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 140 - 200 - 131 - 20 - - - - - 11 - 75 - true - - - - Beerstyle data - - - - - - 370 - 350 - 131 - 20 - - - - Color method: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + + + 130 + 20 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + QAbstractSpinBox::UpDownArrows + + + true + + + 3 + + + 0.980000000000000 + + + 2.000000000000000 + + + 0.001000000000000 + + + + + + 870 + 20 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + % + + + 1 + + + 0.000000000000000 + + + 80.000000000000000 + + + 0.100000000000000 + + + + + + 500 + 20 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + QAbstractSpinBox::NoButtons + + + true + + + 3 + + + 0.980000000000000 + + + 2.000000000000000 + + + 0.001000000000000 + + + + + + 730 + 20 + 131 + 20 + + + + Alcohol Volume: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 360 + 20 + 131 + 20 + + + + Estimated FG: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 580 + 20 + 148 + 24 + + + + + + + 210 + 20 + 148 + 24 + + + + + + + 10 + 20 + 111 + 20 + + + + Estimated OG: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 950 + 20 + 148 + 24 + + + + + + + 500 + 50 + 141 + 23 + + + + + + + 210 + 50 + 148 + 24 + + + + + + + 870 + 50 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + % + + + 1 + + + 0.000000000000000 + + + 80.000000000000000 + + + 0.100000000000000 + + + + + + 130 + 50 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + 0 + + + 0.000000000000000 + + + 400.000000000000000 + + + 1.000000000000000 + + + + + + 360 + 50 + 131 + 20 + + + + Color method: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 730 + 50 + 131 + 20 + + + + Carbonation: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 950 + 50 + 148 + 24 + + + + + + + 10 + 50 + 111 + 20 + + + + Color EBC: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 210 + 80 + 148 + 24 + + + + + + + 500 + 80 + 141 + 23 + + + + + + + 130 + 80 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + 0 + + + 0.000000000000000 + + + 400.000000000000000 + + + 1.000000000000000 + + + + + + 360 + 80 + 131 + 20 + + + + IBU method: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 730 + 80 + 131 + 20 + + + + Energy kcal/l: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 20 + 80 + 111 + 20 + + + + Bitterness IBU: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 870 + 80 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + 0 + + + 0.000000000000000 + + + 8000.000000000000000 + + + 0.100000000000000 + + - - - - 370 - 380 - 131 - 20 - - - - IBU method: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 510 - 380 - 141 - 23 - - - - - - - 140 - 230 - 226 - 23 - - - - true - - - - - - 140 - 260 - 226 - 23 - - - - true - - - - - - 510 - 230 - 226 - 23 - - - - true - - - - - - 510 - 260 - 226 - 23 - - - - true - - - + - 880 - 230 - 101 - 23 - - - - true - - - - - - 880 - 260 - 71 - 23 - - - - true - - - - - - 0 - 380 - 131 - 20 - - - - Bitterness IBU: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 140 - 380 - 71 - 24 + 10 + 210 + 1101 + 121 - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - true - - - QAbstractSpinBox::NoButtons - - - false - - - 0 - - - 0.000000000000000 - - - 400.000000000000000 - - - 1.000000000000000 - - - - - - 220 - 380 - 148 - 24 - - - - - - - 960 - 350 - 148 - 24 - - - - - - - 880 - 350 - 71 - 24 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + Beerstyle - - true - - - QAbstractSpinBox::NoButtons - - - false - - - % - - - 1 - - - 0.000000000000000 - - - 80.000000000000000 - - - 0.100000000000000 - - - - - - 740 - 350 - 131 - 20 - - - - Carbonation: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - 370 - 200 - 131 - 20 - - - - Select style: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + + + + 500 + 20 + 226 + 23 + + + + + + + 870 + 50 + 101 + 23 + + + + true + + + + + + 500 + 50 + 226 + 23 + + + + true + + + + + + 130 + 50 + 226 + 23 + + + + true + + + + + + 10 + 50 + 111 + 20 + + + + Style guide: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 730 + 50 + 131 + 20 + + + + Style group: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 360 + 50 + 131 + 20 + + + + Style name: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 360 + 20 + 131 + 20 + + + + Select style: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 111 + 20 + + + + Style type: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 130 + 80 + 226 + 23 + + + + true + + + + + + 360 + 80 + 131 + 20 + + + + Category: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 870 + 80 + 71 + 23 + + + + true + + + + + + 730 + 80 + 131 + 20 + + + + Category number: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 500 + 80 + 226 + 23 + + + + true + +