diff --git a/src/Editor/ModelEditor/CModelEditorWindow.cpp b/src/Editor/ModelEditor/CModelEditorWindow.cpp index 6bd03ac7..134f754e 100644 --- a/src/Editor/ModelEditor/CModelEditorWindow.cpp +++ b/src/Editor/ModelEditor/CModelEditorWindow.cpp @@ -97,6 +97,19 @@ CModelEditorWindow::CModelEditorWindow(QWidget *pParent) ui->AnimParamCSpinBox->setProperty ("ModelEditorWidgetType", eAnimParamCSpinBox); ui->AnimParamDSpinBox->setProperty ("ModelEditorWidgetType", eAnimParamDSpinBox); + connect(ui->ActionOpen, SIGNAL(triggered()), this, SLOT(Open())); + connect(ui->ActionImport, SIGNAL(triggered()), this, SLOT(Import())); + connect(ui->ActionSave, SIGNAL(triggered()), this, SLOT(Save())); + connect(ui->ActionSaveAs, SIGNAL(triggered()), this, SLOT(SaveAs())); + connect(ui->ActionConvertToDDS, SIGNAL(triggered()), this, SLOT(ConvertToDDS())); + connect(ui->ActionConvertToTXTR, SIGNAL(triggered()), this, SLOT(ConvertToTXTR())); + connect(ui->MeshPreviewButton, SIGNAL(clicked()), this, SLOT(SetMeshPreview())); + connect(ui->SpherePreviewButton, SIGNAL(clicked()), this, SLOT(SetSpherePreview())); + connect(ui->FlatPreviewButton, SIGNAL(clicked()), this, SLOT(SetFlatPreview())); + connect(ui->ClearColorPicker, SIGNAL(ColorChanged(QColor)), this, SLOT(ClearColorChanged(QColor))); + connect(ui->CameraModeButton, SIGNAL(clicked()), this, SLOT(ToggleCameraMode())); + connect(ui->ToggleGridButton, SIGNAL(toggled(bool)), this, SLOT(ToggleGrid(bool))); + connect(ui->SetSelectionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateUI(int))); connect(ui->MatSelectionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateUI(int))); connect(ui->EnableTransparencyCheck, SIGNAL(toggled(bool)), this, SLOT(UpdateMaterial(bool))); @@ -109,10 +122,10 @@ CModelEditorWindow::CModelEditorWindow(QWidget *pParent) connect(ui->EnableDynamicLightingCheck, SIGNAL(toggled(bool)), this, SLOT(UpdateMaterial(bool))); connect(ui->SourceBlendComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateMaterial(int))); connect(ui->DestBlendComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateMaterial(int))); - connect(ui->KonstColorPickerA, SIGNAL(colorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); - connect(ui->KonstColorPickerB, SIGNAL(colorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); - connect(ui->KonstColorPickerC, SIGNAL(colorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); - connect(ui->KonstColorPickerD, SIGNAL(colorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); + connect(ui->KonstColorPickerA, SIGNAL(ColorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); + connect(ui->KonstColorPickerB, SIGNAL(ColorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); + connect(ui->KonstColorPickerC, SIGNAL(ColorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); + connect(ui->KonstColorPickerD, SIGNAL(ColorChanged(QColor)), this, SLOT(UpdateMaterial(QColor))); connect(ui->PassTable, SIGNAL(cellClicked(int,int)), this, SLOT(UpdateMaterial(int, int))); connect(ui->TevKColorSelComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateMaterial(int))); connect(ui->TevKAlphaSelComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(UpdateMaterial(int))); @@ -703,27 +716,7 @@ void CModelEditorWindow::UpdateAnimParamUI(int Mode) } } -void CModelEditorWindow::on_actionConvert_to_DDS_triggered() -{ - QString Input = QFileDialog::getOpenFileName(this, "Retro Texture (*.TXTR)", "", "*.TXTR"); - if (Input.isEmpty()) return; - - TString TexFilename = Input.toStdString(); - TResPtr pTex = (CTexture*) gResCache.GetResource(TexFilename); - TString OutName = TexFilename.GetFilePathWithoutExtension() + ".dds"; - - CFileOutStream Out(OutName.ToStdString(), IOUtil::eLittleEndian); - if (!Out.IsValid()) QMessageBox::warning(this, "Error", "Couldn't open output DDS!"); - - else - { - bool success = pTex->WriteDDS(Out); - if (!success) QMessageBox::warning(this, "Error", "Couldn't write output DDS!"); - else QMessageBox::information(this, "Success", "Successfully converted to DDS!"); - } -} - -void CModelEditorWindow::on_actionOpen_triggered() +void CModelEditorWindow::Open() { QString ModelFilename = QFileDialog::getOpenFileName(this, "Save model", "", "Retro Model (*.CMDL)"); if (ModelFilename.isEmpty()) return; @@ -739,61 +732,20 @@ void CModelEditorWindow::on_actionOpen_triggered() gResCache.Clean(); } -void CModelEditorWindow::on_actionSave_triggered() +void CModelEditorWindow::Import() { - if (!mpCurrentModel) return; + QString FileName = QFileDialog::getOpenFileName(this, "Model", "", "*.obj;*.fbx;*.dae;*.3ds;*.blend"); + if (FileName.isEmpty()) return; - if (mOutputFilename.isEmpty()) - { - on_actionSave_as_triggered(); - return; - } - - CFileOutStream CMDLOut(mOutputFilename.toStdString(), IOUtil::eBigEndian); - CModelCooker::WriteCookedModel(mpCurrentModel, ePrime, CMDLOut); - QMessageBox::information(this, "Saved", "Model saved!"); -} - -void CModelEditorWindow::closeEvent(QCloseEvent*) -{ - emit Closed(); -} - -void CModelEditorWindow::on_MeshPreviewButton_clicked() -{ - ui->Viewport->SetDrawMode(CModelEditorViewport::eDrawMesh); -} - -void CModelEditorWindow::on_SpherePreviewButton_clicked() -{ - ui->Viewport->SetDrawMode(CModelEditorViewport::eDrawSphere); -} - -void CModelEditorWindow::on_FlatPreviewButton_clicked() -{ - ui->Viewport->SetDrawMode(CModelEditorViewport::eDrawSquare); -} - -void CModelEditorWindow::on_ClearColorPicker_colorChanged(const QColor &Color) -{ - CColor NewColor = CColor::Integral(Color.red(), Color.green(), Color.blue(), Color.alpha()); - ui->Viewport->SetClearColor(NewColor); -} - -void CModelEditorWindow::on_actionImport_triggered() -{ - QString filename = QFileDialog::getOpenFileName(this, "Model", "", "*.obj;*.fbx;*.dae;*.3ds;*.blend"); - if (filename.isEmpty()) return; - - Assimp::Importer importer; - importer.SetPropertyInteger(AI_CONFIG_PP_FD_REMOVE, 1); - importer.SetPropertyInteger(AI_CONFIG_PP_RVC_FLAGS, + Assimp::Importer Importer; + Importer.SetPropertyInteger(AI_CONFIG_PP_FD_REMOVE, 1); + Importer.SetPropertyInteger(AI_CONFIG_PP_RVC_FLAGS, aiComponent_TANGENTS_AND_BITANGENTS | aiComponent_ANIMATIONS | aiComponent_LIGHTS | aiComponent_CAMERAS); - const aiScene *pScene = importer.ReadFile(filename.toStdString(), + const aiScene *pScene = Importer.ReadFile(FileName.toStdString(), aiProcess_JoinIdenticalVertices | aiProcess_Triangulate | aiProcess_RemoveComponent | @@ -823,42 +775,54 @@ void CModelEditorWindow::on_actionImport_triggered() gResCache.Clean(); } -void CModelEditorWindow::on_actionSave_as_triggered() +void CModelEditorWindow::Save() +{ + if (!mpCurrentModel) return; + + if (mOutputFilename.isEmpty()) + { + SaveAs(); + return; + } + + CFileOutStream CMDLOut(mOutputFilename.toStdString(), IOUtil::eBigEndian); + CModelCooker::WriteCookedModel(mpCurrentModel, ePrime, CMDLOut); + QMessageBox::information(this, "Saved", "Model saved!"); +} + +void CModelEditorWindow::SaveAs() { QString FileName = QFileDialog::getSaveFileName(this, "Save model", "", "Retro Model (*.CMDL)"); if (FileName.isEmpty()) return; mOutputFilename = FileName; - on_actionSave_triggered(); + Save(); - TString name = TString(FileName.toStdString()); - setWindowTitle("Prime World Editor - Model Editor: " + TO_QSTRING(name)); + TString Name = TString(FileName.toStdString()); + setWindowTitle("Prime World Editor - Model Editor: " + TO_QSTRING(Name)); } -void CModelEditorWindow::on_CameraModeButton_clicked() +void CModelEditorWindow::ConvertToDDS() { - CCamera *pCam = &ui->Viewport->Camera(); + QString Input = QFileDialog::getOpenFileName(this, "Retro Texture (*.TXTR)", "", "*.TXTR"); + if (Input.isEmpty()) return; - if (pCam->MoveMode() == eOrbitCamera) + TString TexFilename = Input.toStdString(); + TResPtr pTex = gResCache.GetResource(TexFilename); + TString OutName = TexFilename.GetFilePathWithoutExtension() + ".dds"; + + CFileOutStream Out(OutName.ToStdString(), IOUtil::eLittleEndian); + if (!Out.IsValid()) QMessageBox::warning(this, "Error", "Couldn't open output DDS!"); + + else { - pCam->SetMoveMode(eFreeCamera); - ui->CameraModeButton->setIcon(QIcon(":/icons/Show.png")); - ui->CameraModeButton->setToolTip(QString("Free Camera")); - } - - else if (pCam->MoveMode() == eFreeCamera) - { - pCam->SetMoveMode(eOrbitCamera); - ui->CameraModeButton->setIcon(QIcon(":/icons/Orbit Camera.png")); - ui->CameraModeButton->setToolTip(QString("Orbit Camera")); - - CVector3f Pos = pCam->Position(); - CVector3f Target = mpCurrentModelNode->AABox().Center(); - pCam->SetOrbitDistance(Pos.Distance(Target)); + bool Success = pTex->WriteDDS(Out); + if (!Success) QMessageBox::warning(this, "Error", "Couldn't write output DDS!"); + else QMessageBox::information(this, "Success", "Successfully converted to DDS!"); } } -void CModelEditorWindow::on_actionConvert_DDS_to_TXTR_triggered() +void CModelEditorWindow::ConvertToTXTR() { QString Input = QFileDialog::getOpenFileName(this, "DirectDraw Surface (*.dds)", "", "*.dds"); if (Input.isEmpty()) return; @@ -883,7 +847,56 @@ void CModelEditorWindow::on_actionConvert_DDS_to_TXTR_triggered() } } -void CModelEditorWindow::on_ToggleGridButton_toggled(bool Checked) +void CModelEditorWindow::SetMeshPreview() { - ui->Viewport->SetGridEnabled(Checked); + ui->Viewport->SetDrawMode(CModelEditorViewport::eDrawMesh); +} + +void CModelEditorWindow::SetSpherePreview() +{ + ui->Viewport->SetDrawMode(CModelEditorViewport::eDrawSphere); +} + +void CModelEditorWindow::SetFlatPreview() +{ + ui->Viewport->SetDrawMode(CModelEditorViewport::eDrawSquare); +} + +void CModelEditorWindow::ClearColorChanged(const QColor& rkNewColor) +{ + CColor Color = TO_CCOLOR(rkNewColor); + ui->Viewport->SetClearColor(Color); +} + +void CModelEditorWindow::ToggleCameraMode() +{ + CCamera *pCam = &ui->Viewport->Camera(); + + if (pCam->MoveMode() == eOrbitCamera) + { + pCam->SetMoveMode(eFreeCamera); + ui->CameraModeButton->setIcon(QIcon(":/icons/Show.png")); + ui->CameraModeButton->setToolTip(QString("Free Camera")); + } + + else if (pCam->MoveMode() == eFreeCamera) + { + pCam->SetMoveMode(eOrbitCamera); + ui->CameraModeButton->setIcon(QIcon(":/icons/Orbit Camera.png")); + ui->CameraModeButton->setToolTip(QString("Orbit Camera")); + + CVector3f Pos = pCam->Position(); + CVector3f Target = mpCurrentModelNode->AABox().Center(); + pCam->SetOrbitDistance(Pos.Distance(Target)); + } +} + +void CModelEditorWindow::ToggleGrid(bool Enabled) +{ + ui->Viewport->SetGridEnabled(Enabled); +} + +void CModelEditorWindow::closeEvent(QCloseEvent*) +{ + emit Closed(); } diff --git a/src/Editor/ModelEditor/CModelEditorWindow.h b/src/Editor/ModelEditor/CModelEditorWindow.h index 8d2b7127..ae1ef266 100644 --- a/src/Editor/ModelEditor/CModelEditorWindow.h +++ b/src/Editor/ModelEditor/CModelEditorWindow.h @@ -98,28 +98,18 @@ private: }; private slots: - void on_actionConvert_to_DDS_triggered(); - - void on_actionOpen_triggered(); - void on_actionSave_triggered(); - - void on_MeshPreviewButton_clicked(); - - void on_SpherePreviewButton_clicked(); - - void on_FlatPreviewButton_clicked(); - - void on_ClearColorPicker_colorChanged(const QColor &); - - void on_actionImport_triggered(); - - void on_actionSave_as_triggered(); - - void on_CameraModeButton_clicked(); - - void on_actionConvert_DDS_to_TXTR_triggered(); - - void on_ToggleGridButton_toggled(bool checked); + void Open(); + void Import(); + void Save(); + void SaveAs(); + void ConvertToDDS(); + void ConvertToTXTR(); + void SetMeshPreview(); + void SetSpherePreview(); + void SetFlatPreview(); + void ClearColorChanged(const QColor& rkNewColor); + void ToggleCameraMode(); + void ToggleGrid(bool Enabled); signals: void Closed(); diff --git a/src/Editor/ModelEditor/CModelEditorWindow.ui b/src/Editor/ModelEditor/CModelEditorWindow.ui index a611f842..fabacef6 100644 --- a/src/Editor/ModelEditor/CModelEditorWindow.ui +++ b/src/Editor/ModelEditor/CModelEditorWindow.ui @@ -2396,8 +2396,8 @@ false - - + + @@ -2412,29 +2412,29 @@ File - - - - + + + + - + Textures - - + + - + Open - + Exit @@ -2442,32 +2442,32 @@ Esc - + Save - + Export to DDS - + Export curent model's textures - + Import - + Save as... - + Convert DDS to TXTR @@ -2485,7 +2485,7 @@
Editor/Widgets/WColorPicker.h
1 - colorChanged(QColor) + ColorChanged(QColor) diff --git a/src/Editor/PropertyEdit/CPropertyDelegate.cpp b/src/Editor/PropertyEdit/CPropertyDelegate.cpp index 2091b35e..a25a4807 100644 --- a/src/Editor/PropertyEdit/CPropertyDelegate.cpp +++ b/src/Editor/PropertyEdit/CPropertyDelegate.cpp @@ -97,7 +97,7 @@ QWidget* CPropertyDelegate::createEditor(QWidget *pParent, const QStyleOptionVie case eColorProperty: { WColorPicker *pColorPicker = new WColorPicker(pParent); - CONNECT_RELAY(pColorPicker, rkIndex, colorChanged(QColor)); + CONNECT_RELAY(pColorPicker, rkIndex, ColorChanged(QColor)); pOut = pColorPicker; break; } @@ -265,14 +265,8 @@ void CPropertyDelegate::setEditorData(QWidget *pEditor, const QModelIndex &rkInd WColorPicker *pColorPicker = static_cast(pEditor); TColorProperty *pColor = static_cast(pProp); - CColor SrcColor = pColor->Get(); - QColor Color; - Color.setRed(SrcColor.R * 255); - Color.setGreen(SrcColor.G * 255); - Color.setBlue(SrcColor.B * 255); - Color.setAlpha(SrcColor.A * 255); - - pColorPicker->SetColor(Color); + CColor Color = pColor->Get(); + pColorPicker->SetColor(TO_QCOLOR(Color)); break; } @@ -430,13 +424,8 @@ void CPropertyDelegate::setModelData(QWidget *pEditor, QAbstractItemModel* /*pMo WColorPicker *pColorPicker = static_cast(pEditor); TColorProperty *pColor = static_cast(pProp); - QColor SrcColor = pColorPicker->Color(); - CColor Color; - Color.R = SrcColor.red() / 255.f; - Color.G = SrcColor.green() / 255.f; - Color.B = SrcColor.blue() / 255.f; - Color.A = SrcColor.alpha() / 255.f; - pColor->Set(Color); + QColor Color = pColorPicker->Color(); + pColor->Set(TO_CCOLOR(Color)); break; } diff --git a/src/Editor/UICommon.h b/src/Editor/UICommon.h index b4f1a43b..27769fae 100644 --- a/src/Editor/UICommon.h +++ b/src/Editor/UICommon.h @@ -5,9 +5,11 @@ #include #include -#define TO_QSTRING(str) UICommon::ToQString(str) -#define TO_TSTRING(str) UICommon::ToTString(str) -#define TO_TWIDESTRING(str) UICommon::ToTWideString(str) +#define TO_QSTRING(Str) UICommon::ToQString(Str) +#define TO_TSTRING(Str) UICommon::ToTString(Str) +#define TO_TWIDESTRING(Str) UICommon::ToTWideString(Str) +#define TO_CCOLOR(Clr) CColor::Integral(Clr.red(), Clr.green(), Clr.blue(), Clr.alpha()) +#define TO_QCOLOR(Clr) QColor(Clr.R * 255, Clr.G * 255, Clr.B * 255, Clr.A * 255) namespace UICommon { diff --git a/src/Editor/WorldEditor/CWorldEditor.cpp b/src/Editor/WorldEditor/CWorldEditor.cpp index ba623b79..f8f5a36d 100644 --- a/src/Editor/WorldEditor/CWorldEditor.cpp +++ b/src/Editor/WorldEditor/CWorldEditor.cpp @@ -106,17 +106,39 @@ CWorldEditor::CWorldEditor(QWidget *parent) connect(ui->TransformSpinBox, SIGNAL(ValueChanged(CVector3f)), this, SLOT(OnTransformSpinBoxModified(CVector3f))); connect(ui->TransformSpinBox, SIGNAL(EditingDone(CVector3f)), this, SLOT(OnTransformSpinBoxEdited(CVector3f))); connect(ui->CamSpeedSpinBox, SIGNAL(valueChanged(double)), this, SLOT(OnCameraSpeedChange(double))); - connect(ui->ActionLink, SIGNAL(toggled(bool)), this, SLOT(OnLinkButtonToggled(bool))); - connect(ui->ActionUnlink, SIGNAL(triggered()), this, SLOT(OnUnlinkClicked())); - connect(ui->ActionDelete, SIGNAL(triggered()), this, SLOT(DeleteSelection())); - connect(ui->ActionCut, SIGNAL(triggered()), this, SLOT(Cut())); - connect(ui->ActionCopy, SIGNAL(triggered()), this, SLOT(Copy())); - connect(ui->ActionPaste, SIGNAL(triggered()), this, SLOT(Paste())); connect(qApp->clipboard(), SIGNAL(dataChanged()), this, SLOT(OnClipboardDataModified())); connect(&mUndoStack, SIGNAL(indexChanged(int)), this, SLOT(OnUndoStackIndexChanged())); connect(ui->ActionSave, SIGNAL(triggered()), this, SLOT(Save())); connect(ui->ActionSaveAndRepack, SIGNAL(triggered()), this, SLOT(SaveAndRepack())); + connect(ui->ActionCut, SIGNAL(triggered()), this, SLOT(Cut())); + connect(ui->ActionCopy, SIGNAL(triggered()), this, SLOT(Copy())); + connect(ui->ActionPaste, SIGNAL(triggered()), this, SLOT(Paste())); + connect(ui->ActionDelete, SIGNAL(triggered()), this, SLOT(DeleteSelection())); + connect(ui->ActionSelectAll, SIGNAL(triggered()), this, SLOT(SelectAllTriggered())); + connect(ui->ActionInvertSelection, SIGNAL(triggered()), this, SLOT(InvertSelectionTriggered())); + connect(ui->ActionLink, SIGNAL(toggled(bool)), this, SLOT(OnLinkButtonToggled(bool))); + connect(ui->ActionUnlink, SIGNAL(triggered()), this, SLOT(OnUnlinkClicked())); + + connect(ui->ActionDrawWorld, SIGNAL(triggered()), this, SLOT(ToggleDrawWorld())); + connect(ui->ActionDrawObjects, SIGNAL(triggered()), this, SLOT(ToggleDrawObjects())); + connect(ui->ActionDrawCollision, SIGNAL(triggered()), this, SLOT(ToggleDrawCollision())); + connect(ui->ActionDrawObjectCollision, SIGNAL(triggered()), this, SLOT(ToggleDrawObjectCollision())); + connect(ui->ActionDrawLights, SIGNAL(triggered()), this, SLOT(ToggleDrawLights())); + connect(ui->ActionGameMode, SIGNAL(triggered()), this, SLOT(ToggleGameMode())); + connect(ui->ActionDisableBackfaceCull, SIGNAL(triggered()), this, SLOT(ToggleBackfaceCull())); + connect(ui->ActionDisableAlpha, SIGNAL(triggered()), this, SLOT(ToggleDisableAlpha())); + connect(ui->ActionNoLighting, SIGNAL(triggered()), this, SLOT(SetNoLighting())); + connect(ui->ActionBasicLighting, SIGNAL(triggered()), this, SLOT(SetBasicLighting())); + connect(ui->ActionWorldLighting, SIGNAL(triggered()), this, SLOT(SetWorldLighting())); + connect(ui->ActionNoBloom, SIGNAL(triggered()), this, SLOT(SetNoBloom())); + connect(ui->ActionBloomMaps, SIGNAL(triggered()), this, SLOT(SetBloomMaps())); + connect(ui->ActionFakeBloom, SIGNAL(triggered()), this, SLOT(SetFakeBloom())); + connect(ui->ActionBloom, SIGNAL(triggered()), this, SLOT(SetBloom())); + connect(ui->ActionIncrementGizmo, SIGNAL(triggered()), this, SLOT(IncrementGizmo())); + connect(ui->ActionDecrementGizmo, SIGNAL(triggered()), this, SLOT(DecrementGizmo())); + connect(ui->ActionEditLayers, SIGNAL(triggered()), this, SLOT(EditLayers())); + connect(ui->ActionEditPoiToWorldMap, SIGNAL(triggered()), this, SLOT(EditPoiToWorldMap())); ui->CreateTabEditorProperties->SyncToEditor(this); ui->ModifyTabEditorProperties->SyncToEditor(this); @@ -189,7 +211,7 @@ void CWorldEditor::SetArea(CWorld *pWorld, CGameArea *pArea) // Default bloom to Fake Bloom for Metroid Prime 3; disable for other games bool AllowBloom = (mpWorld->Version() == eCorruptionProto || mpWorld->Version() == eCorruption); - AllowBloom ? on_ActionFakeBloom_triggered() : on_ActionNoBloom_triggered(); + AllowBloom ? SetFakeBloom() : SetNoBloom(); ui->menuBloom->setEnabled(AllowBloom); // Disable EGMC editing for Prime 1 and DKCR @@ -951,33 +973,66 @@ void CWorldEditor::OnClosePoiEditDialog() ui->MainViewport->SetRenderMergedWorld(true); } -// These functions are from "Go to slot" in the designer -void CWorldEditor::on_ActionDrawWorld_triggered() +void CWorldEditor::SelectAllTriggered() +{ + FNodeFlags NodeFlags = CScene::NodeFlagsForShowFlags(ui->MainViewport->ShowFlags()); + NodeFlags &= ~(eModelNode | eStaticNode | eCollisionNode); + SelectAll(NodeFlags); +} + +void CWorldEditor::InvertSelectionTriggered() +{ + FNodeFlags NodeFlags = CScene::NodeFlagsForShowFlags(ui->MainViewport->ShowFlags()); + NodeFlags &= ~(eModelNode | eStaticNode | eCollisionNode); + InvertSelection(NodeFlags); +} + +void CWorldEditor::ToggleDrawWorld() { ui->MainViewport->SetShowWorld(ui->ActionDrawWorld->isChecked()); } -void CWorldEditor::on_ActionDrawCollision_triggered() -{ - ui->MainViewport->SetShowFlag(eShowWorldCollision, ui->ActionDrawCollision->isChecked()); -} - -void CWorldEditor::on_ActionDrawObjects_triggered() +void CWorldEditor::ToggleDrawObjects() { ui->MainViewport->SetShowFlag(eShowObjectGeometry, ui->ActionDrawObjects->isChecked()); } -void CWorldEditor::on_ActionDrawLights_triggered() +void CWorldEditor::ToggleDrawCollision() +{ + ui->MainViewport->SetShowFlag(eShowWorldCollision, ui->ActionDrawCollision->isChecked()); +} + +void CWorldEditor::ToggleDrawObjectCollision() +{ + ui->MainViewport->SetShowFlag(eShowObjectCollision, ui->ActionDrawObjectCollision->isChecked()); +} + +void CWorldEditor::ToggleDrawLights() { ui->MainViewport->SetShowFlag(eShowLights, ui->ActionDrawLights->isChecked()); } -void CWorldEditor::on_ActionDrawSky_triggered() +void CWorldEditor::ToggleDrawSky() { ui->MainViewport->SetShowFlag(eShowSky, ui->ActionDrawSky->isChecked()); } -void CWorldEditor::on_ActionNoLighting_triggered() +void CWorldEditor::ToggleGameMode() +{ + ui->MainViewport->SetGameMode(ui->ActionGameMode->isChecked()); +} + +void CWorldEditor::ToggleBackfaceCull() +{ + ui->MainViewport->Renderer()->ToggleBackfaceCull(!ui->ActionDisableBackfaceCull->isChecked()); +} + +void CWorldEditor::ToggleDisableAlpha() +{ + ui->MainViewport->Renderer()->ToggleAlphaDisabled(ui->ActionDisableAlpha->isChecked()); +} + +void CWorldEditor::SetNoLighting() { CGraphics::sLightMode = CGraphics::eNoLighting; ui->ActionNoLighting->setChecked(true); @@ -985,7 +1040,7 @@ void CWorldEditor::on_ActionNoLighting_triggered() ui->ActionWorldLighting->setChecked(false); } -void CWorldEditor::on_ActionBasicLighting_triggered() +void CWorldEditor::SetBasicLighting() { CGraphics::sLightMode = CGraphics::eBasicLighting; ui->ActionNoLighting->setChecked(false); @@ -993,7 +1048,7 @@ void CWorldEditor::on_ActionBasicLighting_triggered() ui->ActionWorldLighting->setChecked(false); } -void CWorldEditor::on_ActionWorldLighting_triggered() +void CWorldEditor::SetWorldLighting() { CGraphics::sLightMode = CGraphics::eWorldLighting; ui->ActionNoLighting->setChecked(false); @@ -1001,7 +1056,7 @@ void CWorldEditor::on_ActionWorldLighting_triggered() ui->ActionWorldLighting->setChecked(true); } -void CWorldEditor::on_ActionNoBloom_triggered() +void CWorldEditor::SetNoBloom() { ui->MainViewport->Renderer()->SetBloom(CRenderer::eNoBloom); ui->ActionNoBloom->setChecked(true); @@ -1010,7 +1065,7 @@ void CWorldEditor::on_ActionNoBloom_triggered() ui->ActionBloom->setChecked(false); } -void CWorldEditor::on_ActionBloomMaps_triggered() +void CWorldEditor::SetBloomMaps() { ui->MainViewport->Renderer()->SetBloom(CRenderer::eBloomMaps); ui->ActionNoBloom->setChecked(false); @@ -1019,7 +1074,7 @@ void CWorldEditor::on_ActionBloomMaps_triggered() ui->ActionBloom->setChecked(false); } -void CWorldEditor::on_ActionFakeBloom_triggered() +void CWorldEditor::SetFakeBloom() { ui->MainViewport->Renderer()->SetBloom(CRenderer::eFakeBloom); ui->ActionNoBloom->setChecked(false); @@ -1028,7 +1083,7 @@ void CWorldEditor::on_ActionFakeBloom_triggered() ui->ActionBloom->setChecked(false); } -void CWorldEditor::on_ActionBloom_triggered() +void CWorldEditor::SetBloom() { ui->MainViewport->Renderer()->SetBloom(CRenderer::eBloom); ui->ActionNoBloom->setChecked(false); @@ -1037,17 +1092,17 @@ void CWorldEditor::on_ActionBloom_triggered() ui->ActionBloom->setChecked(true); } -void CWorldEditor::on_ActionDisableBackfaceCull_triggered() +void CWorldEditor::IncrementGizmo() { - ui->MainViewport->Renderer()->ToggleBackfaceCull(!ui->ActionDisableBackfaceCull->isChecked()); + mGizmo.IncrementSize(); } -void CWorldEditor::on_ActionDisableAlpha_triggered() +void CWorldEditor::DecrementGizmo() { - ui->MainViewport->Renderer()->ToggleAlphaDisabled(ui->ActionDisableAlpha->isChecked()); + mGizmo.DecrementSize(); } -void CWorldEditor::on_ActionEditLayers_triggered() +void CWorldEditor::EditLayers() { // Launch layer editor CLayerEditor Editor(this); @@ -1055,41 +1110,7 @@ void CWorldEditor::on_ActionEditLayers_triggered() Editor.exec(); } -void CWorldEditor::on_ActionIncrementGizmo_triggered() -{ - mGizmo.IncrementSize(); -} - -void CWorldEditor::on_ActionDecrementGizmo_triggered() -{ - mGizmo.DecrementSize(); -} - -void CWorldEditor::on_ActionDrawObjectCollision_triggered() -{ - ui->MainViewport->SetShowFlag(eShowObjectCollision, ui->ActionDrawObjectCollision->isChecked()); -} - -void CWorldEditor::on_ActionGameMode_triggered() -{ - ui->MainViewport->SetGameMode(ui->ActionGameMode->isChecked()); -} - -void CWorldEditor::on_ActionSelectAll_triggered() -{ - FNodeFlags NodeFlags = CScene::NodeFlagsForShowFlags(ui->MainViewport->ShowFlags()); - NodeFlags &= ~(eModelNode | eStaticNode | eCollisionNode); - SelectAll(NodeFlags); -} - -void CWorldEditor::on_ActionInvertSelection_triggered() -{ - FNodeFlags NodeFlags = CScene::NodeFlagsForShowFlags(ui->MainViewport->ShowFlags()); - NodeFlags &= ~(eModelNode | eStaticNode | eCollisionNode); - InvertSelection(NodeFlags); -} - -void CWorldEditor::on_ActionEditPoiToWorldMap_triggered() +void CWorldEditor::EditPoiToWorldMap() { if (!mpPoiDialog) { diff --git a/src/Editor/WorldEditor/CWorldEditor.h b/src/Editor/WorldEditor/CWorldEditor.h index 3e3f9c9b..51e39f9a 100644 --- a/src/Editor/WorldEditor/CWorldEditor.h +++ b/src/Editor/WorldEditor/CWorldEditor.h @@ -111,28 +111,29 @@ private slots: void OnTransformSpinBoxModified(CVector3f Value); void OnTransformSpinBoxEdited(CVector3f Value); void OnClosePoiEditDialog(); - void on_ActionDrawWorld_triggered(); - void on_ActionDrawCollision_triggered(); - void on_ActionDrawObjects_triggered(); - void on_ActionDrawLights_triggered(); - void on_ActionDrawSky_triggered(); - void on_ActionNoLighting_triggered(); - void on_ActionBasicLighting_triggered(); - void on_ActionWorldLighting_triggered(); - void on_ActionNoBloom_triggered(); - void on_ActionBloomMaps_triggered(); - void on_ActionFakeBloom_triggered(); - void on_ActionBloom_triggered(); - void on_ActionDisableBackfaceCull_triggered(); - void on_ActionDisableAlpha_triggered(); - void on_ActionEditLayers_triggered(); - void on_ActionIncrementGizmo_triggered(); - void on_ActionDecrementGizmo_triggered(); - void on_ActionDrawObjectCollision_triggered(); - void on_ActionGameMode_triggered(); - void on_ActionSelectAll_triggered(); - void on_ActionInvertSelection_triggered(); - void on_ActionEditPoiToWorldMap_triggered(); + + void SelectAllTriggered(); + void InvertSelectionTriggered(); + void ToggleDrawWorld(); + void ToggleDrawObjects(); + void ToggleDrawCollision(); + void ToggleDrawObjectCollision(); + void ToggleDrawLights(); + void ToggleDrawSky(); + void ToggleGameMode(); + void ToggleBackfaceCull(); + void ToggleDisableAlpha(); + void SetNoLighting(); + void SetBasicLighting(); + void SetWorldLighting(); + void SetNoBloom(); + void SetBloomMaps(); + void SetFakeBloom(); + void SetBloom(); + void IncrementGizmo(); + void DecrementGizmo(); + void EditLayers(); + void EditPoiToWorldMap(); signals: void Closed();