src/linetypes/metacommand.cpp

Sat, 05 Mar 2022 12:47:10 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 05 Mar 2022 12:47:10 +0200
changeset 159
1a04364d20b5
parent 158
5bd755eaa5a8
child 177
f69d53c053df
permissions
-rw-r--r--

fix crash when loading a file
`object` is moved so we cannot access it after moving

#include "metacommand.h"

ldraw::MetaCommand::MetaCommand(QStringView text) :
	Object{},
	storedText{text.toString()} {}

QVariant ldraw::MetaCommand::getProperty(Property property) const
{
	switch (property)
	{
	case Property::Text:
		return storedText;
	default:
		return Object::getProperty(property);
	}
}

void ldraw::MetaCommand::setProperty(ldraw::Object::SetPropertyResult* result, const PropertyKeyValue& pair)
{
	LDRAW_OBJECT_HANDLE_SET_PROPERTY(Text, {this->storedText = value;});
	BaseClass::setProperty(result, pair);
}

QString ldraw::MetaCommand::textRepresentation() const
{
	return this->storedText;
}

ldraw::Object::Type ldraw::MetaCommand::typeIdentifier() const
{
	return Type::MetaCommand;
}

/**
 * @brief @overload ldraw::Object::serialize
 * @param stream
 * @return stream
 */
QDataStream& ldraw::MetaCommand::serialize(QDataStream& stream) const
{
	return ldraw::Object::serialize(stream) << this->storedText;
}

/**
 * @brief @overload ldraw::Object::deserialize
 * @param stream
 * @return stream
 */
QDataStream& ldraw::MetaCommand::deserialize(QDataStream& stream)
{
	return ldraw::Object::deserialize(stream) >> this->storedText;
}

QString ldraw::MetaCommand::toLDrawCode() const
{
	return "0 " + this->storedText;
}

QString ldraw::MetaCommand::iconName() const
{
	return ":/icons/chatbubble-ellipses-outline.png";
}

mercurial