Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More fixes for errors about optionality of attributes, and nearby fixes and tidy-ups #820

Merged
merged 1 commit into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading