#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; }