homescreenapp/stateplugins/hshomescreenstateplugin/src/hsidlestate.cpp
changeset 95 32e56106abf2
parent 90 3ac3aaebaee5
child 97 66b5fe3c07fd
equal deleted inserted replaced
90:3ac3aaebaee5 95:32e56106abf2
   122     mTitleResolver(0),
   122     mTitleResolver(0),
   123     mAllowZoneAnimation(false),
   123     mAllowZoneAnimation(false),
   124     mContinuousFeedback(0),
   124     mContinuousFeedback(0),
   125     mTrashBinFeedbackAlreadyPlayed(false),
   125     mTrashBinFeedbackAlreadyPlayed(false),
   126     mDeltaX(0),
   126     mDeltaX(0),
       
   127     mWidgetX(0),
       
   128     mWidgetY(0),
   127     mSceneMenu(0)
   129     mSceneMenu(0)
   128 #ifdef Q_OS_SYMBIAN
   130 #ifdef Q_OS_SYMBIAN
   129     ,mSettingsMgr(0)
   131     ,mSettingsMgr(0)
   130 #endif
   132 #endif
   131     ,mMessageBoxWrapper(0)
   133     ,mMessageBoxWrapper(0)
   259 
   261 
   260     state_moveWidgetMoving->addTransition(
   262     state_moveWidgetMoving->addTransition(
   261         this, SIGNAL(event_waitInput()), state_waitInput);
   263         this, SIGNAL(event_waitInput()), state_waitInput);
   262     state_moveWidgetMoving->addTransition(
   264     state_moveWidgetMoving->addTransition(
   263         this, SIGNAL(event_MoveWidgetDelete()), state_moveWidgetDelete);
   265         this, SIGNAL(event_MoveWidgetDelete()), state_moveWidgetDelete);
   264     state_moveWidgetDelete->addTransition(
   266     state_moveWidgetDelete->addTransition(state_waitInput);
   265         this, SIGNAL(event_waitInput()), state_waitInput);
       
   266 
   267 
   267     state_moveScene->addTransition(
   268     state_moveScene->addTransition(
   268         this, SIGNAL(event_waitInput()), state_waitInput);
   269         this, SIGNAL(event_waitInput()), state_waitInput);
   269 
   270 
   270     state_wallpaperSelectionState->addTransition(
   271     state_wallpaperSelectionState->addTransition(
   604 void HsIdleState::onPagePanUpdated(QGestureEvent *event)
   605 void HsIdleState::onPagePanUpdated(QGestureEvent *event)
   605 {
   606 {
   606     HbPanGesture *gesture = qobject_cast<HbPanGesture *>(
   607     HbPanGesture *gesture = qobject_cast<HbPanGesture *>(
   607         event->gesture(Qt::PanGesture));
   608         event->gesture(Qt::PanGesture));
   608 
   609 
   609     mDeltaX = gesture->sceneOffset().x();
   610     qreal temp = gesture->sceneOffset().x();
       
   611     // for small movement take into consideration also previous delta to remove "shaking" effect
       
   612     if (abs(mDeltaX - temp) < 10) {
       
   613         mDeltaX = 0.9 * temp + 0.1 * mDeltaX;
       
   614     } else {
       
   615         mDeltaX = temp;
       
   616     }
   610 
   617 
   611     HsScene *scene = HsScene::instance();
   618     HsScene *scene = HsScene::instance();
   612     int bounceEffect = HSCONFIGURATION_GET(bounceEffect);
   619     int bounceEffect = HSCONFIGURATION_GET(bounceEffect);
   613     qreal x = qBound(pageLayerXPos(scene->pages().count() - 1) - bounceEffect / 2 / HsGui::instance()->idleWidget()->parallaxFactor(),
   620     qreal x = qBound(pageLayerXPos(scene->pages().count() - 1) - bounceEffect / 2 / HsGui::instance()->idleWidget()->parallaxFactor(),
   614                      pageLayerXPos(scene->activePageIndex()) + mDeltaX,
   621                      pageLayerXPos(scene->activePageIndex()) + mDeltaX,
   671     qreal upperBoundY = pageRect.height();
   678     qreal upperBoundY = pageRect.height();
   672 
   679 
   673     qreal widgetX = qBound(lowerBoundX, widgetRect.x(), upperBoundX);
   680     qreal widgetX = qBound(lowerBoundX, widgetRect.x(), upperBoundX);
   674     qreal widgetY = qBound(lowerBoundY, widgetRect.y(), upperBoundY);
   681     qreal widgetY = qBound(lowerBoundY, widgetRect.y(), upperBoundY);
   675 
   682 
       
   683     // for small movement take into consideration also previous value to remove "shaking" effect
       
   684     if ((abs(mWidgetX - widgetX) < 10) && (abs(mWidgetY - widgetY) < 10)) {
       
   685         mWidgetX = 0.9 * widgetX + 0.1 * mWidgetX;
       
   686         mWidgetY = 0.9 * widgetY + 0.1 * mWidgetY;
       
   687     } else {
       
   688         mWidgetX = widgetX;
       
   689         mWidgetY = widgetY;
       
   690     }
       
   691 
   676     // If using ItemClipsChildrenToShape-flag in widgethost then
   692     // If using ItemClipsChildrenToShape-flag in widgethost then
   677     // setPos does not update position here, however setGeometry does it, QT bug?
   693     // setPos does not update position here, however setGeometry does it, QT bug?
   678     widget->visual()->setGeometry(widgetX, widgetY, widgetRect.width(), widgetRect.height());
   694     widget->visual()->setGeometry(mWidgetX, mWidgetY, widgetRect.width(), widgetRect.height());
   679     
   695     
   680     if (HSCONFIGURATION_GET(isSnapEnabled)) {
   696     if (HSCONFIGURATION_GET(isSnapEnabled)) {
   681         mSnapResult = HsWidgetPositioningOnWidgetMove::instance()->run(widget->visual()->sceneBoundingRect());
   697         mSnapResult = HsWidgetPositioningOnWidgetMove::instance()->run(widget->visual()->sceneBoundingRect());
   682 
   698 
   683         bool isTrashbinOpen = HsGui::instance()->idleWidget()->trashBin()->isUnderMouse();
   699         bool isTrashbinOpen = HsGui::instance()->idleWidget()->trashBin()->isUnderMouse();
  1108         HbInstantFeedback::play(HSCONFIGURATION_GET(widgetDropToTrashbinFeedbackEffect));
  1124         HbInstantFeedback::play(HSCONFIGURATION_GET(widgetDropToTrashbinFeedbackEffect));
  1109         widget->page()->removeWidget(widget);
  1125         widget->page()->removeWidget(widget);
  1110         widget->remove();
  1126         widget->remove();
  1111         scene->setActiveWidget(0);
  1127         scene->setActiveWidget(0);
  1112     }
  1128     }
  1113     emit event_waitInput();
       
  1114 }
  1129 }
  1115 
  1130 
  1116 /*!
  1131 /*!
  1117     Starts the widget drop effect.
  1132     Starts the widget drop effect.
  1118 */
  1133 */