void KPrDocument::removeAnimation( KPrShapeAnimation * animation, bool removeFromApplicationData ) { KoShape * shape = animation->shape(); KPrShapeAnimations & animations( animationsByPage( pageByShape( shape ) ) ); // remove animation from the list of animations animations.remove( animation ); KPrShapeApplicationData *applicationData = dynamic_cast<KPrShapeApplicationData*>(shape->applicationData()); Q_ASSERT(applicationData); if (removeFromApplicationData) { // remove animation from the shape animation data applicationData->animations().remove(animation); } else { applicationData->setDeleteAnimations(true); } }
void KPrDocument::addAnimation( KPrShapeAnimation * animation ) { KoShape * shape = animation->shape(); KPrShapeAnimations & animations( animationsByPage( pageByShape( shape ) ) ); // add animation to the list of animations animations.add( animation ); // add animation to the shape animation data so that it can be regenerated on delete shape and undo KPrShapeApplicationData * applicationData = dynamic_cast<KPrShapeApplicationData*>( shape->applicationData() ); if ( applicationData == 0 ) { applicationData = new KPrShapeApplicationData(); shape->setApplicationData( applicationData ); } applicationData->animations().insert( animation ); applicationData->setDeleteAnimations(false); }