src/ui/objecteditor.cpp

Tue, 28 Sep 2021 22:14:00 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Tue, 28 Sep 2021 22:14:00 +0300
changeset 143
7b62c52835a1
parent 81
62373840e33a
child 152
03f8e6d42e13
permissions
-rw-r--r--

Fix memory corruption involving document tools.
I don't think that the metaobject-initialization had anything to do with this
but it is a lot simpler without it anyway.

#include <QVBoxLayout>
#include "objecteditor.h"

ObjectEditor::ObjectEditor(Model* model, const ldraw::id_t id, QWidget *parent) :
	QWidget{parent},
	model{model}
{
	this->setObjectId(id);
	this->setLayout(new QVBoxLayout{this});
}

void ObjectEditor::setObjectId(const ldraw::id_t id)
{
	this->objectId = id;
	const ldraw::Object* object = this->model->get(id);
	if (object != nullptr and object->numPoints() > 0)
	{
		if (not this->polygonEditor.has_value())
		{
			this->polygonEditor.emplace(this->model, id);
			this->layout()->addWidget(&*this->polygonEditor);
		}
		else
		{
			this->polygonEditor->setObjectId(id);
		}
	}
	else
	{
		this->polygonEditor.reset();
	}
}

mercurial