Compare commits

..

2 Commits

Author SHA1 Message Date
6d9586ac6e Added deserialization from JSON file 2025-02-07 20:05:44 +02:00
f9c394e0d1 Added basic functionality backend in C++ 2025-02-07 19:24:34 +02:00
8 changed files with 104 additions and 2 deletions

View File

@ -17,6 +17,10 @@ qt_add_qml_module(appProject-Orion
VERSION 1.0
QML_FILES
Main.qml
SOURCES user.h user.cpp
SOURCES userlist.h userlist.cpp
SOURCES serialization.h
SOURCES serialization.cpp
)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.

View File

@ -19,7 +19,5 @@ Window {
text: qsTr("This view is currently empty :(")
height: parent.height
}
}
}

View File

@ -0,0 +1,35 @@
#include "serialization.h"
#include <filesystem>
#include <QFile>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
UserList&& loadUserList(const QString &file)
{
QFile doc{std::filesystem::path{file.toStdString()}};
QString fileContents = doc.readAll();
QJsonDocument document = QJsonDocument::fromJson(fileContents.toUtf8());
QJsonArray array = document.array();
QVector<User> container;
for (auto elem: array)
{
auto obj = elem.toObject();
User newUser{obj["name"].toString(), QDate::fromString(obj["date_of_birth"].toString()),
QDate::fromString(obj["date_of_death"].toString()), obj["default"].toBool()};
container.append(newUser);
}
UserList returnObj;
returnObj.setList(container);
return std::move(returnObj);
}
void saveUserList(const UserList &list)
{
}

View File

@ -0,0 +1,9 @@
#ifndef SERIALIZATION_H
#define SERIALIZATION_H
#include "userlist.h"
UserList &&loadUserList(const QString &file);
void saveUserList(const UserList &list);
#endif // SERIALIZATION_H

View File

@ -0,0 +1,5 @@
#include "user.h"
User::User(QString name, QDate dateOfBirth, QDate dateOfDeath, bool isItDefault)
: name{name}, dateOfBirth{dateOfBirth}, dateOfDeath{dateOfDeath}, isItDefault{isItDefault}
{}

17
src/Project-Orion/user.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef USER_H
#define USER_H
#include <qdatetime.h>
class User
{
public:
User(QString name, QDate dateOfBirth, QDate dateOfDeath, bool isItDefault = false);
private:
QString name;
QDate dateOfBirth;
QDate dateOfDeath;
bool isItDefault = false;
};
#endif // USER_H

View File

@ -0,0 +1,13 @@
#include "userlist.h"
UserList::UserList() {}
QVector<User> UserList::getList() const
{
return list;
}
void UserList::setList(const QVector<User> &newList)
{
list = newList;
}

View File

@ -0,0 +1,21 @@
#ifndef USERLIST_H
#define USERLIST_H
#include "user.h"
#include <QObject>
class UserList: public QObject
{
Q_OBJECT
public:
UserList();
QVector<User> getList() const;
void setList(const QVector<User> &newList);
private:
QVector<User> list;
};
#endif // USERLIST_H