Mitgliederverwaltung für einen Landesverband, Clientkomponente
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
pmv-client/amtadressdialog.cpp

103 lines
3.6 KiB

/* Diese Datei ist Teil von pmv-client <https://git.piratenpartei-sh.de>
*
* pmv-client ist Freie Software: Sie können es unter den Bedingungen
* der GNU General Public License, wie von der Free Software Foundation,
* Version 3 der Lizenz weiter verteilen und/oder modifizieren.
*
* Dieses Programm wird in der Hoffnung bereitgestellt, dass es nützlich sein
* wird, jedoch OHNE JEDE GEWÄHR,; sogar ohne die implizite Gewähr der
* MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
* Siehe die GNU General Public License für weitere Einzelheiten.
*
* Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
* Programm erhalten haben. Wenn nicht, siehe <https://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-only
*/
#include "amtadressdialog.h"
#include "ui_amtadressdialog.h"
#include <QSqlRecord>
#include <QDebug>
#include <QSqlError>
AmtAdressDialog::AmtAdressDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::AmtAdressDialog)
{
ui->setupUi(this);
// Modell initialisieren
model = new QSqlTableModel(this);
model->setTable("amtadresse");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setHeaderData(0, Qt::Horizontal, "ID");
model->setHeaderData(1, Qt::Horizontal, "Bezeichnung");
model->setHeaderData(2, Qt::Horizontal, "Abteilung");
model->setHeaderData(3, Qt::Horizontal, "Zusatz");
model->setHeaderData(4, Qt::Horizontal, "Straße");
model->setHeaderData(5, Qt::Horizontal, "PLZ");
model->setHeaderData(6, Qt::Horizontal, "Ort");
model->setHeaderData(7, Qt::Horizontal, "Telefon");
model->setHeaderData(8, Qt::Horizontal, "Email");
model->setHeaderData(9, Qt::Horizontal, "Bemerkungen");
model->setSort(0, Qt::AscendingOrder);
// View initialisieren
ui->tableView->setModel(model);
ui->tableView->setColumnHidden(0, true);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->horizontalHeader()->setStretchLastSection(true);
model->select();
// Mapping der Eingabefelder
mapper = new QDataWidgetMapper(this);
mapper->setModel(model);
mapper->addMapping(ui->lineEdit_bezeichnung, model->fieldIndex("bezeichnung"));
mapper->addMapping(ui->lineEdit_abteilung, model->fieldIndex("abteilung"));
mapper->addMapping(ui->lineEdit_zusatz, model->fieldIndex("zusatz"));
mapper->addMapping(ui->lineEdit_strasse, model->fieldIndex("strasse"));
mapper->addMapping(ui->lineEdit_plz, model->fieldIndex("plz"));
mapper->addMapping(ui->lineEdit_ort, model->fieldIndex("ort"));
mapper->addMapping(ui->lineEdit_telefon, model->fieldIndex("telefon"));
mapper->addMapping(ui->lineEdit_email, model->fieldIndex("email"));
mapper->addMapping(ui->plainTextEdit, model->fieldIndex("bemerkungen"));
connect(ui->tableView->selectionModel(),&QItemSelectionModel::currentRowChanged,
mapper, &QDataWidgetMapper::setCurrentModelIndex);
}
AmtAdressDialog::~AmtAdressDialog()
{
delete ui;
}
void AmtAdressDialog::on_buttonBox_accepted()
{
}
void AmtAdressDialog::on_pushButton_neu_clicked()
{
QSqlRecord r = model->record();
r.setGenerated("id", true);
r.setValue("bezeichnung", "Neues Amt");
if (!model->insertRecord(-1, r)) {
qDebug() << model->lastError().text();
}
}
void AmtAdressDialog::on_pushButton_speichern_clicked()
{
mapper->submit();
if (model->submitAll()) {
qDebug() << "Submitted to database";
} else {
qDebug() << "summitAll() failed!";
qDebug() << model->lastError().text();
}
}