Implementerte lagre som #11 og fikset bug #19

This commit is contained in:
Helge-Mikael Nordgård 2021-09-25 16:35:02 +02:00
parent 1e3c342693
commit c4688d7aec
2 changed files with 61 additions and 18 deletions

View File

@ -32,8 +32,9 @@ MainWindow::~MainWindow() {
*/ */
void MainWindow::on_actionNy_triggered() { void MainWindow::on_actionNy_triggered() {
QString stdSted = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
// konstruer stien ved hjelp av QFileDialog // konstruer stien ved hjelp av QFileDialog
filSti = QFileDialog::getSaveFileName(this, "Opprett ny databasefil", "/", "Database fil (*.saeter)"); filSti = QFileDialog::getSaveFileName(this, "Opprett ny databasefil", stdSted, "Database fil (*.saeter)");
// invokerer lagreFil fra DataHandler klassen der alle IO funksjoner ligger, kontroller om vi kan skrive til filen // invokerer lagreFil fra DataHandler klassen der alle IO funksjoner ligger, kontroller om vi kan skrive til filen
if (!filSti.isEmpty()) { if (!filSti.isEmpty()) {
if (!ioHandler->lagreFil(filSti, kundeKart, prosjektKart, bindinger)) { if (!ioHandler->lagreFil(filSti, kundeKart, prosjektKart, bindinger)) {
@ -71,8 +72,9 @@ void MainWindow::on_actionNy_triggered() {
*/ */
void MainWindow::on_action_pne_triggered() { void MainWindow::on_action_pne_triggered() {
QString stdSted = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
// konstruer stien ved hjelp av QFileDialog // konstruer stien ved hjelp av QFileDialog
filSti = QFileDialog::getOpenFileName(this, "Åpne databasefil", "/", "Database fil (*.saeter)"); filSti = QFileDialog::getOpenFileName(this, "Åpne databasefil", stdSted, "Database fil (*.saeter)");
if (!filSti.isEmpty()) { if (!filSti.isEmpty()) {
// invokerer lastFil fra DataHandler klassen der alle IO funksjoner ligger // invokerer lastFil fra DataHandler klassen der alle IO funksjoner ligger
@ -127,6 +129,62 @@ void MainWindow::on_action_pne_triggered() {
} }
} }
/* on_actionLagre_triggered():
* ------------------------------
*
* Lagrer endringer i databasen til fil
*/
void MainWindow::on_actionLagre_triggered() {
// invokerer lagreFil fra DataHandler klassen der alle IO funksjoner ligger
ioHandler->lagreFil(filSti, kundeKart, prosjektKart, bindinger);
// Oppdaterer diverse brytere i klassen for å reflektere endringer i programmet
harFil = true;
filLagret = true;
oppdaterTittel();
oppdaterUI();
}
/* on_actionL_agre_som_triggered():
* --------------------------------
*
* Lagrer en kopi av databasefilen
*/
void MainWindow::on_actionL_agre_som_triggered() {
QString stdSted = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
// konstruer stien ved hjelp av QFileDialog
filSti = QFileDialog::getSaveFileName(this, "Lagre gjeldende database med nytt navn", stdSted, "Database fil (*.saeter)");
// invokerer lagreFil fra DataHandler klassen der alle IO funksjoner ligger, kontroller om vi kan skrive til filen
if (!filSti.isEmpty()) {
if (!ioHandler->lagreFil(filSti, kundeKart, prosjektKart, bindinger)) {
ErrorCodes error = ioHandler->getError();
switch (error) {
case ErrorCodes::SKRIVEFEIL:
QMessageBox::critical(this, "Feil oppstod", "Kan ikke opprette databasefilen. Kontroller at du har skriverettigheter der du har oppgitt stedet på harddisken.");
break;
default:
break;
}
} else {
// Oppdaterer diverse brytere i klassen for å reflektere endringer i programmet
harFil = true;
filLagret = true;
oppdaterTittel();
oppdaterUI();
delete hest;
hest = new ArbeidsHest(this);
connect(hest, SIGNAL(alert(ProsjektFil,AlertConditions)), this, SLOT(varsle(ProsjektFil,AlertCondition)));
hest->setTidTaging(1000);
hest->settProsjekt(prosjektKart);
hest->run();
}
}
}
/* oppdaterTittel(): /* oppdaterTittel():
* ------------------------ * ------------------------
* *
@ -719,22 +777,6 @@ void MainWindow::knyttProsjekt(int kunde, int prosjekt) {
QMessageBox::information(this, "Tilknyttet", tr("Kunde med kundenummer %1 er tilknyttet prosjekt med ordrenummer %2").arg(kunde).arg(prosjekt)); QMessageBox::information(this, "Tilknyttet", tr("Kunde med kundenummer %1 er tilknyttet prosjekt med ordrenummer %2").arg(kunde).arg(prosjekt));
} }
/* on_actionLagre_triggered():
* ------------------------------
*
* Lagrer endringer i databasen til fil
*/
void MainWindow::on_actionLagre_triggered() {
// invokerer lagreFil fra DataHandler klassen der alle IO funksjoner ligger
ioHandler->lagreFil(filSti, kundeKart, prosjektKart, bindinger);
// Oppdaterer diverse brytere i klassen for å reflektere endringer i programmet
harFil = true;
filLagret = true;
oppdaterTittel();
oppdaterUI();
}
/* on_action_Innstillinger_triggered(): /* on_action_Innstillinger_triggered():
* -------------------------------------- * --------------------------------------
* *

View File

@ -36,6 +36,7 @@ private slots:
void on_actionNy_triggered(); void on_actionNy_triggered();
void on_action_pne_triggered(); void on_action_pne_triggered();
void on_action_Avslutt_triggered(); void on_action_Avslutt_triggered();
void on_actionL_agre_som_triggered();
void on_actionLagre_triggered(); void on_actionLagre_triggered();
void on_action_Innstillinger_triggered(); void on_action_Innstillinger_triggered();
void barnDialogLukket(); void barnDialogLukket();