homescreenapp/hsdomainmodel/src/hsconfiguration.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 12:46:08 +0300
changeset 51 4785f57bf3d4
child 55 03646e8da489
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
* 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 <HbInstantFeedback>

/*!
    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;