73 lines
1.8 KiB
C++
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;
|
|
}
|