diff -r 730c025d4b77 -r f378acbc9cfb src/hbcore/effects/hbeffectscale.cpp --- a/src/hbcore/effects/hbeffectscale.cpp Thu Jul 15 14:03:49 2010 +0100 +++ b/src/hbcore/effects/hbeffectscale.cpp Thu Jul 22 16:36:53 2010 +0100 @@ -35,11 +35,11 @@ HbEffectScaleAnimation::HbEffectScaleAnimation( HbEffectGroup *group, HbEffectScale *effect, - int duration ) : - HbEffectAnimation(group), - mEffect(effect), - mCenter(0), - mCurrentScaling(1.0) + int duration) : + HbEffectAnimation(group), + mEffect(effect), + mCenter(0), + mCurrentScaling(1.0) { setDuration(duration); } @@ -75,9 +75,9 @@ const QList &data, QGraphicsItem *item, HbEffectGroup *group) : - HbEffectAbstract(0, item, group), - mAnimationX(0), - mAnimationY(0) + HbEffectAbstract(0, item, group), + mAnimationX(0), + mAnimationY(0) { int durationX = 0; int durationY = 0; @@ -92,19 +92,19 @@ mCenterXValue = 0; mCenterYValue = 0; - const HbEffectFxmlParamData* paramX = 0; - const HbEffectFxmlParamData* paramY = 0; + const HbEffectFxmlParamData *paramX = 0; + const HbEffectFxmlParamData *paramY = 0; - Q_FOREACH(const HbEffectFxmlParamData ¶m, data) { - if (param.name() == FXML_KEYWORD_SCALE_X) { + Q_FOREACH(const HbEffectFxmlParamData & param, data) { + if (param.name() == FXML_KEYWORD_SCALE_X) { mKeyFrameListX = param.keyFrames(); - // for scale_x - mStartWidth = param.getAttribute(FXML_KEYWORD_START); - mStartWidthRef = param.startRef(); - // for scale_x - mEndWidth = param.getAttribute(FXML_KEYWORD_END); - mEndWidthRef = param.endRef(); - // duration and curvepath + // for scale_x + mStartWidth = param.getAttribute(FXML_KEYWORD_START); + mStartWidthRef = param.startRef(); + // for scale_x + mEndWidth = param.getAttribute(FXML_KEYWORD_END); + mEndWidthRef = param.endRef(); + // duration and curvepath HbEffectUtils::resolveFxmlDuration(durationX, param); HbEffectUtils::resolveFxmlCurveShape(curveX, param); @@ -114,15 +114,14 @@ } paramX = ¶m; - } - else if (param.name() == FXML_KEYWORD_SCALE_Y) { + } else if (param.name() == FXML_KEYWORD_SCALE_Y) { mKeyFrameListY = param.keyFrames(); - // for scale_y - mStartHeight = param.getAttribute(FXML_KEYWORD_START); - mStartHeightRef = param.startRef(); - // for scale_y - mEndHeight = param.getAttribute(FXML_KEYWORD_END); - mEndHeightRef = param.endRef(); + // for scale_y + mStartHeight = param.getAttribute(FXML_KEYWORD_START); + mStartHeightRef = param.startRef(); + // for scale_y + mEndHeight = param.getAttribute(FXML_KEYWORD_END); + mEndHeightRef = param.endRef(); HbEffectUtils::resolveFxmlDuration(durationY, param); HbEffectUtils::resolveFxmlCurveShape(curveY, param); @@ -132,22 +131,20 @@ } paramY = ¶m; - } - else if (param.name() == FXML_KEYWORD_SCALE_ORIGIN_X) { + } else if (param.name() == FXML_KEYWORD_SCALE_ORIGIN_X) { mCenterX = param.getValue(); mCenterXRef = param.getAttribute(FXML_PARAM_REF); - } - else if (param.name() == FXML_KEYWORD_SCALE_ORIGIN_Y) { + } else if (param.name() == FXML_KEYWORD_SCALE_ORIGIN_Y) { mCenterY = param.getValue(); mCenterYRef = param.getAttribute(FXML_PARAM_REF); - } + } } // Validate references. If start and end references are used, at least one of them must be a visual reference. if ((mStartWidthRef.isEmpty() || mStartWidthRef.startsWith(FXML_VISUAL) || - mEndWidthRef.isEmpty() || mEndWidthRef.startsWith(FXML_VISUAL)) && - (mStartHeightRef.isEmpty() || mStartHeightRef.startsWith(FXML_VISUAL) || - mEndHeightRef.isEmpty() || mEndHeightRef.startsWith(FXML_VISUAL))) { + mEndWidthRef.isEmpty() || mEndWidthRef.startsWith(FXML_VISUAL)) && + (mStartHeightRef.isEmpty() || mStartHeightRef.startsWith(FXML_VISUAL) || + mEndHeightRef.isEmpty() || mEndHeightRef.startsWith(FXML_VISUAL))) { // references ok } else { // Invalid references - disable effect @@ -187,7 +184,7 @@ /* deletes the effect and rewinds the animation so that next animation can star, - rewind is necessary as the general use case is that the effect is restarted before + rewind is necessary as the general use case is that the effect is restarted before being complete, in which case the rewind would transform the item and prepare for the next effect. */ @@ -224,7 +221,7 @@ // start width if (!mStartWidth.isEmpty()) { value = HbEffectUtils::resolveFxmlRef( - mStartWidthRef, mStartWidth, &valueOk, item(), HbEffectUtils::Size, extRect); + mStartWidthRef, mStartWidth, &valueOk, item(), HbEffectUtils::Size, extRect); if (valueOk) { mStartXValue = value; } @@ -240,7 +237,7 @@ // end width if (!mEndWidth.isEmpty()) { value = HbEffectUtils::resolveFxmlRef( - mEndWidthRef, mEndWidth, &valueOk, item(), HbEffectUtils::Size, extRect); + mEndWidthRef, mEndWidth, &valueOk, item(), HbEffectUtils::Size, extRect); if (valueOk) { mEndXValue = value; @@ -249,7 +246,7 @@ // end height if (!mEndHeight.isEmpty()) { value = HbEffectUtils::resolveFxmlRef( - mEndHeightRef, mEndHeight, &valueOk, item(), HbEffectUtils::Size, extRect); + mEndHeightRef, mEndHeight, &valueOk, item(), HbEffectUtils::Size, extRect); if (valueOk) { mEndYValue = value; @@ -258,14 +255,14 @@ // CenterX value = HbEffectUtils::resolveFxmlRef( - mCenterXRef, mCenterX, &valueOk, item(), HbEffectUtils::CenterMappedToTargetRect, extRect); - + mCenterXRef, mCenterX, &valueOk, item(), HbEffectUtils::CenterMappedToTargetRect, extRect); + if (valueOk) { mCenterXValue = value; } // CenterY value = HbEffectUtils::resolveFxmlRef( - mCenterYRef, mCenterY, &valueOk, item(), HbEffectUtils::CenterMappedToTargetRect, extRect); + mCenterYRef, mCenterY, &valueOk, item(), HbEffectUtils::CenterMappedToTargetRect, extRect); if (valueOk) { mCenterYValue = value; @@ -295,15 +292,15 @@ bool startEndRefUsed = !mStartWidthRef.isEmpty() && !mEndWidthRef.isEmpty(); qreal paramRefValueX = 0.0; - + // Resolve SCALE_X parameter's "ref" value only if that's needed if (!startEndRefUsed) { paramRefValueX = HbEffectUtils::resolveFxmlRef( - mParamRefX, "1", &valueOk, item(), HbEffectUtils::Size, extRect); + mParamRefX, "1", &valueOk, item(), HbEffectUtils::Size, extRect); } // Set keyframes in animation - foreach(const HbKeyFrame &kf, mKeyFrameListX) { + foreach(const HbKeyFrame & kf, mKeyFrameListX) { // If start and end references are used, // value at given step is (1-c)*startX + c*endX where c is the keyframe coefficient value @@ -342,11 +339,11 @@ // Resolve SCALE_Y parameter's "ref" value only if that's needed if (!startEndRefUsed) { paramRefValueY = HbEffectUtils::resolveFxmlRef( - mParamRefY, "1", &valueOk, item(), HbEffectUtils::Size, extRect); + mParamRefY, "1", &valueOk, item(), HbEffectUtils::Size, extRect); } // Set keyframes in animation - foreach(const HbKeyFrame &kf, mKeyFrameListY) { + foreach(const HbKeyFrame & kf, mKeyFrameListY) { // If start and end references are used, // value at given step is (1-c)*startY + c*endY where c is the keyframe coefficient value if (startEndRefUsed) { @@ -425,7 +422,7 @@ QTransform newTransform; // Handle centering for scaling the matrix newTransform.translate(mCenterXValue, mCenterYValue); - + // Get the current scaling factor from animation or use 1.0 if animation does not exist qreal currentScalingX = mAnimationX ? mAnimationX->mCurrentScaling : 1.0; qreal currentScalingY = mAnimationY ? mAnimationY->mCurrentScaling : 1.0;