Skip to content

Commit

Permalink
More fixes for errors about optionality of attributes, and nearby fix…
Browse files Browse the repository at this point in the history
…es and tidy-ups
  • Loading branch information
Matt Young committed Sep 3, 2024
1 parent 226a9b3 commit 814dedd
Show file tree
Hide file tree
Showing 56 changed files with 618 additions and 1,517 deletions.
2 changes: 1 addition & 1 deletion CHANGES.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Minor bug fixes for the 4.0.3 release (ie bugs in 4.0.3 are fixed in this 4.0.4
* None

### Bug Fixes
* None
* Crash editing Target Boil Size [817](https://github.com/Brewtarget/brewtarget/issues/817)

### Release Timestamp
Wed, 28 Aug 2024 04:00:04 +0100
Expand Down
1 change: 0 additions & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,6 @@ commonSourceFiles = files([
'src/sortFilterProxyModels/YeastSortFilterProxyModel.cpp',
'src/tableModels/BoilStepTableModel.cpp',
'src/tableModels/BtTableModel.cpp',
'src/tableModels/BtTableModelInventory.cpp',
'src/tableModels/EquipmentTableModel.cpp',
'src/tableModels/FermentableTableModel.cpp',
'src/tableModels/FermentationStepTableModel.cpp',
Expand Down
1 change: 0 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,6 @@ set(filesToCompile_cpp
${repoDir}/src/sortFilterProxyModels/YeastSortFilterProxyModel.cpp
${repoDir}/src/tableModels/BoilStepTableModel.cpp
${repoDir}/src/tableModels/BtTableModel.cpp
${repoDir}/src/tableModels/BtTableModelInventory.cpp
${repoDir}/src/tableModels/EquipmentTableModel.cpp
${repoDir}/src/tableModels/FermentableTableModel.cpp
${repoDir}/src/tableModels/FermentationStepTableModel.cpp
Expand Down
20 changes: 10 additions & 10 deletions src/editors/BoilStepEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,16 @@ void BoilStepEditor::readFieldsFromEditItem(std::optional<QString> propName) {
}

void BoilStepEditor::writeFieldsToEditItem() {
this->m_editItem->setName (this->lineEdit_name->text());
this->m_editItem->setDescription (this->textEdit_description ->toPlainText ());
this->m_editItem->setStartTemp_c (this->lineEdit_startTemp ->getNonOptCanonicalQty());
this->m_editItem->setStepTime_mins (this->lineEdit_stepTime ->getNonOptCanonicalQty());
this->m_editItem->setRampTime_mins (this->lineEdit_rampTime ->getOptCanonicalQty ());
this->m_editItem->setEndTemp_c (this->lineEdit_endTemp ->getOptCanonicalQty ());
this->m_editItem->setStartAcidity_pH (this->lineEdit_startAcidity->getOptCanonicalQty ());
this->m_editItem->setEndAcidity_pH (this->lineEdit_endAcidity ->getOptCanonicalQty ());
this->m_editItem->setStartGravity_sg (this->lineEdit_startGravity->getOptCanonicalQty ());
this->m_editItem->setEndGravity_sg (this->lineEdit_endGravity ->getOptCanonicalQty ());
this->m_editItem->setName (this->lineEdit_name ->text ());
this->m_editItem->setDescription (this->textEdit_description ->toPlainText ());
this->m_editItem->setStartTemp_c (this->lineEdit_startTemp ->getOptCanonicalQty());
this->m_editItem->setStepTime_mins (this->lineEdit_stepTime ->getOptCanonicalQty());
this->m_editItem->setRampTime_mins (this->lineEdit_rampTime ->getOptCanonicalQty());
this->m_editItem->setEndTemp_c (this->lineEdit_endTemp ->getOptCanonicalQty());
this->m_editItem->setStartAcidity_pH(this->lineEdit_startAcidity->getOptCanonicalQty());
this->m_editItem->setEndAcidity_pH (this->lineEdit_endAcidity ->getOptCanonicalQty());
this->m_editItem->setStartGravity_sg(this->lineEdit_startGravity->getOptCanonicalQty());
this->m_editItem->setEndGravity_sg (this->lineEdit_endGravity ->getOptCanonicalQty());

this->m_editItem->setChillingType(this->comboBox_boilStepChillingType->getOptValue<BoilStep::ChillingType>());
return;
Expand Down
32 changes: 15 additions & 17 deletions src/editors/FermentationStepEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ FermentationStepEditor::FermentationStepEditor(QWidget* parent) :
this->setupUi(this);

// NB: Although FermentationStep inherits (via StepExtended) from Step, the rampTime_mins field is not used and
// should not be stored in the DB or serialised. See comment in model/Step.h.
// should not be stored in the DB or serialised. See comment in model/Step.h. There should therefore not be
// any label_rampTime or lineEdit_rampTime fields in the .ui file!
//
// NB: label_description / textEdit_description don't need initialisation here as neither is a smart field
SMART_FIELD_INIT(FermentationStepEditor, label_name , lineEdit_name , FermentationStep, PropertyNames:: NamedEntity::name );
Expand Down Expand Up @@ -57,29 +58,26 @@ void FermentationStepEditor::readFieldsFromEditItem(std::optional<QString> propN
if (!propName || *propName == PropertyNames:: Step::endAcidity_pH ) { this->lineEdit_endAcidity ->setQuantity (m_editItem->endAcidity_pH ()); if (propName) { return; } }
if (!propName || *propName == PropertyNames::StepExtended::startGravity_sg) { this->lineEdit_startGravity->setQuantity (m_editItem->startGravity_sg()); if (propName) { return; } }
if (!propName || *propName == PropertyNames::StepExtended::endGravity_sg ) { this->lineEdit_endGravity ->setQuantity (m_editItem->endGravity_sg ()); if (propName) { return; } }

if (!propName || *propName == PropertyNames::FermentationStep::vessel ) { this->lineEdit_vessel ->setTextCursor (m_editItem->vessel ()); if (propName) { return; } }

if (!propName || *propName == PropertyNames::FermentationStep::freeRise) { this->boolCombo_freeRise->setValue(m_editItem->freeRise()); if (propName) { return; } }
if (!propName || *propName == PropertyNames::FermentationStep::vessel ) { this->lineEdit_vessel ->setTextCursor(m_editItem->vessel ()); if (propName) { return; } }
if (!propName || *propName == PropertyNames::FermentationStep::freeRise ) { this->boolCombo_freeRise ->setValue (m_editItem->freeRise ()); if (propName) { return; } }

return;
}

void FermentationStepEditor::writeFieldsToEditItem() {
// NB: Although FermentationStep inherits (via StepExtended) from Step, the rampTime_mins field is not used and
// should not be stored in the DB or serialised. See comment in model/Step.h.
this->m_editItem->setName (this->lineEdit_name->text());
this->m_editItem->setDescription (this->textEdit_description ->toPlainText ());
this->m_editItem->setStartTemp_c (this->lineEdit_startTemp ->getNonOptCanonicalQty());
this->m_editItem->setStepTime_mins (this->lineEdit_stepTime ->getNonOptCanonicalQty());
this->m_editItem->setEndTemp_c (this->lineEdit_endTemp ->getOptCanonicalQty ());
this->m_editItem->setStartAcidity_pH (this->lineEdit_startAcidity->getOptCanonicalQty ());
this->m_editItem->setEndAcidity_pH (this->lineEdit_endAcidity ->getOptCanonicalQty ());
this->m_editItem->setStartGravity_sg (this->lineEdit_startGravity->getOptCanonicalQty ());
this->m_editItem->setEndGravity_sg (this->lineEdit_endGravity ->getOptCanonicalQty ());

this->m_editItem->setVessel(this->lineEdit_vessel->text());
this->m_editItem->setFreeRise(this->boolCombo_freeRise->getOptBoolValue());
this->m_editItem->setName (this->lineEdit_name ->text ());
this->m_editItem->setDescription (this->textEdit_description ->toPlainText ());
this->m_editItem->setStartTemp_c (this->lineEdit_startTemp ->getOptCanonicalQty());
this->m_editItem->setStepTime_mins (this->lineEdit_stepTime ->getOptCanonicalQty());
this->m_editItem->setEndTemp_c (this->lineEdit_endTemp ->getOptCanonicalQty());
this->m_editItem->setStartAcidity_pH(this->lineEdit_startAcidity->getOptCanonicalQty());
this->m_editItem->setEndAcidity_pH (this->lineEdit_endAcidity ->getOptCanonicalQty());
this->m_editItem->setStartGravity_sg(this->lineEdit_startGravity->getOptCanonicalQty());
this->m_editItem->setEndGravity_sg (this->lineEdit_endGravity ->getOptCanonicalQty());
this->m_editItem->setVessel (this->lineEdit_vessel ->text ());
this->m_editItem->setFreeRise (this->boolCombo_freeRise ->getOptBoolValue ());

return;
}
Expand Down
72 changes: 6 additions & 66 deletions src/tableModels/BoilStepTableModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,45 +74,12 @@ void BoilStepTableModel::updateTotals() { r


QVariant BoilStepTableModel::data(QModelIndex const & index, int role) const {
if (!this->m_stepOwnerObs) {
if (!this->m_stepOwnerObs || !this->indexAndRoleOk(index, role)) {
return QVariant();
}

if (!this->isIndexOk(index)) {
return QVariant();
}

// Make sure we only respond to the DisplayRole role.
if (role != Qt::DisplayRole) {
return QVariant();
}

auto row = this->rows[index.row()];

auto const columnIndex = static_cast<BoilStepTableModel::ColumnIndex>(index.column());
switch (columnIndex) {
case BoilStepTableModel::ColumnIndex::Name :
case BoilStepTableModel::ColumnIndex::StepTime :
case BoilStepTableModel::ColumnIndex::StartTemp :
case BoilStepTableModel::ColumnIndex::RampTime :
case BoilStepTableModel::ColumnIndex::EndTemp :
case BoilStepTableModel::ColumnIndex::StartAcidity:
case BoilStepTableModel::ColumnIndex::EndAcidity :
case BoilStepTableModel::ColumnIndex::StartGravity:
case BoilStepTableModel::ColumnIndex::EndGravity :
case BoilStepTableModel::ColumnIndex::ChillingType:
return this->readDataFromModel(index, role);

// No default case as we want the compiler to warn us if we missed one
}
return QVariant();
}

QVariant BoilStepTableModel::headerData( int section, Qt::Orientation orientation, int role ) const {
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
return this->getColumnLabel(section);
}
return QVariant();
// No special handling required for any of our columns
return this->readDataFromModel(index, role);
}

Qt::ItemFlags BoilStepTableModel::flags(const QModelIndex& index ) const {
Expand All @@ -124,39 +91,12 @@ Qt::ItemFlags BoilStepTableModel::flags(const QModelIndex& index ) const {
}

bool BoilStepTableModel::setData(QModelIndex const & index, QVariant const & value, int role) {
if (!this->m_stepOwnerObs) {
return false;
}

if (!this->isIndexOk(index)) {
if (!this->m_stepOwnerObs || !this->indexAndRoleOk(index, role)) {
return false;
}

if (index.row() >= static_cast<int>(this->rows.size()) || role != Qt::EditRole ) {
return false;
}


bool retVal = false;

auto const columnIndex = static_cast<BoilStepTableModel::ColumnIndex>(index.column());
switch (columnIndex) {
case BoilStepTableModel::ColumnIndex::Name :
case BoilStepTableModel::ColumnIndex::StepTime :
case BoilStepTableModel::ColumnIndex::StartTemp :
case BoilStepTableModel::ColumnIndex::RampTime :
case BoilStepTableModel::ColumnIndex::EndTemp :
case BoilStepTableModel::ColumnIndex::StartAcidity:
case BoilStepTableModel::ColumnIndex::EndAcidity :
case BoilStepTableModel::ColumnIndex::StartGravity:
case BoilStepTableModel::ColumnIndex::EndGravity :
case BoilStepTableModel::ColumnIndex::ChillingType:
retVal = this->writeDataToModel(index, value, role);
break;

// No default case as we want the compiler to warn us if we missed one
}
return retVal;
// No special handling required for any of our columns
return this->writeDataToModel(index, value, role);
}

/////==========================CLASS BoilStepItemDelegate===============================
Expand Down
12 changes: 10 additions & 2 deletions src/tableModels/BtTableModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BtTableModelRecipeObserver::BtTableModelRecipeObserver(QTableView * parent,

BtTableModelRecipeObserver::~BtTableModelRecipeObserver() = default;

//╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
//======================================================================================================================

void BtTableModel::ColumnInfo::setForcedSystemOfMeasurement(std::optional<Measurement::SystemOfMeasurement> forcedSystemOfMeasurement) const {
SmartAmounts::setForcedSystemOfMeasurement(this->tableModelName, this->columnName, forcedSystemOfMeasurement);
Expand All @@ -58,7 +58,7 @@ std::optional<Measurement::UnitSystem::RelativeScale> BtTableModel::ColumnInfo::
return SmartAmounts::getForcedRelativeScale(this->tableModelName, this->columnName);
}

//╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
//======================================================================================================================

BtTableModel::BtTableModel(QTableView * parent,
bool editable,
Expand Down Expand Up @@ -118,6 +118,14 @@ int BtTableModel::columnCount(QModelIndex const & /*parent*/) const {
return this->m_columnInfos.size();
}

QVariant BtTableModel::headerData(int section, Qt::Orientation orientation, int role) const {
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
return this->getColumnLabel(section);
}

return QVariant();
}

void BtTableModel::contextMenu(QPoint const & point) {
qDebug() << Q_FUNC_INFO;
QHeaderView* hView = qobject_cast<QHeaderView*>(this->sender());
Expand Down
Loading

0 comments on commit 814dedd

Please sign in to comment.