--- a/src/EditRecipeTab4.cpp Thu Apr 21 17:22:01 2022 +0200 +++ b/src/EditRecipeTab4.cpp Fri Apr 22 13:46:59 2022 +0200 @@ -42,11 +42,15 @@ qDebug() << "refreshMiscs" << recipe->miscs.size(); std::sort(recipe->miscs.begin(), recipe->miscs.end(), misc_sort_test); - /* - * During filling the table turn off the cellChanged signal because every cell that is filled - * triggers the cellChanged signal. The QTableWidget has no better signal to use. - */ - this->ignoreChanges = true; + const QSignalBlocker blocker1(ui->bs_cacl2Edit); + const QSignalBlocker blocker2(ui->bs_caso4Edit); + const QSignalBlocker blocker3(ui->bs_mgso4Edit); + const QSignalBlocker blocker4(ui->bs_naclEdit); + const QSignalBlocker blocker5(ui->bs_mgcl2Edit); + const QSignalBlocker blocker6(ui->bs_nahco3Edit); + const QSignalBlocker blocker7(ui->bs_caco3Edit); + const QSignalBlocker blocker8(ui->mw_acidPick); + const QSignalBlocker blocker9(ui->mw_acidvolEdit); const QStringList labels({tr("Ingredient"), tr("Type"), tr("Use at"), tr("Time"), tr("Amount"), tr("Delete"), tr("Edit") }); @@ -167,7 +171,6 @@ } } } - this->ignoreChanges = false; } @@ -245,9 +248,6 @@ */ void EditRecipe::set_brewing_salt(QString salt, double val) { - if (this->ignoreChanges) - return; - val = round(val * 100.0) / 100.0; qDebug() << "set_brewing_salt" << salt << val; brewing_salt_sub(salt, val); @@ -292,9 +292,7 @@ if (rc == QMessageBox::No) return; - this->ignoreChanges = true; recipe->miscs.removeAt(row); - this->ignoreChanges = false; is_changed(); emit refreshAll(); } @@ -305,7 +303,6 @@ QTableWidgetItem *item; qDebug() << "misc_amount_changed()" << recipe->miscs_row << val; - this->ignoreChanges = true; recipe->miscs[recipe->miscs_row].m_amount = val / 1000.0; if (recipe->miscs.at(recipe->miscs_row).m_amount_is_weight) { @@ -316,7 +313,6 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 4, item); - this->ignoreChanges = false; is_changed(); } @@ -327,7 +323,6 @@ qDebug() << "misc_time_changed()" << recipe->miscs_row << val; - this->ignoreChanges = true; if (recipe->miscs.at(recipe->miscs_row).m_use_use == 2) { // Boil recipe->miscs[recipe->miscs_row].m_time = val; item = new QTableWidgetItem(QString("%1 min.").arg(val, 1, 'f', 0, '0')); @@ -340,7 +335,6 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 3, item); - this->ignoreChanges = false; is_changed(); } @@ -376,7 +370,6 @@ /* * Replace the misc record contents */ - this->ignoreChanges = true; recipe->miscs[recipe->miscs_row].m_name = query.value(0).toString(); recipe->miscs[recipe->miscs_row].m_type = query.value(1).toInt(); recipe->miscs[recipe->miscs_row].m_use_use = query.value(2).toInt(); @@ -427,7 +420,6 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 4, item); - this->ignoreChanges = false; is_changed(); emit refreshAll(); } @@ -462,7 +454,6 @@ QTableWidgetItem *item; qDebug() << "misc_useat_changed" << val; - this->ignoreChanges = true; recipe->miscs[recipe->miscs_row].m_use_use = val; item = new QTableWidgetItem(m_uses[val]); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); @@ -488,7 +479,6 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 3, item); - this->ignoreChanges = false; is_changed(); } @@ -646,7 +636,15 @@ if (recipe->miscs.size() == 0) return; - this->ignoreChanges = true; + const QSignalBlocker blocker1(ui->bs_cacl2Edit); + const QSignalBlocker blocker2(ui->bs_caso4Edit); + const QSignalBlocker blocker3(ui->bs_mgso4Edit); + const QSignalBlocker blocker4(ui->bs_naclEdit); + const QSignalBlocker blocker5(ui->bs_mgcl2Edit); + const QSignalBlocker blocker6(ui->bs_nahco3Edit); + const QSignalBlocker blocker7(ui->bs_caco3Edit); + const QSignalBlocker blocker9(ui->mw_acidvolEdit); + for (int i = 0; i < recipe->miscs.size(); i++) { amount = recipe->miscs.at(i).m_amount * factor; recipe->miscs[i].m_amount = amount; @@ -680,7 +678,6 @@ } } } - this->ignoreChanges = false; }