/* Diese Datei ist Teil von pmv-client * * 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 . * * SPDX-License-Identifier: GPL-3.0-only */ #include "wahldialog.h" #include "ui_wahldialog.h" #include "datedelegate.h" #include #include #include WahlDialog::WahlDialog(QWidget *parent) : QDialog(parent), ui(new Ui::WahlDialog) { ui->setupUi(this); // Modell initialisieren model = new QSqlTableModel(this); model->setTable("wahl"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->setHeaderData(0, Qt::Horizontal, "ID"); model->setHeaderData(1, Qt::Horizontal, "Kürzel"); model->setHeaderData(2, Qt::Horizontal, "Bezeichnung"); model->setHeaderData(3, Qt::Horizontal, "Wahltag"); model->setSort(0, Qt::AscendingOrder); // View ui->tableView->setModel(model); ui->tableView->setColumnHidden(0, true); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableView->setColumnWidth(2, 200); // ui->tableView->resizeColumnsToContents(); ui->tableView->horizontalHeader()->setStretchLastSection(true); ui->tableView->setItemDelegateForColumn(3, new DateDelegate(ui->tableView)); model->select(); // Mapping der Eingabefelder mapper = new QDataWidgetMapper(this); mapper->setModel(model); mapper->addMapping(ui->lineEdit_kuerzel, model->fieldIndex("kuerzel")); mapper->addMapping(ui->lineEdit_bezeichnung, model->fieldIndex("bezeichnung")); mapper->addMapping(ui->dateEdit_wahltag, model->fieldIndex("wahltag")); connect(ui->tableView->selectionModel(),&QItemSelectionModel::currentRowChanged, mapper, &QDataWidgetMapper::setCurrentModelIndex); } WahlDialog::~WahlDialog() { delete ui; } void WahlDialog::on_buttonBox_accepted() { mapper->submit(); if (model->submitAll()) { qDebug() << "Submitted to database"; } else { qDebug() << "summitAll() failed!"; qDebug() << model->lastError().text(); } } void WahlDialog::on_pushButton_neu_clicked() { QSqlRecord r = model->record(); r.setGenerated("id", true); r.setValue("kuerzel", "Neu"); r.setValue("bezeichnung", "Neue Wahl"); r.setValue("wahltag", QDate::currentDate()); if (!model->insertRecord(-1, r)) { qDebug() << model->lastError().text(); } }