# HG changeset patch # User Michiel Broek # Date 1659107522 -7200 # Node ID 5c1f81c75bc4a3be7b97539605d4cc7addf0f1db # Parent 81ae1b4e25db14806bb4bc24a44b82f05c133383 Added hop clone diff -r 81ae1b4e25db -r 5c1f81c75bc4 src/EditHop.cpp --- a/src/EditHop.cpp Fri Jul 29 16:45:11 2022 +0200 +++ b/src/EditHop.cpp Fri Jul 29 17:12:02 2022 +0200 @@ -224,6 +224,55 @@ } +void EditHop::on_cloneButton_clicked() +{ + QSqlQuery query; + + QString sql = "INSERT INTO inventory_hops SET name=:name, alpha=:alpha, beta=:beta, " + "humulene=:humulene, caryophyllene=:cary, cohumulone=:cohumulone, myrcene=:myrcene, " + "hsi=:hsi, type=:type, form=:form, notes=:notes, origin=:origin, substitutes=:substitutes, " + "always_on_stock=:always, inventory=:inventory, cost=:cost, production_date=:prod, " + "tht_date=:tht, total_oil=:oil, utilisation=:utilisation, bu_factor=:bu_factor, uuid=:uuid"; + + query.prepare(sql); + query.bindValue(":name", ui->nameEdit->text() + " [copy]"); + query.bindValue(":alpha", QString("%1").arg(ui->alphaEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":beta", QString("%1").arg(ui->betaEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":humulene", QString("%1").arg(ui->humuleneEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":cary", QString("%1").arg(ui->caryEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":cohumulone", QString("%1").arg(ui->cohumuloneEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":myrcene", QString("%1").arg(ui->myrceneEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":hsi", QString("%1").arg(ui->hsiEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":type", ui->typeEdit->currentIndex()); + query.bindValue(":form", ui->formEdit->currentIndex()); + query.bindValue(":notes", ui->notesEdit->toPlainText()); + query.bindValue(":origin", ui->originEdit->text()); + query.bindValue(":substitutes", ui->substitutesEdit->text()); + query.bindValue(":always", ui->alwaysEdit->isChecked() ? 1:0); + query.bindValue(":inventory", QString("%1").arg(0, 5, 'f', 4, '0')); + query.bindValue(":cost", QString("%1").arg(ui->costEdit->value(), 3, 'f', 2, '0')); + /* Uses https://www.qtcentre.org/threads/17295-How-to-put-empty-value-in-QDateEdit */ + query.bindValue(":prod", QDate()); + query.bindValue(":tht", QDate()); + query.bindValue(":oil", QString("%1").arg(ui->oilEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":utilisation", QString("%1").arg(ui->utilisationEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":bu_factor", QString("%1").arg(ui->bufactorEdit->value(), 2, 'f', 1, '0')); + query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36)); + query.exec(); + if (query.lastError().isValid()) { + qDebug() << "EditHop" << query.lastError(); + QMessageBox::warning(this, tr("Database error"), + tr("MySQL error: %1\n%2\n%3") + .arg(query.lastError().nativeErrorCode()) + .arg(query.lastError().driverText()) + .arg(query.lastError().databaseText())); + } else { + qDebug() << "EditHop Saved"; + } + +} + + void EditHop::on_deleteButton_clicked() { QSqlQuery query; diff -r 81ae1b4e25db -r 5c1f81c75bc4 src/EditHop.h --- a/src/EditHop.h Fri Jul 29 16:45:11 2022 +0200 +++ b/src/EditHop.h Fri Jul 29 17:12:02 2022 +0200 @@ -21,6 +21,7 @@ private slots: void on_saveButton_clicked(); + void on_cloneButton_clicked(); void on_quitButton_clicked(); void on_deleteButton_clicked(); void is_changed(); diff -r 81ae1b4e25db -r 5c1f81c75bc4 ui/EditHop.ui --- a/ui/EditHop.ui Fri Jul 29 16:45:11 2022 +0200 +++ b/ui/EditHop.ui Fri Jul 29 17:12:02 2022 +0200 @@ -337,7 +337,7 @@ - 463 + 596 510 80 23 @@ -997,6 +997,23 @@ 0.100000000000000 + + + + 343 + 510 + 80 + 23 + + + + Clone + + + + :/icons/silk/disk_multiple.png:/icons/silk/disk_multiple.png + +