homescreenapp/hsdomainmodel/inc/hsconfiguration.h
changeset 62 341166945d65
parent 55 03646e8da489
child 63 52b0f64eeb51
child 77 4b195f3bea29
--- a/homescreenapp/hsdomainmodel/inc/hsconfiguration.h	Thu Jun 24 13:11:40 2010 +0100
+++ b/homescreenapp/hsdomainmodel/inc/hsconfiguration.h	Fri Jun 25 19:19:22 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 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"
@@ -19,148 +19,226 @@
 #define HSCONFIGURATION_H
 
 #include <QObject>
+#include <QVariant>
 
 #include <HbFeedback>
-#include <HbDeviceProfile>
 
 #include "hsdomainmodel_global.h"
 
-class HsGeneralConfiguration;
-class HsFeedbackConfiguration;
-class HsSnapConfiguration;
-class HsDatabase;
-class HsConfiguration;
+#include "hstest_global.h"
+HOMESCREEN_TEST_CLASS(TestHsDomainModel)
 
-class HSDOMAINMODEL_EXPORT HsConfiguration
-{
-    
-public:
-    static void loadConfiguration();
+#define HSCONFIGURATION_GET(getter) \
+    HsConfiguration::instance()->getter()
+#define HSCONFIGURATION_SET(setter, value) \
+    HsConfiguration::instance()->setter(value)
 
-    static inline int bounceEffect() { return mBounceEffect; };
-    static inline qreal tapAndHoldDistance() { return mTapAndHoldDistance; };
-    static inline int widgetTapAndHoldTimeout() { return mWidgetTapAndHoldTimeout; };
-    static inline int sceneTapAndHoldTimeout() { return mSceneTapAndHoldTimeout; };
-    static inline qreal pageChangeZoneWidth() { return mPageChangeZoneWidth; };
-    static inline qreal pageIndicatorSpacing() { return mPageIndicatorSpacing; };
-    static inline int pageChangeAnimationDuration() { return mPageChangeAnimationDuration; };
-    static inline int pageChangeZoneAnimationDuration() { return mPageChangeZoneAnimationDuration; };
-    static inline int pageChangeZoneReverseAnimationDuration() { return mPageChangeZoneReverseAnimationDuration; };
-    static inline int pageRemovedAnimationDuration() { return mPageRemovedAnimationDuration; };
-    static inline int newPageAddedAnimationDuration() { return mNewPageAddedAnimationDuration; };
-    static inline int widgetDragEffectDuration() { return mWidgetDragEffectDuration; };
-    static inline int widgetDropEffectDuration() { return mWidgetDropEffectDuration; };
-    static inline int bounceFeedbackEffectDistance() { return mBounceFeedbackEffectDistance; };
-    static inline int defaultPageId() { return mDefaultPageId; };
-    static inline int maximumPageCount() { return mMaximumPageCount; };
-    static inline qreal maximumWidgetHeight() { return mMaximumWidgetHeight; };
-    static inline qreal maximumWidgetWidth() { return mMaximumWidgetWidth; };
-    static inline qreal minimumWidgetHeight() { return mMinimumWidgetHeight; };
-    static inline qreal minimumWidgetWidth() { return mMinimumWidgetWidth; };
-    static inline bool shortcutLabelsVisible() { return mShortcutLabelsVisible; };
-    static inline qreal pageChangePanDistance() { return mPageChangePanDistance; };
-    static inline int pageChangePanDistanceInPixels() { return mPageChangePanDistanceInPixels; };
+class HSDOMAINMODEL_EXPORT HsConfiguration : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(int bounceEffect READ bounceEffect WRITE setBounceEffect)
+    Q_PROPERTY(int widgetTapAndHoldTimeout READ widgetTapAndHoldTimeout WRITE setWidgetTapAndHoldTimeout)
+    Q_PROPERTY(int sceneTapAndHoldTimeout READ sceneTapAndHoldTimeout WRITE setSceneTapAndHoldTimeout)
+    Q_PROPERTY(int pageChangeAnimationDuration READ pageChangeAnimationDuration WRITE setPageChangeAnimationDuration)
+    Q_PROPERTY(int pageChangeZoneAnimationDuration READ pageChangeZoneAnimationDuration WRITE setPageChangeZoneAnimationDuration)
+    Q_PROPERTY(int pageChangeZoneReverseAnimationDuration READ pageChangeZoneReverseAnimationDuration WRITE setPageChangeZoneReverseAnimationDuration)
+    Q_PROPERTY(int pageRemovedAnimationDuration READ pageRemovedAnimationDuration WRITE setPageRemovedAnimationDuration)
+    Q_PROPERTY(int newPageAddedAnimationDuration READ newPageAddedAnimationDuration WRITE setNewPageAddedAnimationDuration)
+    Q_PROPERTY(int widgetDragEffectDuration READ widgetDragEffectDuration WRITE setWidgetDragEffectDuration)
+    Q_PROPERTY(int widgetDropEffectDuration READ widgetDropEffectDuration WRITE setWidgetDropEffectDuration)
+    Q_PROPERTY(int defaultPageId READ defaultPageId WRITE setDefaultPageId)
+    Q_PROPERTY(int maximumPageCount READ maximumPageCount WRITE setMaximumPageCount)    
+    Q_PROPERTY(bool isShortcutLabelVisible READ isShortcutLabelVisible WRITE setShortcutLabelVisible)
+    Q_PROPERTY(qreal bounceFeedbackEffectDistance READ bounceFeedbackEffectDistance WRITE setBounceFeedbackEffectDistance)
+    Q_PROPERTY(qreal pageChangePanDistanceInPixels READ pageChangePanDistanceInPixels WRITE setPageChangePanDistanceInPixels)
+    Q_PROPERTY(qreal tapAndHoldDistance READ tapAndHoldDistance WRITE setTapAndHoldDistance)
+    Q_PROPERTY(qreal pageChangeZoneWidth READ pageChangeZoneWidth WRITE setPageChangeZoneWidth)
+    Q_PROPERTY(qreal pageIndicatorSpacing READ pageIndicatorSpacing WRITE setPageIndicatorSpacing)
+    Q_PROPERTY(qreal maximumWidgetHeight READ maximumWidgetHeight WRITE setMaximumWidgetHeight)
+    Q_PROPERTY(qreal maximumWidgetWidth READ maximumWidgetWidth WRITE setMaximumWidgetWidth)
+    Q_PROPERTY(qreal minimumWidgetHeight READ minimumWidgetHeight WRITE setMinimumWidgetHeight)
+    Q_PROPERTY(qreal minimumWidgetWidth READ minimumWidgetWidth WRITE setMinimumWidgetWidth)
+    Q_PROPERTY(qreal pageChangePanDistance READ pageChangePanDistance WRITE setPageChangePanDistance)
+    Q_PROPERTY(HbFeedback::InstantEffect pageChangeFeedbackEffect READ pageChangeFeedbackEffect WRITE setPageChangeFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetPickFeedbackEffect READ widgetPickFeedbackEffect WRITE setWidgetPickFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetDropFeedbackEffect READ widgetDropFeedbackEffect WRITE setWidgetDropFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetRepositionFeedbackEffect READ widgetRepositionFeedbackEffect WRITE setWidgetRepositionFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetOverTrashbinFeedbackEffect READ widgetOverTrashbinFeedbackEffect WRITE setWidgetOverTrashbinFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetDropToTrashbinFeedbackEffect READ widgetDropToTrashbinFeedbackEffect WRITE setWidgetDropToTrashbinFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect shortcutWidgetTapFeedbackEffect READ shortcutWidgetTapFeedbackEffect WRITE setShortcutWidgetTapFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetMoveBlockedFeedbackEffect READ widgetMoveBlockedFeedbackEffect WRITE setWidgetMoveBlockedFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect clockWidgetTapFeedbackEffect READ clockWidgetTapFeedbackEffect WRITE setClockWidgetTapFeedbackEffect)
+    Q_PROPERTY(HbFeedback::InstantEffect widgetSnappingFeedbackEffect READ widgetSnappingFeedbackEffect WRITE setWidgetSnappingFeedbackEffect)
+    Q_PROPERTY(bool isSnapEnabled READ isSnapEnabled WRITE setSnapEnabled)
+    Q_PROPERTY(int snapTimeout READ snapTimeout WRITE setSnapTimeout)
+    Q_PROPERTY(qreal snapForce READ snapForce WRITE setSnapForce)
+    Q_PROPERTY(qreal snapGap READ snapGap WRITE setSnapGap)
+    Q_PROPERTY(qreal snapBorderGap READ snapBorderGap WRITE setSnapBorderGap)
+    Q_PROPERTY(int snapLineFadeInDuration READ snapLineFadeInDuration WRITE setSnapLineFadeInDuration)
+    Q_PROPERTY(int snapLineFadeOutDuration READ snapLineFadeOutDuration WRITE setSnapLineFadeOutDuration)
+    Q_PROPERTY(bool isSnapEffectsEnabled READ isSnapEffectsEnabled WRITE setSnapEffectsEnabled)
+    Q_PROPERTY(SceneType sceneType READ sceneType WRITE setSceneType)
 
-    static inline HbFeedback::InstantEffect pageChangeFeedbackType() { return mPageChangeFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetPickFeedbackType() { return mWidgetPickFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetDropFeedbackType() { return mWidgetDropFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetRepositionFeedbackType() { return mWidgetRepositionFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetOverTrashbinFeedbackType() { return mWidgetOverTrashbinFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetDropToTrashbinFeedbackType() { return mWidgetDropToTrashbinFeedbackType; };
-    static inline HbFeedback::InstantEffect shortcutWidgetTapFeedbackType() { return mShortcutWidgetTapFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetMoveBlockedFeedbackType() { return mWidgetMoveBlockedFeedbackType; };
-    static inline HbFeedback::InstantEffect clockWidgetTapFeedbackType() { return mClockWidgetTapFeedbackType; };
-    static inline HbFeedback::InstantEffect widgetSnappingFeedbackType() { return mWidgetSnappingFeedbackType; };
+    Q_ENUMS(SceneType)
+
+public:
+    HsConfiguration(QObject *parent = 0);
+    ~HsConfiguration();
+
+    enum SceneType
+    {
+        PageWallpapers,
+        SceneWallpaper
+    };
 
-    static inline bool snapEnabled() { return mSnapEnabled; };
-    static inline qreal snapForce() { return mSnapForce; };
-    static inline qreal snapGap() { return mSnapGap; };
-    static inline qreal snapBorderGap() { return mSnapBorderGap; };
-    static inline int snapTimeout() { return mSnapTimeout; };
-
-    // setters should be removed before code is released to SF
-    static void setBounceEffect(int bounceEffect) { mBounceEffect = bounceEffect; };
-    static void setTapAndHoldDistance(qreal tapAndHoldDistance) { mTapAndHoldDistance = tapAndHoldDistance; };
-    static void setWidgetTapAndHoldTimeout(int tapAndHoldTimeout) { mWidgetTapAndHoldTimeout = tapAndHoldTimeout; };
-    static void setSceneTapAndHoldTimeout(int tapAndHoldTimeout) { mSceneTapAndHoldTimeout = tapAndHoldTimeout; };
-    static void setPageChangeZoneWidth(qreal pageChangeZoneWidth) { mPageChangeZoneWidth = pageChangeZoneWidth; };
-    static void setPageIndicatorSpacing(qreal pageIndicatorSpacing) { mPageIndicatorSpacing = pageIndicatorSpacing; };
-    static void setPageChangeAnimationDuration(int pageChangeAnimationDuration) { mPageChangeAnimationDuration = pageChangeAnimationDuration; };
-    static void setPageChangeZoneAnimationDuration(int pageChangeZoneAnimationDuration) { mPageChangeZoneAnimationDuration = pageChangeZoneAnimationDuration; };
-    static void setPageChangeZoneReverseAnimationDuration(int pageChangeZoneReverseAnimationDuration) { mPageChangeZoneReverseAnimationDuration = pageChangeZoneReverseAnimationDuration; };
-    static void setPageRemovedAnimationDuration(int pageRemovedAnimationDuration) { mPageRemovedAnimationDuration = pageRemovedAnimationDuration; };
-    static void setNewPageAddedAnimationDuration(int newPageAddedAnimationDuration) { mNewPageAddedAnimationDuration = newPageAddedAnimationDuration; };
-    static void setWidgetDragEffectDuration(int widgetDragEffectDuration) { mWidgetDragEffectDuration = widgetDragEffectDuration; };
-    static void setWidgetDropEffectDuration(int widgetDropEffectDuration) { mWidgetDropEffectDuration = widgetDropEffectDuration; };
-    static void setBounceFeedbackEffectDistance(int bounceFeedbackEffectDistance) { mBounceFeedbackEffectDistance = bounceFeedbackEffectDistance; };
-    static void setDefaultPageId(int defaultPageId) { mDefaultPageId = defaultPageId;  };
-    static void setMaximumPageCount(int maximumPageCount) { mMaximumPageCount = maximumPageCount; };
-    static void setMaximumWidgetHeight(qreal maximumWidgetHeight) { mMaximumWidgetHeight = maximumWidgetHeight; };
-    static void setMaximumWidgetWidth(qreal maximumWidgetWidth) { mMaximumWidgetWidth = maximumWidgetWidth; };
-    static void setMinimumWidgetHeight(qreal minimumWidgetHeight) { mMinimumWidgetHeight = minimumWidgetHeight; };
-    static void setMinimumWidgetWidth(qreal minimumWidgetWidth) { mMinimumWidgetWidth = minimumWidgetWidth; };
-    static void setShortcutLabelsVisible(bool shortcutLabelsVisible) { mShortcutLabelsVisible = shortcutLabelsVisible; };
-    static void setPageChangePanDistance(qreal pageChangePanDistance) { mPageChangePanDistance = pageChangePanDistance; 
-                                                                        mPageChangePanDistanceInPixels = pageChangePanDistance * HbDeviceProfile::current().unitValue(); };
-
-    static void setPageChangeFeedbackType(HbFeedback::InstantEffect pageChangeFeedbackType ) { mPageChangeFeedbackType = pageChangeFeedbackType; };
-    static void setWidgetPickFeedbackType(HbFeedback::InstantEffect widgetPickFeedbackType ) { mWidgetPickFeedbackType = widgetPickFeedbackType; };
-    static void setWidgetDropFeedbackType(HbFeedback::InstantEffect widgetDropFeedbackType ) { mWidgetDropFeedbackType = widgetDropFeedbackType; };
-    static void setWidgetRepositionFeedbackType(HbFeedback::InstantEffect widgetRepositionFeedbackType ) { mWidgetRepositionFeedbackType = widgetRepositionFeedbackType; };
-    static void setWidgetOverTrashbinFeedbackType(HbFeedback::InstantEffect widgetOverTrashbinFeedbackType ) { mWidgetOverTrashbinFeedbackType = widgetOverTrashbinFeedbackType; };
-    static void setWidgetDropToTrashbinFeedbackType(HbFeedback::InstantEffect widgetDropToTrashbinFeedbackType ) { mWidgetDropToTrashbinFeedbackType = widgetDropToTrashbinFeedbackType; };
-    static void setShortcutWidgetTapFeedbackType(HbFeedback::InstantEffect shortcutWidgetTapFeedbackType ) { mShortcutWidgetTapFeedbackType = shortcutWidgetTapFeedbackType; };
-    static void setWidgetMoveBlockedFeedbackType(HbFeedback::InstantEffect widgetMoveBlockedFeedbackType ) { mWidgetMoveBlockedFeedbackType = widgetMoveBlockedFeedbackType; };
-    static void setClockWidgetTapFeedbackType(HbFeedback::InstantEffect clockWidgetTapFeedbackType ) { mClockWidgetTapFeedbackType = clockWidgetTapFeedbackType; };
-    static void setWidgetSnappingFeedbackType(HbFeedback::InstantEffect widgetSnappingFeedbackType ) { mWidgetSnappingFeedbackType = widgetSnappingFeedbackType; };
-
-    static void setSnapEnabled(bool snapEnabled) { mSnapEnabled = snapEnabled; };
-    static void setSnapForce(qreal snapForce) { mSnapForce = snapForce; };
-    static void setSnapGap(qreal snapGap) { mSnapGap = snapGap; };
-    static void setSnapBorderGap(qreal snapBorderGap) { mSnapBorderGap = snapBorderGap; };
-    static void setSnapTimeout(int snapTimeout) { mSnapTimeout = snapTimeout; };
+    int bounceEffect() const { return mBounceEffect; }
+    void setBounceEffect(int effect) { mBounceEffect = effect; }
+    int widgetTapAndHoldTimeout() const { return mWidgetTapAndHoldTimeout; }
+    void setWidgetTapAndHoldTimeout(int timeout) { mWidgetTapAndHoldTimeout = timeout; }
+    int sceneTapAndHoldTimeout() const { return mSceneTapAndHoldTimeout; }
+    void setSceneTapAndHoldTimeout(int timeout) { mSceneTapAndHoldTimeout = timeout; }
+    int pageChangeAnimationDuration() const { return mPageChangeAnimationDuration; }
+    void setPageChangeAnimationDuration(int duration) { mPageChangeAnimationDuration = duration; }    
+    int pageChangeZoneAnimationDuration() const { return mPageChangeZoneAnimationDuration; }
+    void setPageChangeZoneAnimationDuration(int duration) { mPageChangeZoneAnimationDuration = duration; }    
+    int pageChangeZoneReverseAnimationDuration() const { return mPageChangeZoneReverseAnimationDuration; }
+    void setPageChangeZoneReverseAnimationDuration(int duration) { mPageChangeZoneReverseAnimationDuration = duration; }
+    int pageRemovedAnimationDuration() const { return mPageRemovedAnimationDuration; }
+    void setPageRemovedAnimationDuration(int duration) { mPageRemovedAnimationDuration = duration; }    
+    int newPageAddedAnimationDuration() const { return mNewPageAddedAnimationDuration; }
+    void setNewPageAddedAnimationDuration(int duration) { mNewPageAddedAnimationDuration = duration; }  
+    int widgetDragEffectDuration() const { return mWidgetDragEffectDuration; }
+    void setWidgetDragEffectDuration(int duration) { mWidgetDragEffectDuration = duration; }  
+    int widgetDropEffectDuration() const { return mWidgetDropEffectDuration; }
+    void setWidgetDropEffectDuration(int duration) { mWidgetDropEffectDuration = duration; }  
+    int defaultPageId() const { return mDefaultPageId; }
+    void setDefaultPageId(int id) { mDefaultPageId = id; }
+    int maximumPageCount() const { return mMaximumPageCount; }
+    void setMaximumPageCount(int count) { mMaximumPageCount = count; }  
+    bool isShortcutLabelVisible() const { return mIsShortcutLabelVisible; }
+    void setShortcutLabelVisible(bool visible) { mIsShortcutLabelVisible = visible; }  
+    qreal bounceFeedbackEffectDistance() const { return mBounceFeedbackEffectDistance; }
+    void setBounceFeedbackEffectDistance(qreal distance) { mBounceFeedbackEffectDistance = distance; }  
+    qreal pageChangePanDistanceInPixels() const { return mPageChangePanDistanceInPixels; }
+    void setPageChangePanDistanceInPixels(qreal distance) { mPageChangePanDistanceInPixels = distance; }  
+    qreal tapAndHoldDistance() const { return mTapAndHoldDistance; }
+    void setTapAndHoldDistance(qreal distance) { mTapAndHoldDistance = distance; }  
+    qreal pageChangeZoneWidth() const { return mPageChangeZoneWidth; }
+    void setPageChangeZoneWidth(qreal width) { mPageChangeZoneWidth = width; }  
+    qreal pageIndicatorSpacing() const { return mPageIndicatorSpacing; }
+    void setPageIndicatorSpacing(qreal spacing) { mPageIndicatorSpacing = spacing; }
+    qreal maximumWidgetHeight() const { return mMaximumWidgetHeight; }
+    void setMaximumWidgetHeight(qreal height) { mMaximumWidgetHeight = height; }  
+    qreal maximumWidgetWidth() const { return mMaximumWidgetWidth; }
+    void setMaximumWidgetWidth(qreal width) { mMaximumWidgetWidth = width; }  
+    qreal minimumWidgetHeight() const { return mMinimumWidgetHeight; }
+    void setMinimumWidgetHeight(qreal height) { mMinimumWidgetHeight = height; }
+    qreal minimumWidgetWidth() const { return mMinimumWidgetWidth; }
+    void setMinimumWidgetWidth(qreal width) { mMinimumWidgetWidth = width; }  
+    qreal pageChangePanDistance() const { return mPageChangePanDistance; }
+    void setPageChangePanDistance(qreal distance) { mPageChangePanDistance = distance; }  
+    HbFeedback::InstantEffect pageChangeFeedbackEffect() const { return mPageChangeFeedbackEffect; }
+    void setPageChangeFeedbackEffect(HbFeedback::InstantEffect effect) { mPageChangeFeedbackEffect = effect; }   
+    HbFeedback::InstantEffect widgetPickFeedbackEffect() const { return mWidgetPickFeedbackEffect; }
+    void setWidgetPickFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetPickFeedbackEffect = effect; }  
+    HbFeedback::InstantEffect widgetDropFeedbackEffect() const { return mWidgetDropFeedbackEffect; }
+    void setWidgetDropFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetDropFeedbackEffect = effect; }  
+    HbFeedback::InstantEffect widgetRepositionFeedbackEffect() const { return mWidgetRepositionFeedbackEffect; }
+    void setWidgetRepositionFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetRepositionFeedbackEffect = effect; } 
+    HbFeedback::InstantEffect widgetOverTrashbinFeedbackEffect() const { return mWidgetOverTrashbinFeedbackEffect; }
+    void setWidgetOverTrashbinFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetOverTrashbinFeedbackEffect = effect; } 
+    HbFeedback::InstantEffect widgetDropToTrashbinFeedbackEffect() const { return mWidgetDropToTrashbinFeedbackEffect; }
+    void setWidgetDropToTrashbinFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetDropToTrashbinFeedbackEffect = effect; } 
+    HbFeedback::InstantEffect shortcutWidgetTapFeedbackEffect() const { return mShortcutWidgetTapFeedbackEffect; }
+    void setShortcutWidgetTapFeedbackEffect(HbFeedback::InstantEffect effect) { mShortcutWidgetTapFeedbackEffect = effect; } 
+    HbFeedback::InstantEffect widgetMoveBlockedFeedbackEffect() const { return mWidgetMoveBlockedFeedbackEffect; }
+    void setWidgetMoveBlockedFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetMoveBlockedFeedbackEffect = effect; } 
+    HbFeedback::InstantEffect clockWidgetTapFeedbackEffect() const { return mClockWidgetTapFeedbackEffect; }
+    void setClockWidgetTapFeedbackEffect(HbFeedback::InstantEffect effect) { mClockWidgetTapFeedbackEffect = effect; } 
+    HbFeedback::InstantEffect widgetSnappingFeedbackEffect() const { return mWidgetSnappingFeedbackEffect; }
+    void setWidgetSnappingFeedbackEffect(HbFeedback::InstantEffect effect) { mWidgetSnappingFeedbackEffect = effect; }
+    bool isSnapEnabled() const { return mIsSnapEnabled; }
+    void setSnapEnabled(bool enabled) { mIsSnapEnabled = enabled; }
+    int snapTimeout() const { return mSnapTimeout; }
+    void setSnapTimeout(int timeout) { mSnapTimeout = timeout; }
+    qreal snapForce() const { return mSnapForce; }
+    void setSnapForce(qreal force) { mSnapForce = force; }  
+    qreal snapGap() const { return mSnapGap; }
+    void setSnapGap(qreal gap) { mSnapGap = gap; }  
+    qreal snapBorderGap() const { return mSnapBorderGap; }
+    void setSnapBorderGap(qreal gap) { mSnapBorderGap = gap; }
+    int snapLineFadeInDuration() const { return mSnapLineFadeInDuration; }
+    void setSnapLineFadeInDuration(int duration) { mSnapLineFadeInDuration = duration; }
+    int snapLineFadeOutDuration() const { return mSnapLineFadeOutDuration; }
+    void setSnapLineFadeOutDuration(int duration) { mSnapLineFadeOutDuration = duration; }
+    bool isSnapEffectsEnabled() const { return mIsSnapEffectsEnabled; }
+    void setSnapEffectsEnabled(bool enabled) { mIsSnapEffectsEnabled = enabled; }
+    SceneType sceneType() const { return mSceneType; }
+    void setSceneType(SceneType type) { mSceneType = type; }
+     
+    QSizeF minimumWidgetSizeInUnits() const;
+    QSizeF maximumWidgetSizeInUnits() const;
+    QSizeF minimumWidgetSizeInPixels() const;
+    QSizeF maximumWidgetSizeInPixels() const;
+    
+    bool load();
+    bool importFromFile(const QString &path);
+    bool exportToFile(const QString &path);
+        
+    static HsConfiguration *instance();
+    static HsConfiguration *takeInstance();
+    static void setInstance(HsConfiguration *instance);
 
 private:
-    static int mBounceEffect;		
-	static qreal mTapAndHoldDistance;
-	static int mWidgetTapAndHoldTimeout;
-	static int mSceneTapAndHoldTimeout;
-    static qreal mPageChangeZoneWidth;
-	static qreal mPageIndicatorSpacing;
-    static int mPageChangeAnimationDuration;
-	static int mPageChangeZoneAnimationDuration;
-    static int mPageChangeZoneReverseAnimationDuration;
-	static int mPageRemovedAnimationDuration;
-	static int mNewPageAddedAnimationDuration;
-	static int mWidgetDragEffectDuration;
-	static int mWidgetDropEffectDuration;
-	static int mBounceFeedbackEffectDistance;
-    static int mDefaultPageId;
-    static int mMaximumPageCount;
-    static qreal mMaximumWidgetHeight;
-    static qreal mMaximumWidgetWidth;
-    static qreal mMinimumWidgetHeight;
-    static qreal mMinimumWidgetWidth;
-    static bool mShortcutLabelsVisible;
-    static qreal mPageChangePanDistance;
-    static int mPageChangePanDistanceInPixels;
+    Q_DISABLE_COPY(HsConfiguration)
+    
+private:
+    int mBounceEffect;
+    int mWidgetTapAndHoldTimeout;
+    int mSceneTapAndHoldTimeout;
+    int mPageChangeAnimationDuration;
+    int mPageChangeZoneAnimationDuration;
+    int mPageChangeZoneReverseAnimationDuration;
+    int mPageRemovedAnimationDuration;
+    int mNewPageAddedAnimationDuration;
+    int mWidgetDragEffectDuration;
+    int mWidgetDropEffectDuration;
+    int mDefaultPageId;
+    int mMaximumPageCount;
+    bool mIsShortcutLabelVisible;
+    qreal mBounceFeedbackEffectDistance;
+    qreal mPageChangePanDistanceInPixels;
+    qreal mTapAndHoldDistance;
+    qreal mPageChangeZoneWidth;
+    qreal mPageIndicatorSpacing;
+    qreal mMaximumWidgetHeight;
+    qreal mMaximumWidgetWidth;
+    qreal mMinimumWidgetHeight;
+    qreal mMinimumWidgetWidth;
+    qreal mPageChangePanDistance;
+    HbFeedback::InstantEffect mPageChangeFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetPickFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetDropFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetRepositionFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetOverTrashbinFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetDropToTrashbinFeedbackEffect;
+    HbFeedback::InstantEffect mShortcutWidgetTapFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetMoveBlockedFeedbackEffect;
+    HbFeedback::InstantEffect mClockWidgetTapFeedbackEffect;
+    HbFeedback::InstantEffect mWidgetSnappingFeedbackEffect;
+    bool mIsSnapEnabled;
+    int mSnapTimeout;
+    qreal mSnapForce;
+    qreal mSnapGap;
+    qreal mSnapBorderGap;
+    int mSnapLineFadeInDuration;
+    int mSnapLineFadeOutDuration;
+    bool mIsSnapEffectsEnabled;
+    SceneType mSceneType;
 
-    static HbFeedback::InstantEffect mPageChangeFeedbackType;
-	static HbFeedback::InstantEffect mWidgetPickFeedbackType;
-	static HbFeedback::InstantEffect mWidgetDropFeedbackType;
-	static HbFeedback::InstantEffect mWidgetRepositionFeedbackType;
-	static HbFeedback::InstantEffect mWidgetOverTrashbinFeedbackType;
-	static HbFeedback::InstantEffect mWidgetDropToTrashbinFeedbackType;
-	static HbFeedback::InstantEffect mShortcutWidgetTapFeedbackType;
-	static HbFeedback::InstantEffect mWidgetMoveBlockedFeedbackType;
-	static HbFeedback::InstantEffect mClockWidgetTapFeedbackType;
-	static HbFeedback::InstantEffect mWidgetSnappingFeedbackType;
+    static HsConfiguration *mInstance;
 
-    static bool mSnapEnabled;
-    static qreal mSnapForce;
-    static qreal mSnapGap;
-    static qreal mSnapBorderGap;
-    static int mSnapTimeout;
+    HOMESCREEN_TEST_FRIEND_CLASS(TestHsDomainModel)
 };
 
 #endif // HSCONFIGURATION_H