Saeterprosjekt/src/core/datahandler.cpp

73 lines
1.8 KiB
C++

#include "datahandler.h"
DataHandler::DataHandler(QObject *parent) : QObject(parent) {
errorState = false;
}
bool DataHandler::lagreFil(QString filSti, KundeKartotek &kartotek, ProsjektKartotek &pKartotek, ProsjektBindinger &bindinger) {
QFile fil(filSti);
if (!fil.open(QIODevice::WriteOnly)) {
errorState = true;
errorCode = ErrorCodes::SKRIVEFEIL;
return false;
}
QDataStream ut(&fil);
ut.setVersion(QDataStream::Qt_5_9);
ut << APPLIKASJON_STEMPEL;
ut << APP_VERSJON;
ut << DB_VERSJON;
ut << kartotek;
ut << pKartotek;
ut << bindinger;
fil.flush();
fil.close();
return true;
}
bool DataHandler::lastFil(QString filSti, KundeKartotek &kartotek, ProsjektKartotek &pKartotek, ProsjektBindinger &bindinger) {
QFile fil(filSti);
if (!fil.open(QIODevice::ReadOnly)) {
errorState = true;
errorCode = ErrorCodes::LESEFEIL;
return false;
}
QDataStream inn(&fil);
inn.setVersion(QDataStream::Qt_5_9);
quint64 kontrollStempel;
qreal appVersjon, dbVersjon;
inn >> kontrollStempel;
inn >> appVersjon;
inn >> dbVersjon;
if (kontrollStempel != APPLIKASJON_STEMPEL) {
errorState = true;
errorCode = ErrorCodes::UGYLDIG_FIL;
return false;
} else if (appVersjon != APP_VERSJON) {
} else if (dbVersjon != DB_VERSJON) {
errorState = true;
errorCode = ErrorCodes::DB_VERSJONSKONFLIKT;
return false;
}
inn >> kartotek;
inn >> pKartotek;
inn >> bindinger;
fil.close();
return true;
}
bool DataHandler::hasError() {
return errorState;
}
ErrorCodes DataHandler::getError() {
return errorCode;
}