Пример #1
0
void MapEditorTool::finishEditingSelection(MapRenderables& renderables, MapRenderables& old_renderables, bool create_undo_step, bool delete_objects)
{
	Q_ASSERT(undo_duplicates.size() == map()->selectedObjects().size());
	
	ReplaceObjectsUndoStep* undo_step = create_undo_step ? new ReplaceObjectsUndoStep(map()) : nullptr;
	
	std::size_t i = 0;
	for (Object* object : map()->selectedObjects())
	{
		if (!delete_objects)
		{
			object->setMap(map());
			object->update();
		}
		
		if (create_undo_step)
			undo_step->addObject(object, undo_duplicates[i]);
		else
			delete undo_duplicates[i];
		++i;
	}
	renderables.clear();
	deleteOldSelectionRenderables(old_renderables, true);
	
	undo_duplicates.clear();
	if (create_undo_step)
		map()->push(undo_step);
	
	editor->setEditingInProgress(false);
}
Пример #2
0
MapEditorToolBase::~MapEditorToolBase()
{
	deleteOldSelectionRenderables(*old_renderables, false);
	if (key_button_bar)
		editor->deletePopupWidget(key_button_bar);
}
Пример #3
0
ScaleTool::~ScaleTool()
{
	deleteOldSelectionRenderables(*old_renderables, false);
}