diff -r 23b5d6a29cce -r 4785f57bf3d4 homescreenapp/hsdomainmodel/src/hsconfiguration.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/hsdomainmodel/src/hsconfiguration.cpp Thu May 27 12:46:08 2010 +0300 @@ -0,0 +1,111 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#include "hsconfiguration.h" +#include "hsdomainmodeldatastructures.h" +#include "hsdatabase.h" + +#include + +/*! + Loads configuration data from database. +*/ +void HsConfiguration::loadConfiguration() +{ + HsDatabase *db = HsDatabase::instance(); + + HsGeneralConfiguration generalConfiguration; + if (db->generalConfiguration(generalConfiguration)) { + mBounceEffect = generalConfiguration.bounceEffect; + mTapAndHoldDistance = generalConfiguration.tapAndHoldDistance; + mWidgetTapAndHoldTimeout = generalConfiguration.widgetTapAndHoldTimeout; + mSceneTapAndHoldTimeout = generalConfiguration.sceneTapAndHoldTimeout; + mPageChangeZoneWidth = generalConfiguration.pageChangeZoneWidth; + mPageIndicatorSpacing = generalConfiguration.pageIndicatorSpacing; + mPageChangeAnimationDuration = generalConfiguration.pageChangeAnimationDuration; + mPageChangeZoneAnimationDuration = generalConfiguration.pageChangeZoneAnimationDuration; + mPageChangeZoneReverseAnimationDuration = generalConfiguration.pageChangeZoneReverseAnimationDuration; + mPageRemovedAnimationDuration = generalConfiguration.pageRemovedAnimationDuration; + mNewPageAddedAnimationDuration = generalConfiguration.newPageAddedAnimationDuration; + mWidgetDragEffectDuration = generalConfiguration.widgetDragEffectDuration; + mWidgetDropEffectDuration = generalConfiguration.widgetDropEffectDuration; + mBounceFeedbackEffectDistance = generalConfiguration.boundaryFeedbackEffectDistance; + } else { + Q_ASSERT_X(1, "Configuration", "Homescreen configuration could not be loaded from database"); + } + + HsFeedbackConfiguration feedbackConfiguration; + if (db->feedbackConfiguration(feedbackConfiguration)) { + mBounceFeedbackEffectDistance = 3; + mPageChangeFeedbackType = feedbackConfiguration.pageChangeFeedbackType; + mWidgetPickFeedbackType = feedbackConfiguration.widgetPickFeedbackType; + mWidgetDropFeedbackType = feedbackConfiguration.widgetDropFeedbackType; + mWidgetRepositionFeedbackType = feedbackConfiguration.widgetRepositionFeedbackType; + mWidgetOverTrashbinFeedbackType = feedbackConfiguration.widgetOverTrashbinFeedbackType; + mWidgetDropToTrashbinFeedbackType = feedbackConfiguration.widgetDropToTrashbinFeedbackType; + mShortcutWidgetTapFeedbackType = feedbackConfiguration.shortcutWidgetTapFeedbackType; + mWidgetMoveBlockedFeedbackType = feedbackConfiguration.widgetMoveBlockedFeedbackType; + mClockWidgetTapFeedbackType = feedbackConfiguration.clockWidgetTapFeedbackType; + mWidgetSnappingFeedbackType = feedbackConfiguration.widgetSnappingFeedbackType; + } else { + Q_ASSERT_X(1, "Configuration", "Homescreen feedback cnfiguration could not be loaded from database"); + } + + HsSnapConfiguration snapConfiguration; + if (db->snapConfiguration(snapConfiguration)) { + mSnapEnabled = snapConfiguration.snappingEnabled; + mSnapForce = snapConfiguration.snapForce; + mSnapGap = snapConfiguration.snapGap; + mSnapBorderGap = snapConfiguration.borderGap; + mSnapTimeout = snapConfiguration.timeout; + } else { + Q_ASSERT_X(1, "Configuration", "Homescreen snap configuration could not be loaded from database"); + } +} + +// static member variables initilized here, these values will be used if fetching from database fails +int HsConfiguration::mBounceEffect = 20; +int HsConfiguration::mTapAndHoldDistance = 16; +int HsConfiguration::mWidgetTapAndHoldTimeout = 500; +int HsConfiguration::mSceneTapAndHoldTimeout = 500; +int HsConfiguration::mPageChangeZoneWidth = 60; +int HsConfiguration::mPageIndicatorSpacing = 8; +int HsConfiguration::mPageChangeAnimationDuration = 200; +int HsConfiguration::mPageChangeZoneAnimationDuration = 800; +int HsConfiguration::mPageChangeZoneReverseAnimationDuration = 200; +int HsConfiguration::mPageRemovedAnimationDuration = 200; +int HsConfiguration::mNewPageAddedAnimationDuration = 700; +int HsConfiguration::mWidgetDragEffectDuration = 200; +int HsConfiguration::mWidgetDropEffectDuration = 200; +int HsConfiguration::mBounceFeedbackEffectDistance = 3; + +HbFeedback::InstantEffect HsConfiguration::mPageChangeFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetPickFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetDropFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetRepositionFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetOverTrashbinFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetDropToTrashbinFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mShortcutWidgetTapFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetMoveBlockedFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mClockWidgetTapFeedbackType = HbFeedback::None; +HbFeedback::InstantEffect HsConfiguration::mWidgetSnappingFeedbackType = HbFeedback::None; + +bool HsConfiguration::mSnapEnabled = false; +qreal HsConfiguration::mSnapForce = 0; +qreal HsConfiguration::mSnapGap = 0; +qreal HsConfiguration::mSnapBorderGap = 0; +int HsConfiguration::mSnapTimeout = 0; +