Mon, 23 Sep 2019 14:06:36 +0300
added regular expressions for the parser
#pragma once #include <QPointF> #include <QString> #include <QStringView> #include "main.h" #include "colors.h" #include "uuid.h" #include "vertex.h" namespace modelobjects { enum class Property; class BaseObject; class ColoredBaseObject; } enum class modelobjects::Property { Color, Text, Point1, Point2, Point3, Point4, ControlPoint1, ControlPoint2, Position, Transformation, ReferenceName, IsInverted, }; class modelobjects::BaseObject { public: enum class SetPropertyResult { Success = 0, PropertyNotHandled, InvalidValue }; BaseObject(); BaseObject(const BaseObject&) = delete; virtual ~BaseObject(); const Uuid id; //virtual void toString(QTextStream &out) = 0; virtual bool hasColor() const; virtual QVariant getProperty(Property id) const; virtual SetPropertyResult setProperty(Property id, const QVariant& value); }; class modelobjects::ColoredBaseObject : public BaseObject { public: ColoredBaseObject(const Color color_index = colors::main); bool hasColor() const override final; QVariant getProperty(Property id) const override; SetPropertyResult setProperty(Property id, const QVariant& value) override; private: Color color_index = colors::main; };