ezQtMeshAssetDocumentWindow::ezQtMeshAssetDocumentWindow(ezMeshAssetDocument* pDocument) : ezQtEngineDocumentWindow(pDocument) { // Menu Bar { ezQtMenuBarActionMapView* pMenuBar = static_cast<ezQtMenuBarActionMapView*>(menuBar()); ezActionContext context; context.m_sMapping = "MeshAssetMenuBar"; context.m_pDocument = pDocument; context.m_pWindow = this; pMenuBar->SetActionContext(context); } // Tool Bar { ezQtToolBarActionMapView* pToolBar = new ezQtToolBarActionMapView("Toolbar", this); ezActionContext context; context.m_sMapping = "MeshAssetToolBar"; context.m_pDocument = pDocument; context.m_pWindow = this; pToolBar->SetActionContext(context); pToolBar->setObjectName("MeshAssetWindowToolBar"); addToolBar(pToolBar); } // 3D View ezQtViewWidgetContainer* pContainer = nullptr; { SetTargetFramerate(25); m_ViewConfig.m_Camera.LookAt(ezVec3(-1.6, 0, 0), ezVec3(0, 0, 0), ezVec3(0, 0, 1)); m_ViewConfig.ApplyPerspectiveSetting(90); m_pViewWidget = new ezQtOrbitCamViewWidget(this, &m_ViewConfig); m_pViewWidget->ConfigureOrbitCameraVolume(ezVec3(0, 0, 1), ezVec3(10.0f), ezVec3(-5, 1, 2)); AddViewWidget(m_pViewWidget); pContainer = new ezQtViewWidgetContainer(this, m_pViewWidget, "MeshAssetViewToolBar"); setCentralWidget(pContainer); } // Property Grid { ezQtDocumentPanel* pPropertyPanel = new ezQtDocumentPanel(this); pPropertyPanel->setObjectName("MeshAssetDockWidget"); pPropertyPanel->setWindowTitle("Mesh Properties"); pPropertyPanel->show(); ezQtPropertyGridWidget* pPropertyGrid = new ezQtPropertyGridWidget(pPropertyPanel, pDocument); pPropertyPanel->setWidget(pPropertyGrid); addDockWidget(Qt::DockWidgetArea::RightDockWidgetArea, pPropertyPanel); pDocument->GetSelectionManager()->SetSelection(pDocument->GetObjectManager()->GetRootObject()->GetChildren()[0]); } FinishWindowCreation(); QueryObjectBBox(0); }
ezQtSurfaceAssetDocumentWindow::ezQtSurfaceAssetDocumentWindow(ezDocument* pDocument) : ezQtDocumentWindow(pDocument) { // Menu Bar { ezQtMenuBarActionMapView* pMenuBar = static_cast<ezQtMenuBarActionMapView*>(menuBar()); ezActionContext context; context.m_sMapping = "SurfaceAssetMenuBar"; context.m_pDocument = pDocument; context.m_pWindow = this; pMenuBar->SetActionContext(context); } // Tool Bar { ezQtToolBarActionMapView* pToolBar = new ezQtToolBarActionMapView("Toolbar", this); ezActionContext context; context.m_sMapping = "SurfaceAssetToolBar"; context.m_pDocument = pDocument; context.m_pWindow = this; pToolBar->SetActionContext(context); pToolBar->setObjectName("SurfaceAssetWindowToolBar"); addToolBar(pToolBar); } { ezQtDocumentPanel* pPropertyPanel = new ezQtDocumentPanel(this); pPropertyPanel->setObjectName("SurfaceAssetDockWidget"); pPropertyPanel->setWindowTitle("Surface Properties"); pPropertyPanel->show(); ezQtPropertyGridWidget* pPropertyGrid = new ezQtPropertyGridWidget(pPropertyPanel, pDocument); pPropertyPanel->setWidget(pPropertyGrid); addDockWidget(Qt::DockWidgetArea::RightDockWidgetArea, pPropertyPanel); pDocument->GetSelectionManager()->SetSelection(pDocument->GetObjectManager()->GetRootObject()->GetChildren()[0]); } FinishWindowCreation(); }
ezQtSettingsTab::ezQtSettingsTab() : ezQtDocumentWindow("") , m_SingletonRegistrar(this) { setCentralWidget(new QWidget()); EZ_ASSERT_DEV(centralWidget() != nullptr, ""); setupUi(centralWidget()); QMetaObject::connectSlotsByName(this); ezQtMenuBarActionMapView* pMenuBar = static_cast<ezQtMenuBarActionMapView*>(menuBar()); ezActionContext context; context.m_sMapping = "SettingsTabMenuBar"; context.m_pDocument = nullptr; pMenuBar->SetActionContext(context); FinishWindowCreation(); WhatsNewText->setText(ezQtEditorApp::GetSingleton()->GetWhatsNew().GetText().GetData()); }
ezQtPropertyAnimAssetDocumentWindow::ezQtPropertyAnimAssetDocumentWindow(ezPropertyAnimAssetDocument* pDocument) : ezQtGameObjectDocumentWindow(pDocument) { auto ViewFactory = [](ezQtEngineDocumentWindow* pWindow, ezEngineViewConfig* pConfig) -> ezQtEngineViewWidget* { ezQtGameObjectViewWidget* pWidget = new ezQtGameObjectViewWidget(nullptr, static_cast<ezQtPropertyAnimAssetDocumentWindow*>(pWindow), pConfig); pWindow->AddViewWidget(pWidget); return pWidget; }; m_pQuadViewWidget = new ezQtQuadViewWidget(pDocument, this, ViewFactory, "PropertyAnimAssetViewToolBar"); pDocument->SetEditToolConfigDelegate( [this](ezGameObjectEditTool* pTool) { pTool->ConfigureTool(static_cast<ezGameObjectDocument*>(GetDocument()), this, this); }); pDocument->m_PropertyAnimEvents.AddEventHandler( ezMakeDelegate(&ezQtPropertyAnimAssetDocumentWindow::PropertyAnimAssetEventHandler, this)); setCentralWidget(m_pQuadViewWidget); SetTargetFramerate(25); // Menu Bar { ezQtMenuBarActionMapView* pMenuBar = static_cast<ezQtMenuBarActionMapView*>(menuBar()); ezActionContext context; context.m_sMapping = "PropertyAnimAssetMenuBar"; context.m_pDocument = pDocument; context.m_pWindow = this; pMenuBar->SetActionContext(context); } // Tool Bar { ezQtToolBarActionMapView* pToolBar = new ezQtToolBarActionMapView("Toolbar", this); ezActionContext context; context.m_sMapping = "PropertyAnimAssetToolBar"; context.m_pDocument = pDocument; context.m_pWindow = this; pToolBar->SetActionContext(context); pToolBar->setObjectName("PropertyAnimAssetWindowToolBar"); addToolBar(pToolBar); } // Game Object Graph { std::unique_ptr<ezQtDocumentTreeModel> pModel(new ezQtGameObjectModel(pDocument)); pModel->AddAdapter(new ezQtDummyAdapter(pDocument->GetObjectManager(), ezGetStaticRTTI<ezDocumentRoot>(), "TempObjects")); pModel->AddAdapter(new ezQtGameObjectAdapter(pDocument)); ezQtDocumentPanel* pGameObjectPanel = new ezQtGameObjectPanel(this, pDocument, "PropertyAnimAsset_ScenegraphContextMenu", std::move(pModel)); addDockWidget(Qt::DockWidgetArea::LeftDockWidgetArea, pGameObjectPanel); } // Property Grid { ezQtDocumentPanel* pPanel = new ezQtDocumentPanel(this); pPanel->setObjectName("PropertyAnimAssetDockWidget"); pPanel->setWindowTitle("Properties"); pPanel->show(); ezQtPropertyGridWidget* pPropertyGrid = new ezQtPropertyGridWidget(pPanel, pDocument); pPanel->setWidget(pPropertyGrid); addDockWidget(Qt::DockWidgetArea::RightDockWidgetArea, pPanel); } // Property Tree View { ezQtDocumentPanel* pPanel = new ezQtDocumentPanel(this); pPanel->setObjectName("PropertyAnimPropertiesDockWidget"); pPanel->setWindowTitle("Properties"); pPanel->show(); m_pPropertyTreeView = new ezQtPropertyAnimAssetTreeView(pPanel); m_pPropertyTreeView->setHeaderHidden(true); m_pPropertyTreeView->setRootIsDecorated(true); m_pPropertyTreeView->setUniformRowHeights(true); m_pPropertyTreeView->setExpandsOnDoubleClick(false); pPanel->setWidget(m_pPropertyTreeView); connect(m_pPropertyTreeView, &ezQtPropertyAnimAssetTreeView::DeleteSelectedItemsEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onDeleteSelectedItems); connect(m_pPropertyTreeView, &ezQtPropertyAnimAssetTreeView::RebindSelectedItemsEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onRebindSelectedItems); connect(m_pPropertyTreeView, &QTreeView::doubleClicked, this, &ezQtPropertyAnimAssetDocumentWindow::onTreeItemDoubleClicked); connect(m_pPropertyTreeView, &ezQtPropertyAnimAssetTreeView::FrameSelectedItemsEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onFrameSelectedTracks); addDockWidget(Qt::DockWidgetArea::LeftDockWidgetArea, pPanel); } // Property Model { m_pPropertiesModel = new ezQtPropertyAnimModel(GetPropertyAnimDocument(), this); m_pPropertyTreeView->setModel(m_pPropertiesModel); m_pPropertyTreeView->expandToDepth(2); m_pPropertyTreeView->initialize(); } // Selection Model { m_pPropertyTreeView->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); m_pPropertyTreeView->setSelectionMode(QAbstractItemView::SelectionMode::ExtendedSelection); m_pSelectionModel = new QItemSelectionModel(m_pPropertiesModel, this); m_pPropertyTreeView->setSelectionModel(m_pSelectionModel); connect(m_pSelectionModel, &QItemSelectionModel::selectionChanged, this, &ezQtPropertyAnimAssetDocumentWindow::onSelectionChanged); } // Float Curve Panel { m_pCurvePanel = new ezQtDocumentPanel(this); m_pCurvePanel->setObjectName("PropertyAnimFloatCurveDockWidget"); m_pCurvePanel->setWindowTitle("Curves"); m_pCurvePanel->show(); m_pCurveEditor = new ezQtCurve1DEditorWidget(m_pCurvePanel); m_pCurvePanel->setWidget(m_pCurveEditor); addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea, m_pCurvePanel); } // Color Gradient Panel { m_pColorGradientPanel = new ezQtDocumentPanel(this); m_pColorGradientPanel->setObjectName("PropertyAnimColorGradientDockWidget"); m_pColorGradientPanel->setWindowTitle("Color Gradient"); m_pColorGradientPanel->show(); m_pGradientEditor = new ezQtColorGradientEditorWidget(m_pColorGradientPanel); m_pColorGradientPanel->setWidget(m_pGradientEditor); addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea, m_pColorGradientPanel); } // Event Track Panel { m_pEventTrackPanel = new ezQtDocumentPanel(this); m_pEventTrackPanel->setObjectName("PropertyAnimEventTrackDockWidget"); m_pEventTrackPanel->setWindowTitle("Event Track"); m_pEventTrackPanel->show(); m_pEventTrackEditor = new ezQtEventTrackEditorWidget(m_pEventTrackPanel); m_pEventTrackPanel->setWidget(m_pEventTrackEditor); addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea, m_pEventTrackPanel); } // Time Scrubber { m_pScrubberToolbar = new ezQtTimeScrubberToolbar(this); connect(m_pScrubberToolbar, &ezQtTimeScrubberToolbar::ScrubberPosChangedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onScrubberPosChanged); connect(m_pScrubberToolbar, &ezQtTimeScrubberToolbar::PlayPauseEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onPlayPauseClicked); connect(m_pScrubberToolbar, &ezQtTimeScrubberToolbar::RepeatEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onRepeatClicked); connect(m_pScrubberToolbar, &ezQtTimeScrubberToolbar::DurationChangedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onDurationChangedEvent); connect(m_pScrubberToolbar, &ezQtTimeScrubberToolbar::AdjustDurationEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onAdjustDurationClicked); addToolBar(Qt::ToolBarArea::BottomToolBarArea, m_pScrubberToolbar); } // this would show the document properties // pDocument->GetSelectionManager()->SetSelection(pDocument->GetObjectManager()->GetRootObject()->GetChildren()[0]); // Curve editor events { connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::InsertCpEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveInsertCpAt); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::CpMovedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveCpMoved); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::CpDeletedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveCpDeleted); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::TangentMovedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveTangentMoved); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::TangentLinkEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onLinkCurveTangents); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::CpTangentModeEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveTangentModeChanged); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::BeginOperationEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveBeginOperation); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::EndOperationEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveEndOperation); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::BeginCpChangesEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveBeginCpChanges); connect(m_pCurveEditor, &ezQtCurve1DEditorWidget::EndCpChangesEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onCurveEndCpChanges); } // Gradient editor events { connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::ColorCpAdded, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientColorCpAdded); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::ColorCpMoved, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientColorCpMoved); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::ColorCpDeleted, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientColorCpDeleted); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::ColorCpChanged, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientColorCpChanged); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::AlphaCpAdded, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientAlphaCpAdded); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::AlphaCpMoved, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientAlphaCpMoved); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::AlphaCpDeleted, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientAlphaCpDeleted); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::AlphaCpChanged, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientAlphaCpChanged); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::IntensityCpAdded, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientIntensityCpAdded); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::IntensityCpMoved, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientIntensityCpMoved); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::IntensityCpDeleted, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientIntensityCpDeleted); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::IntensityCpChanged, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientIntensityCpChanged); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::BeginOperation, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientBeginOperation); connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::EndOperation, this, &ezQtPropertyAnimAssetDocumentWindow::onGradientEndOperation); // connect(m_pGradientEditor, &ezQtColorGradientEditorWidget::NormalizeRange, this, // &ezQtPropertyAnimAssetDocumentWindow::onGradientNormalizeRange); } // Event track editor events { connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::InsertCpEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackInsertCpAt); connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::CpMovedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackCpMoved); connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::CpDeletedEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackCpDeleted); connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::BeginOperationEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackBeginOperation); connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::EndOperationEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackEndOperation); connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::BeginCpChangesEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackBeginCpChanges); connect(m_pEventTrackEditor, &ezQtEventTrackEditorWidget::EndCpChangesEvent, this, &ezQtPropertyAnimAssetDocumentWindow::onEventTrackEndCpChanges); } // GetDocument()->GetObjectManager()->m_PropertyEvents.AddEventHandler(ezMakeDelegate(&ezQtPropertyAnimAssetDocumentWindow::PropertyEventHandler, // this)); GetDocument()->GetObjectManager()->m_StructureEvents.AddEventHandler( ezMakeDelegate(&ezQtPropertyAnimAssetDocumentWindow::StructureEventHandler, this)); GetDocument()->GetSelectionManager()->m_Events.AddEventHandler( ezMakeDelegate(&ezQtPropertyAnimAssetDocumentWindow::SelectionEventHandler, this)); GetDocument()->GetCommandHistory()->m_Events.AddEventHandler( ezMakeDelegate(&ezQtPropertyAnimAssetDocumentWindow::CommandHistoryEventHandler, this)); FinishWindowCreation(); { const ezUInt64 uiDuration = GetPropertyAnimDocument()->GetAnimationDurationTicks(); m_pScrubberToolbar->SetDuration(uiDuration, GetPropertyAnimDocument()->GetProperties()->m_uiFramesPerSecond); } UpdateCurveEditor(); UpdateGradientEditor(); UpdateEventTrackEditor(); }