src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectengine.cpp
changeset 5 627c4a0fd0e7
parent 2 06ff229162e9
child 6 c3690ec91ef8
equal deleted inserted replaced
3:11d3954df52a 5:627c4a0fd0e7
   318                 }
   318                 }
   319             }
   319             }
   320         }
   320         }
   321         else if (HbFeedbackEffectUtils::widgetFamily(widget) == HbFeedbackEffectUtils::Editor) {
   321         else if (HbFeedbackEffectUtils::widgetFamily(widget) == HbFeedbackEffectUtils::Editor) {
   322             effect = HbFeedbackEffectUtils::instantOnRelease(widget, modifiers());
   322             effect = HbFeedbackEffectUtils::instantOnRelease(widget, modifiers());
   323         } else if (widget->type() == HbPrivate::ItemType_GroupBoxHeadingWidget || widget->type() == Hb::ItemType_ComboBox) {
   323         } else if (widget->type() == Hb::ItemType_ComboBox) {
   324             effect = HbFeedbackEffectUtils::instantOnRelease(widget, modifiers()) ;
   324             effect = HbFeedbackEffectUtils::instantOnRelease(widget, modifiers()) ;
   325         }
   325         }
   326         else if (widget->type() == HbPrivate::ItemType_GroupBoxHeadingWidget
   326         else if (widget->type() == HbPrivate::ItemType_GroupBoxContentWidget
   327                  || widget->type() == HbPrivate::ItemType_GroupBoxContentWidget
   327                  || widget->type() == HbPrivate::ItemType_GroupBoxHeadingWidget
   328                  || widget->type() == HbPrivate::ItemType_DataGroupHeadingWidget
       
   329                  || widget->type() == Hb::ItemType_ComboBox) {
   328                  || widget->type() == Hb::ItemType_ComboBox) {
   330             effect = HbFeedbackEffectUtils::instantOnRelease(widget, modifiers());
   329             effect = HbFeedbackEffectUtils::instantOnRelease(widget, modifiers());
   331         }
   330         }
   332     }
   331     }
   333 
   332 
   448             if (trackPoint && trackPoint->mainWindow() && trackPoint->mainWindow()->scene() &&
   447             if (trackPoint && trackPoint->mainWindow() && trackPoint->mainWindow()->scene() &&
   449                 trackPoint->mainWindow()->scene()->focusItem()) {
   448                 trackPoint->mainWindow()->scene()->focusItem()) {
   450 
   449 
   451                 QGraphicsItem* graphicsItem = trackPoint->mainWindow()->scene()->focusItem();
   450                 QGraphicsItem* graphicsItem = trackPoint->mainWindow()->scene()->focusItem();
   452 
   451 
   453                 if (graphicsItem->isWidget() &&
   452                 if (graphicsItem->isWidget()) {
   454                     static_cast<QGraphicsWidget*>(graphicsItem)->inherits("HbAbstractEdit")) {
   453                     if (static_cast<QGraphicsWidget*>(graphicsItem)->inherits("HbAbstractEdit")) {
   455 
   454                         if (HbAbstractEdit* edit = static_cast<HbAbstractEdit*>(graphicsItem)) {
   456                     if (HbAbstractEdit* edit = static_cast<HbAbstractEdit*>(graphicsItem)) {
   455                             if (edit->cursorPosition() != previousCursorPosition) {
   457                         if (edit->cursorPosition() != previousCursorPosition) {
   456                                 effect = HbFeedbackEffectUtils::instantOnEditorHighlight(edit, previousCursorPosition);
   458                             effect = HbFeedbackEffectUtils::instantOnEditorHighlight(edit, previousCursorPosition);
   457                                 previousCursorPosition = edit->cursorPosition();
   459                             previousCursorPosition = edit->cursorPosition();
   458                             }
       
   459                         }
       
   460                     }
       
   461                     else if (static_cast<QGraphicsWidget*>(graphicsItem)->inherits("QGraphicsWebView") )
       
   462                     {
       
   463                         // This takes care of the case when the track point is used on a QGraphicsWebView (for e.g. cWRT)
       
   464                         QVariant v;
       
   465                         v = graphicsItem->scene()->inputMethodQuery( Qt::ImCursorPosition );
       
   466                         if ( v.isValid() && v.canConvert<int>()) {
       
   467                             int currentCursorPosition = v.toInt();
       
   468                             if (currentCursorPosition != previousCursorPosition) {
       
   469                                 effect = HbFeedbackEffectUtils::instantOnEditorHighlight(trackPoint, previousCursorPosition);
       
   470                                 previousCursorPosition = currentCursorPosition;
       
   471                             }
   460                         }
   472                         }
   461                     }
   473                     }
   462                 }
   474                 }
   463             }
   475             }
   464         } else {
   476         } else {
   510 /*
   522 /*
   511     Called by the feedback manager when a rotate gesture is recognized for a widget.
   523     Called by the feedback manager when a rotate gesture is recognized for a widget.
   512 */
   524 */
   513 void HbFeedbackEffectEngine::rotated90Degrees(const HbWidget *widget)
   525 void HbFeedbackEffectEngine::rotated90Degrees(const HbWidget *widget)
   514 {
   526 {
   515     HbFeedback::InstantEffect effect = HbFeedback::None ;
   527     HbFeedback::InstantEffect effect = HbFeedback::None;
   516     HbFeedback::Modalities modalities = 0 ;
   528     HbFeedback::Modalities modalities = 0;
   517     Hb::InstantInteraction interaction = Hb::InstantRotated90Degrees;
   529     Hb::InstantInteraction interaction = Hb::InstantRotated90Degrees;
   518 
   530 
   519     if(widgetOverridesEffect( widget, interaction)) {
   531     if(widgetOverridesEffect(widget, interaction)) {
   520         effect = overrider.newInstantEffect;
   532         effect = overrider.newInstantEffect;
   521     } else {
   533     } else {
   522         effect = HbFeedback::RotateStep;
   534         effect = HbFeedback::RotateStep;
   523 
   535     }
   524     }
   536 
   525 
   537     if (widgetOverridesModalities(widget,interaction)) {
   526     if(widgetOverridesModalities(widget,interaction)) {
       
   527         modalities = overrider.newModalities ;
   538         modalities = overrider.newModalities ;
   528     } else  {
   539     } else  {
   529         modalities = HbFeedbackEffectUtils::modalities(widget, interaction, modifiers());
   540         modalities = HbFeedbackEffectUtils::modalities(widget, interaction, modifiers());
   530     }
   541     }
   531 
   542 
   537 */
   548 */
   538 void HbFeedbackEffectEngine::popupOpened(const HbWidget *widget)
   549 void HbFeedbackEffectEngine::popupOpened(const HbWidget *widget)
   539 {
   550 {
   540     HbFeedback::Modalities modalities = 0 ;
   551     HbFeedback::Modalities modalities = 0 ;
   541     Hb::InstantInteraction interaction = Hb::InstantPopupOpened;
   552     Hb::InstantInteraction interaction = Hb::InstantPopupOpened;
   542 
   553     HbFeedback::InstantEffect effect = HbFeedback::None;
   543     if(widgetOverridesModalities(widget,interaction)) {
   554 
   544         modalities = overrider.newModalities ;
   555     if(widgetOverridesModalities(widget,interaction)) {
   545     } else  {
   556         modalities = overrider.newModalities;
   546         modalities = HbFeedbackEffectUtils::modalities(widget, interaction, modifiers());
   557     } else {
   547     }
   558         modalities = HbFeedbackEffectUtils::modalities(widget, interaction, modifiers());
   548 
   559     }
   549     if(widgetOverridesEffect( widget, interaction)) {
   560 
       
   561     if (widgetOverridesEffect(widget, interaction)) {
   550         playInstantFeedback(widget, overrider.newInstantEffect, modalities);
   562         playInstantFeedback(widget, overrider.newInstantEffect, modalities);
   551     } else {
   563     } else {
   552         if(HbFeedbackEffectUtils::isFeedbackAllowedForPopup(widget)) {
   564         if (HbFeedbackEffectUtils::isFeedbackAllowedForPopup(widget)) {
   553             playInstantFeedback(widget, HbFeedback::PopupOpen, modalities);
   565             effect = HbFeedbackEffectUtils::instantOnPopupOpened(widget);
       
   566             playInstantFeedback(widget, effect, modalities);
   554         }
   567         }
   555     }
   568     }
   556 }
   569 }
   557 
   570 
   558 /*
   571 /*
   560 */
   573 */
   561 void HbFeedbackEffectEngine::popupClosed(const HbWidget *widget)
   574 void HbFeedbackEffectEngine::popupClosed(const HbWidget *widget)
   562 {
   575 {
   563     HbFeedback::Modalities modalities = 0 ;
   576     HbFeedback::Modalities modalities = 0 ;
   564     Hb::InstantInteraction interaction = Hb::InstantPopupClosed;
   577     Hb::InstantInteraction interaction = Hb::InstantPopupClosed;
   565 
   578     HbFeedback::InstantEffect effect = HbFeedback::None;
   566     if(widgetOverridesModalities(widget,interaction)) {
   579 
   567         modalities = overrider.newModalities ;
   580     if(widgetOverridesModalities(widget,interaction)) {
   568     } else  {
   581         modalities = overrider.newModalities ;
   569         modalities = HbFeedbackEffectUtils::modalities(widget, interaction, modifiers());
   582     } else  {
   570     }
   583         modalities = HbFeedbackEffectUtils::modalities(widget, interaction, modifiers());
   571 
   584     }
   572     if(widgetOverridesEffect( widget, interaction)) {
   585 
       
   586     if(widgetOverridesEffect(widget, interaction)) {
   573         playInstantFeedback(widget, overrider.newInstantEffect, modalities);
   587         playInstantFeedback(widget, overrider.newInstantEffect, modalities);
   574     } else {
   588     } else {
   575         if(HbFeedbackEffectUtils::isFeedbackAllowedForPopup(widget)) {
   589         if (HbFeedbackEffectUtils::isFeedbackAllowedForPopup(widget)) {
   576             playInstantFeedback(widget, HbFeedback::PopupClose, modalities);
   590             effect = HbFeedbackEffectUtils::instantOnPopupClosed(widget);
       
   591             playInstantFeedback(widget, effect, modalities);
   577         }
   592         }
   578     }
   593     }
   579 }
   594 }
   580 
   595 
   581 /*
   596 /*