/
Team8
/
kittycad
Обзор
Документация
Войти
/
Team8
/
kittycad
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/gui/tools/assembly/assembly.cpp
91 строка
2 KB
levovix
progress: refactor<BIG>: new update system
30 дек 2025, 15:28
30 дек 2025, 15:28
52348a7
Код
Авторство
О чём код?
#include "./assembly.h" #include <QFormLayout> #include "data/document.h" #include "data/assembly/assembly.h" #include "gui/document_view.h" #include "gui/edits/point3_edit.h" AssemblyToolPanel::AssemblyToolPanel(AssemblyTool* tool, QWidget* parent) : ToolPanel(parent) , m_tool(tool) { initUi(); } AssemblyToolPanel::~AssemblyToolPanel() {} void AssemblyToolPanel::initUi() { auto layout = ToolPanel::newFormLayout(this); if (m_tool->m_activatedFromModelTree) { layout->addRow(newObjectNameEdit(m_tool->m_jig.lock().get())); } if (!m_tool->m_activatedFromModelTree) { layout->addRow(newStandardButtons(m_tool)); } } AssemblyTool::AssemblyTool(QWidget* parent): Tool(parent) {} AssemblyTool::~AssemblyTool() {} void AssemblyTool::activated(DocumentView *docView) { m_docView = docView; start(); assert(m_panel == nullptr); m_panel = new AssemblyToolPanel(this, (QWidget*)parent()); ((QWidget*)parent())->layout()->addWidget(m_panel); } void AssemblyTool::deactivated() { if (m_panel != nullptr) { delete m_panel; m_panel = nullptr; } Tool::deactivated(); } void AssemblyTool::createJig() { auto jig = create<data::Assembly>(m_docView->document()); m_jig = m_jigRef = jig; jig->tool = this; } void AssemblyTool::deteachFromJig() { if (!m_jig.expired()) { if (m_jig.lock()->tool == this) { m_jig.lock()->tool = nullptr; } } m_jig.reset(); m_jigRef.reset(); } void AssemblyTool::start() { if (m_jig.expired()) { createJig(); } } void AssemblyTool::finish() { if (m_jigRef != nullptr) { m_jigRef->document.lock()->addChild(m_jigRef); m_jigRef->document.lock()->setActiveAssembly(m_jigRef); m_jigRef->markPropertyChanged(); } deactivated(); }