Tue, 28 Sep 2021 22:14:00 +0300
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 "selecttool.h" SelectTool::SelectTool(Model* model, QWidget* parent) : BaseTool{model, parent}, objectEditor{new ObjectEditor{model, ldraw::NULL_ID, parent}} {} QString SelectTool::name() const { static const QString result = tr("Select"); return result; } QString SelectTool::toolTip() const { static const QString result = tr("Select elements from the model."); return result; } bool SelectTool::mouseClick(Document* document, Canvas* canvas, QMouseEvent* event) { if (event->button() == Qt::LeftButton) { static_cast<void>(document); const ldraw::id_t highlighted = canvas->getHighlightedObject(); canvas->clearSelection(); if (highlighted != ldraw::NULL_ID) { canvas->addToSelection(highlighted); } return true; } else { return false; } } QWidget* SelectTool::toolWidget() { return this->objectEditor; } void SelectTool::selectionChanged(const QSet<ldraw::id_t>& newSelection) { if (newSelection.size() == 1) { this->objectEditor->setObjectId(*newSelection.begin()); } else { this->objectEditor->setObjectId(ldraw::NULL_ID); } }