ConstraintModel::ConstraintModel( const id_type<ConstraintModel>& id, const id_type<AbstractConstraintViewModel>& fullViewId, double yPos, QObject* parent) : IdentifiedObject<ConstraintModel> {id, "ConstraintModel", parent}, pluginModelList{iscore::IDocument::documentFromObject(parent), this}, m_fullViewModel{new FullViewConstraintViewModel{fullViewId, *this, this}} { setupConstraintViewModel(m_fullViewModel); metadata.setName(QString("Constraint.%1").arg(*this->id().val())); setHeightPercentage(yPos); }
void DuplicateInterval::redo(const score::DocumentContext& ctx) const { m_cmdStart.redo(ctx); m_cmdEnd.redo(ctx); auto& root = m_path.find(ctx); auto scenar = safe_cast<Scenario::ProcessModel*>(root.parent()); auto obj = score::marshall<DataStream>(root); auto interval = new Scenario::IntervalModel{DataStream::Deserializer{obj}, scenar}; score::IDocument::changeObjectId(*interval, m_createdId); interval->setStartState(m_cmdStart.createdState()); interval->setEndState(m_cmdEnd.createdState()); SetPreviousInterval(scenar->states.at(m_cmdEnd.createdState()), *interval); SetNextInterval(scenar->states.at(m_cmdStart.createdState()), *interval); interval->setHeightPercentage(root.heightPercentage() + 0.1); scenar->intervals.add(interval); }