// HandleKeyUp bool TransformBox::HandleKeyUp(uint32 key, uint32 modifiers, Command** _command) { if (fCurrentCommand) { *_command = FinishTransaction(); return true; } return false; }
void ezQtPropertyAnimAssetDocumentWindow::onRebindSelectedItems() { auto pDoc = GetPropertyAnimDocument(); auto pHistory = pDoc->GetCommandHistory(); ezHybridArray<ezUuid, 16> rebindTracks; for (ezInt32 iTrack : m_MapSelectionToTrack) { const ezVariant trackGuid = pDoc->GetPropertyObject()->GetTypeAccessor().GetValue("Tracks", iTrack); if (trackGuid.IsValid()) rebindTracks.PushBack(trackGuid.Get<ezUuid>()); } if (m_iMapGradientToTrack >= 0) { const ezVariant trackGuid = pDoc->GetPropertyObject()->GetTypeAccessor().GetValue("Tracks", m_iMapGradientToTrack); if (trackGuid.IsValid()) rebindTracks.PushBack(trackGuid.Get<ezUuid>()); } bool ok = false; QString result = QInputDialog::getText(this, "Change Animation Binding", "New Binding Path:", QLineEdit::Normal, "", &ok); if (!ok) return; m_pSelectionModel->clear(); ezStringBuilder path = result.toUtf8().data(); ; path.MakeCleanPath(); const ezVariant varRes = path.GetData(); pHistory->StartTransaction("Rebind Tracks"); for (const ezUuid guid : rebindTracks) { ezSetObjectPropertyCommand cmdSet; cmdSet.m_Object = guid; cmdSet.m_sProperty = "ObjectPath"; cmdSet.m_NewValue = varRes; pDoc->GetCommandHistory()->AddCommand(cmdSet); } pHistory->FinishTransaction(); }
void ezQtPropertyAnimAssetDocumentWindow::onDeleteSelectedItems() { auto pDoc = GetPropertyAnimDocument(); auto pHistory = pDoc->GetCommandHistory(); pHistory->StartTransaction("Delete Tracks"); m_pGradientToDisplay = nullptr; m_CurvesToDisplay.Clear(); // delete the tracks with the highest index first, otherwise the lower indices become invalid // do this before modifying anything, as m_MapSelectionToTrack will change once the remove commands are executed ezHybridArray<ezInt32, 16> sortedTrackIDs; { for (ezInt32 iTrack : m_MapSelectionToTrack) { sortedTrackIDs.PushBack(iTrack); } if (m_iMapGradientToTrack >= 0) { sortedTrackIDs.PushBack(m_iMapGradientToTrack); } sortedTrackIDs.Sort(); } for (ezUInt32 i = sortedTrackIDs.GetCount(); i > 0; --i) { const ezInt32 iTrack = sortedTrackIDs[i - 1]; const ezVariant trackGuid = pDoc->GetPropertyObject()->GetTypeAccessor().GetValue("Tracks", iTrack); if (trackGuid.IsValid()) { ezRemoveObjectCommand cmd; cmd.m_Object = trackGuid.Get<ezUuid>(); pHistory->AddCommand(cmd); } } m_MapSelectionToTrack.Clear(); m_iMapGradientToTrack = -1; pHistory->FinishTransaction(); }
// FinishNudging Command* TransformBox::FinishNudging() { fNudging = false; return FinishTransaction(); }
// MouseUp Command* TransformBox::MouseUp() { fDragging = false; return FinishTransaction(); }