/
levovix
/
kittycad
Обзор
Документация
Войти
/
levovix
/
kittycad
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/gui/tools/tool.cpp
99 строк
2 KB
levovix
fix: icons are now embeded into binary
07 янв 2026, 19:47
07 янв 2026, 19:47
48fb22d
Код
Авторство
О чём код?
#include "tool.h" #include <QLayout> #include <QLabel> #include <QFormLayout> #include <QPushButton> #include "data/c3dobject.h" #include "gui/document_view.h" #include "gui/strings.h" #include "gui/utils.h" Tool::Tool(QWidget* parent): QObject(parent) {} Tool::~Tool() {} void Tool::activated(DocumentView* docView) { m_docView = docView; m_isActive = true; } void Tool::deactivated() { deteachFromJig(); m_isActive = false; if (m_docView != nullptr) { m_docView->documentUpdated(); if (m_docView->m_activeTool == this) { m_docView->m_activeTool = nullptr; } if (m_docView->m_toolForSelectedObject == this) { m_docView->m_toolForSelectedObject = nullptr; } } delete this; } void Tool::createJig() {} void Tool::deteachFromJig() {} void Tool::start() {} void Tool::finish() {} ToolPanel::ToolPanel(QWidget* parent) : QWidget(parent) {} ToolPanel::~ToolPanel() {} QFormLayout* ToolPanel::newFormLayout(QWidget* parent) { auto layout = new QFormLayout(parent); layout->setRowWrapPolicy(QFormLayout::WrapLongRows); layout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); layout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); layout->setLabelAlignment(Qt::AlignRight); return layout; } QPushButton* ToolPanel::newFinishButton(Tool* tool, QString label) { auto btn = new QPushButton(qIconFromResources("dialog-ok"), label, this); connect(btn, &QPushButton::clicked, tool, [tool]() { tool->finish(); }); return btn; } QPushButton* ToolPanel::newDeactivateButton(Tool* tool, QString label) { auto btn = new QPushButton(qIconFromResources("dialog-cancel"), label, this); connect(btn, &QPushButton::clicked, tool, [tool]() { tool->deactivated(); }); return btn; } QWidget* ToolPanel::newStandardButtons( Tool* tool, QString finishLabel, QString deactivateLabel ) { auto buttons_w = new QWidget(this); auto buttons_layout = new QHBoxLayout(buttons_w); buttons_layout->setContentsMargins(0, 0, 0, 0); buttons_layout->addWidget(newFinishButton(tool, finishLabel)); buttons_layout->addWidget(newDeactivateButton(tool, deactivateLabel)); return buttons_w; } QWidget* ToolPanel::newObjectNameEdit(data::C3dObject* jig) { auto w = new QWidget(this); auto layout = new QHBoxLayout(w); layout->setContentsMargins(0, 0, 0, 0); layout->addStretch(); layout->addWidget(new QLabel(toQString(jig->name()), w)); layout->addStretch(); return w; }