feat(editor): local-space/world-space toggle

This commit is contained in:
maelstrom 2025-03-29 23:38:27 +01:00
parent 3fc20fcd4e
commit 62835505f9
2 changed files with 32 additions and 2 deletions

View file

@ -35,6 +35,8 @@
bool simulationPlaying = false;
bool worldSpaceTransforms = false;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
@ -102,6 +104,16 @@ MainWindow::MainWindow(QWidget *parent)
}
});
connect(ui->actionToggleSpace, &QAction::triggered, this, [&]() {
worldSpaceTransforms = !worldSpaceTransforms;
updateToolbars();
if (worldSpaceTransforms) {
ui->actionToggleSpace->setText("W");
} else {
ui->actionToggleSpace->setText("L");
}
});
connect(ui->actionSave, &QAction::triggered, this, [&]() {
std::optional<std::string> path;
if (!dataModel->HasFile())
@ -305,8 +317,11 @@ void MainWindow::updateToolbars() {
ui->actionGridSnapOff->setChecked(snappingMode == GridSnappingMode::SNAP_OFF);
// editorToolHandles->worldMode = false;
if (selectedTool == SelectedTool::MOVE) editorToolHandles->worldMode = true;
if (selectedTool == SelectedTool::SCALE) editorToolHandles->worldMode = false;
if (selectedTool == SelectedTool::SCALE)
editorToolHandles->worldMode = false;
else
editorToolHandles->worldMode = worldSpaceTransforms;
editorToolHandles->active = selectedTool != SelectedTool::SELECT;
editorToolHandles->handlesType =
selectedTool == SelectedTool::MOVE ? HandlesType::MoveHandles

View file

@ -124,6 +124,7 @@
<addaction name="actionToolMove"/>
<addaction name="actionToolScale"/>
<addaction name="actionToolRotate"/>
<addaction name="actionToggleSpace"/>
<addaction name="separator"/>
<addaction name="actionDelete"/>
<addaction name="actionCopy"/>
@ -465,6 +466,20 @@
<enum>QAction::MenuRole::QuitRole</enum>
</property>
</action>
<action name="actionToggleSpace">
<property name="text">
<string>L</string>
</property>
<property name="toolTip">
<string>Switch between local and world space transformations</string>
</property>
<property name="shortcut">
<string>Ctrl+L</string>
</property>
<property name="menuRole">
<enum>QAction::MenuRole::NoRole</enum>
</property>
</action>
</widget>
<customwidgets>
<customwidget>