diff -r fcbbddcc22c1 -r 15e5879df8dc src/EditSupplier.cpp --- a/src/EditSupplier.cpp Sat Feb 19 22:17:09 2022 +0100 +++ b/src/EditSupplier.cpp Sun Feb 20 10:34:24 2022 +0100 @@ -53,12 +53,15 @@ connect(ui->emailEdit, &QLineEdit::textChanged, this, &EditSupplier::is_changed); connect(ui->phoneEdit, &QLineEdit::textChanged, this, &EditSupplier::is_changed); connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed())); + + ui->saveButton->setEnabled(false); + ui->deleteButton->setEnabled((id >= 0) ? true:false); } EditSupplier::~EditSupplier() { - qDebug() << "EditSupplier closed"; + qDebug() << "EditSupplier done"; delete ui; emit entry_changed(); } @@ -84,7 +87,7 @@ } -void EditSupplier::onOKButtonClicked() +void EditSupplier::on_saveButton_clicked() { QSqlQuery query; @@ -127,26 +130,61 @@ } else { qDebug() << "EditSupplier Saved"; } + } - this->close(); - this->setResult(1); + ui->saveButton->setEnabled(false); + this->textIsChanged = false; + WindowTitle(); +} + + +void EditSupplier::on_deleteButton_clicked() +{ + QSqlQuery query; + + query.prepare("DELETE FROM inventory_suppliers WHERE record = :recno"); + query.bindValue(":recno", this->recno); + query.exec(); + if (query.lastError().isValid()) { + qDebug() << "EditSupplier" << 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 { - /* Not saving */ - this->close(); - this->setResult(0); + qDebug() << "EditSupllier Deleted" << this->recno; } + + this->close(); + this->setResult(1); } void EditSupplier::is_changed() { + ui->saveButton->setEnabled(true); this->textIsChanged = true; WindowTitle(); } -void EditSupplier::onCancelButtonClicked() +void EditSupplier::on_quitButton_clicked() { + if (this->textIsChanged) { + int rc = QMessageBox::warning(this, tr("Supplier changed"), tr("The supplier has been modified\n Save changes?"), + QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Save); + switch (rc) { + case QMessageBox::Save: + on_saveButton_clicked(); + break; /* Saved and then Quit */ + case QMessageBox::Discard: + break; /* Quit without Save */ + case QMessageBox::Cancel: + return; /* Return to the editor page */ + } + } + this->close(); - this->setResult(0); + this->setResult(1); }