# HG changeset patch # User Teemu Piippo # Date 1566647082 -10800 # Node ID 2bdc3ac5e77cf8ae47263ceeed8e3bf29ce055d1 # Parent 51d14b0c68c061fdc31ce0a6a60d11efe3defe70 things diff -r 51d14b0c68c0 -r 2bdc3ac5e77c CMakeLists.txt --- a/CMakeLists.txt Sat Aug 03 01:18:56 2019 +0300 +++ b/CMakeLists.txt Sat Aug 24 14:44:42 2019 +0300 @@ -20,11 +20,16 @@ set (LDFORGE_SOURCES src/main.cpp src/mainwindow.cpp + src/modelobject.cpp + src/uuid.cpp src/version.cpp ) set (LDFORGE_HEADERS src/main.h src/mainwindow.h + src/mainwindow.h + src/modelobject.h + src/uuid.h src/version.h ) set (LDFORGE_FORMS diff -r 51d14b0c68c0 -r 2bdc3ac5e77c src/main.cpp --- a/src/main.cpp Sat Aug 03 01:18:56 2019 +0300 +++ b/src/main.cpp Sat Aug 24 14:44:42 2019 +0300 @@ -1,6 +1,7 @@ #include #include "main.h" #include "mainwindow.h" +#include int main(int argc, char *argv[]) { diff -r 51d14b0c68c0 -r 2bdc3ac5e77c src/main.h --- a/src/main.h Sat Aug 03 01:18:56 2019 +0300 +++ b/src/main.h Sat Aug 24 14:44:42 2019 +0300 @@ -1,1 +1,6 @@ #pragma once +#include +#include +#include + +static constexpr long double pi = 3.14159265358979323846264338327950288419716939937510L; diff -r 51d14b0c68c0 -r 2bdc3ac5e77c src/modelobject.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/modelobject.cpp Sat Aug 24 14:44:42 2019 +0300 @@ -0,0 +1,22 @@ +#include "modelobject.h" + +static Uuid &getUuidForNewObject() +{ + static Uuid running_uuid {0, 0}; + incrementUuid(running_uuid); + return running_uuid; +} + +ModelObject::ModelObject() : + id {getUuidForNewObject()} +{ +} + +ModelObject::~ModelObject() +{ +} + + +Comment::Comment(QStringView text) : + ModelObject{}, + storedText{text} {} diff -r 51d14b0c68c0 -r 2bdc3ac5e77c src/modelobject.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/modelobject.h Sat Aug 24 14:44:42 2019 +0300 @@ -0,0 +1,24 @@ +#pragma once +#include +#include +#include "uuid.h" + +class ModelObject +{ +public: + ModelObject(); + virtual ~ModelObject(); + + const Uuid id; + virtual void toString(QTextStream &out) = 0; +private: + +}; + +class Comment : public ModelObject +{ + Comment(QStringView text); + +private: + QStringView storedText; +}; diff -r 51d14b0c68c0 -r 2bdc3ac5e77c src/uuid.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/uuid.cpp Sat Aug 24 14:44:42 2019 +0300 @@ -0,0 +1,22 @@ +#include "uuid.h" +#include + +void uuidToString(const Uuid &uuid, QTextStream &stream) +{ + stream << "0x"; + stream << QString::number(uuid.a, 16); + stream << QString::number(uuid.b, 16); +} + +void incrementUuid(Uuid &uuid) +{ + if (uuid.b == std::numeric_limits::max()) + { + uuid.a += 1; + uuid.b = 0; + } + else + { + uuid.b += 1; + } +} diff -r 51d14b0c68c0 -r 2bdc3ac5e77c src/uuid.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/uuid.h Sat Aug 24 14:44:42 2019 +0300 @@ -0,0 +1,12 @@ +#pragma once +#include +#include + +struct Uuid +{ + quint64 a; + quint64 b; +}; + +void incrementUuid(Uuid &uuid); +void uuidToString(const Uuid &uuid, QTextStream &stream);