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(); |