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.
90 lines
3.0 KiB
90 lines
3.0 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 "wahldialog.h"
|
|
#include "ui_wahldialog.h"
|
|
#include "datedelegate.h"
|
|
|
|
#include <QSqlRecord>
|
|
#include <QDebug>
|
|
#include <QSqlError>
|
|
|
|
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();
|
|
}
|
|
}
|
|
|