src/hbcore/effects/hbeffectplanarreflection.cpp
changeset 5 627c4a0fd0e7
parent 0 16d8024aca5e
equal deleted inserted replaced
3:11d3954df52a 5:627c4a0fd0e7
    23 **
    23 **
    24 ****************************************************************************/
    24 ****************************************************************************/
    25 #include <hbglobal.h>
    25 #include <hbglobal.h>
    26 #ifdef HB_FILTER_EFFECTS
    26 #ifdef HB_FILTER_EFFECTS
    27 
    27 
    28 #include "hbeffectplanarreflection_p.h"
    28 #include "hbeffectplanarreflection_p.h" //krazy:exclude=includes
    29 #include "hbeffectgroup_p.h"
    29 #include "hbeffectgroup_p.h"
    30 #include "hbeffectdef_p.h"
    30 #include "hbeffectdef_p.h"
    31 #include "hbvgchainedeffect_p.h"
    31 #include "hbvgchainedeffect_p.h"
    32 #include "hbvgreflectioneffect_p.h"
    32 #include "hbvgreflectioneffect_p.h"
    33 #include "hbeffectfilter_p.h"
    33 #include "hbeffectfilter_p.h"
    40 
    40 
    41 HbEffectPlanarReflection::HbEffectPlanarReflection(
    41 HbEffectPlanarReflection::HbEffectPlanarReflection(
    42     const HbEffectFxmlFilterData &data,
    42     const HbEffectFxmlFilterData &data,
    43     QGraphicsItem *item,
    43     QGraphicsItem *item,
    44     HbEffectGroup *group) :
    44     HbEffectGroup *group) :
    45         HbEffectFilter(0, item, group),
    45     HbEffectFilter(0, item, group),
    46         mAnimationO(0),
    46     mAnimationO(0),
    47         mAnimationC(0),
    47     mAnimationC(0),
    48         mAnimationX(0),
    48     mAnimationX(0),
    49         mAnimationY(0),
    49     mAnimationY(0),
    50         mAnimationF(0),
    50     mAnimationF(0),
    51         mVgReflection(0)
    51     mVgReflection(0)
    52 {
    52 {
    53     // Default values of if something is not passed in FXML
    53     // Default values of if something is not passed in FXML
    54     qreal opacity_start = 1;
    54     qreal opacity_start = 1;
    55     qreal opacity_end = 1;
    55     qreal opacity_end = 1;
    56 
    56 
    67     qreal fade_end = 0;
    67     qreal fade_end = 0;
    68 
    68 
    69     QList<HbEffectFxmlParamData> params = data.paramData();
    69     QList<HbEffectFxmlParamData> params = data.paramData();
    70 
    70 
    71     // Handle FXML parameters
    71     // Handle FXML parameters
    72     Q_FOREACH(const HbEffectFxmlParamData &param, params) {
    72     Q_FOREACH(const HbEffectFxmlParamData & param, params) {
    73         if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_OPACITY) {
    73         if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_OPACITY) {
    74             mAnimationO = createAnimation(param, opacity_start, opacity_end, group);
    74             mAnimationO = createAnimation(param, opacity_start, opacity_end, group);
    75         }
    75         } else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_COLOR) {
    76         else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_COLOR) {
       
    77             mAnimationC = createAnimation(param, color_start, color_end, group);
    76             mAnimationC = createAnimation(param, color_start, color_end, group);
    78         }
    77         } else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_OFFSET_X) {
    79         else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_OFFSET_X) {
       
    80             mAnimationX = createAnimation(param, offset_x_start, offset_x_end, group);
    78             mAnimationX = createAnimation(param, offset_x_start, offset_x_end, group);
    81         }
    79         } else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_OFFSET_Y) {
    82         else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_OFFSET_Y) {
       
    83             mAnimationY = createAnimation(param, offset_y_start, offset_y_end, group);
    80             mAnimationY = createAnimation(param, offset_y_start, offset_y_end, group);
    84         }
    81         } else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_FADE) {
    85         else if (param.name() == FXML_KEYWORD_PLANAR_REFLECTION_FADE) {
       
    86             mAnimationF = createAnimation(param, fade_start, fade_end, group);
    82             mAnimationF = createAnimation(param, fade_start, fade_end, group);
    87         }
    83         }
    88     }
    84     }
    89 
    85 
    90     // Create VG effect if there were effect parameters defined
    86     // Create VG effect if there were effect parameters defined
    91     if (mEffectDefined) {
    87     if (mEffectDefined) {
    92         // Add the effect to the filter effect chain in the effect group
    88         // Add the effect to the filter effect chain in the effect group
    93         HbVgChainedEffect *chain = HbEffectAbstract::group()->vgEffect();
    89         HbVgChainedEffect *chain = HbEffectAbstract::group()->vgEffect();
    94         
    90 
    95         mVgReflection = new HbVgReflectionEffect();
    91         mVgReflection = new HbVgReflectionEffect();
    96         mVgReflection->setCaching(true);
    92         mVgReflection->setCaching(true);
    97         
    93 
    98         chain->add(mVgReflection);
    94         chain->add(mVgReflection);
    99 
    95 
   100         // Set initial values for the effect
    96         // Set initial values for the effect
   101         mVgReflection->setOpacity(opacity_start);
    97         mVgReflection->setOpacity(opacity_start);
   102         if (color_start.isValid()) {
    98         if (color_start.isValid()) {
   122     if (group()->isRunning()) {
   118     if (group()->isRunning()) {
   123         if (mAnimationO) {
   119         if (mAnimationO) {
   124             mVgReflection->setOpacity(qVariantValue<qreal>(mAnimationO->currentValue()));
   120             mVgReflection->setOpacity(qVariantValue<qreal>(mAnimationO->currentValue()));
   125         }
   121         }
   126         if (mAnimationC) {
   122         if (mAnimationC) {
   127             mVgReflection->setColor(qVariantValue<QColor>(mAnimationC->currentValue()));            
   123             mVgReflection->setColor(qVariantValue<QColor>(mAnimationC->currentValue()));
   128         }
   124         }
   129 
   125 
   130         QPointF offset = mVgReflection->offset();
   126         QPointF offset = mVgReflection->offset();
   131 
   127 
   132         if (mAnimationX) {
   128         if (mAnimationX) {
   137         }
   133         }
   138 
   134 
   139         mVgReflection->setOffset(offset);
   135         mVgReflection->setOffset(offset);
   140 
   136 
   141         if (mAnimationF) {
   137         if (mAnimationF) {
   142             mVgReflection->setFade(qVariantValue<qreal>(mAnimationF->currentValue()));            
   138             mVgReflection->setFade(qVariantValue<qreal>(mAnimationF->currentValue()));
   143         }
   139         }
   144     }
   140     }
   145 }
   141 }
   146 
   142 
   147 #endif
   143 #endif