diff -r 6e838748867b -r 20d2ed3af73d src/objecttypes/modelobject.h --- a/src/objecttypes/modelobject.h Sun Nov 03 18:09:47 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -#pragma once -#include -#include -#include -#include "main.h" -#include "colors.h" -#include "vertex.h" - -namespace linetypes -{ - enum class Property; - class Object; - class ColoredObject; - class Empty; -} - -/** - * @brief Different properties that can be queried with getProperty - */ -enum class linetypes::Property -{ - Color, // Color of the object - Text, // Text contained in a comment - Point1, // First vertex in a polygon or edge line - Point2, // Second vertex in a polygon or edge line - Point3, // Third vertex in a polygon - Point4, // Fourth vertex in a quadrilateral - ControlPoint1, // First control point in a conditional edge line - ControlPoint2, // Second control point in a conditional edge line - Position, // Position of a subfile reference - Transformation, // Transformation matrix of a subfile reference - ReferenceName, // Subfile reference name - IsInverted, // Whether or not the object has been inverted with BFC INVERTNEXT - ErrorMessage // For error lines, why parsing failed -}; - -class linetypes::Object -{ -public: - enum class SetPropertyResult - { - Success = 0, - PropertyNotHandled, - InvalidValue - }; - Object(); - Object(const Object&) = delete; - virtual ~Object(); - const unsigned int 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); - virtual QString textRepresentation() const = 0; - virtual QBrush textRepresentationForeground() const; - virtual QBrush textRepresentationBackground() const; - virtual QFont textRepresentationFont() const; -}; - -class linetypes::ColoredObject : public Object -{ -public: - ColoredObject(const Color colorIndex = colors::main); - bool hasColor() const override final; - QVariant getProperty(Property id) const override; - SetPropertyResult setProperty(Property id, const QVariant& value) override; -private: - Color colorIndex = colors::main; -}; - -/** - * @brief Represents an empty line. - */ -class linetypes::Empty : public Object -{ - QString textRepresentation() const override; -}; - -namespace linetypes -{ - using Id = std::decay_t; -}