homescreenapp/hsdomainmodel/inc/hsdomainmodeldatastructures.h
changeset 55 03646e8da489
parent 51 4785f57bf3d4
child 60 30f14686fb04
child 62 341166945d65
--- a/homescreenapp/hsdomainmodel/inc/hsdomainmodeldatastructures.h	Thu May 27 12:46:08 2010 +0300
+++ b/homescreenapp/hsdomainmodel/inc/hsdomainmodeldatastructures.h	Fri Jun 11 13:30:16 2010 +0300
@@ -21,25 +21,19 @@
 #include <QRectF>
 #include "hsdomainmodel_global.h"
 #include <HbFeedback>
+#include <QMetaEnum>
 
 class HSDOMAINMODEL_EXPORT HsSceneData
 {
 public:
     HsSceneData() 
-      : id(-1), defaultPageId(-1), maximumPageCount(-1),
-        maximumWidgetHeight(-1.0), maximumWidgetWidth(-1.0),
-        minimumWidgetHeight(-1.0), minimumWidgetWidth(-1.0)
+      : id(-1)
     {}
     
     int     id;
     QString portraitWallpaper;
     QString landscapeWallpaper;
-    int     defaultPageId;
-    int     maximumPageCount;
-    qreal   maximumWidgetHeight;
-    qreal   maximumWidgetWidth;
-    qreal   minimumWidgetHeight;
-    qreal   minimumWidgetWidth;
+
 };
 
 class HSDOMAINMODEL_EXPORT HsPageData
@@ -70,7 +64,7 @@
 {
 public:
     HsWidgetPresentationData()
-        : x(0), y(0), zValue(0), 
+        : orientation(Qt::Vertical), x(0), y(0), zValue(0), 
           widgetId(-1)
     {}
 
@@ -80,7 +74,12 @@
         y = pos.y();
     }
 
-    QString key;
+    QPointF pos() const
+    {
+        return QPointF(x, y);
+    }
+
+    Qt::Orientation orientation;
     qreal   x;
     qreal   y;
     qreal   zValue;
@@ -91,11 +90,11 @@
 {	
 public:
 	int bounceEffect; // pixels, bounce effect reservation, half in left side and half in right side of wallpaper 		
-	int tapAndHoldDistance; // pixels
+	qreal tapAndHoldDistance; // pixels
     int widgetTapAndHoldTimeout; // ms, duration of long press before action is triggered on widget
 	int sceneTapAndHoldTimeout; // ms, duration of long press before action is triggered on background
-	int pageChangeZoneWidth; // pixels
-	int pageIndicatorSpacing; // pixels
+	qreal pageChangeZoneWidth; // pixels
+	qreal pageIndicatorSpacing; // pixels
     int pageChangeAnimationDuration; // ms, this is how long page change animation takes
 	int pageChangeZoneAnimationDuration; // ms, this is how long crawling is done before page is actually changed
     int pageChangeZoneReverseAnimationDuration; // ms, animation duration back to starting position when crawling ends before page is changed
@@ -105,128 +104,31 @@
 	int widgetDropEffectDuration; // ms
 	int boundaryFeedbackEffectDistance; // pixels, when widget is moved within n pixels from first page right border or 
                                         // n pixels from last page's left border, feedback effect is played
+    int defaultPageId; // id of default page (which cannot be removed)
+    int maximumPageCount; // maximum number of pages
+    qreal maximumWidgetHeight; // px
+    qreal maximumWidgetWidth; // px
+    qreal minimumWidgetHeight; // px
+    qreal minimumWidgetWidth; // px
+    bool shortcutLabelsVisible; // display labels under shortcut widgets
+    qreal pageChangePanDistance; // un, amount of pan needed to change page
 };
 
 class HSDOMAINMODEL_EXPORT HsFeedbackConfiguration
 {
 public: 
-    HbFeedback::InstantEffect feedbackFromString(QString feedback)
+    HbFeedback::InstantEffect feedbackFromString(const QString &feedback)
     {
-        if (feedback == "Basic") {
-            return HbFeedback::Basic;
-        }
-        else if (feedback == "Sensitive") {
-            return HbFeedback::Sensitive;
-        }
-        else if (feedback == "BasicButton") {
-            return HbFeedback::BasicButton;
-        }
-        else if (feedback == "SensitiveButton") {
-            return HbFeedback::SensitiveButton;
-        }
-        else if (feedback == "BasicKeypad") {
-            return HbFeedback::BasicKeypad;
-        }
-        else if (feedback == "SensitiveKeypad") {
-            return HbFeedback::SensitiveKeypad;
-        }
-        else if (feedback == "BasicSlider") {
-            return HbFeedback::BasicSlider;
-        }
-        else if (feedback == "SensitiveSlider") {
-            return HbFeedback::SensitiveSlider;
-        }
-        else if (feedback == "BasicKeypad") {
-            return HbFeedback::BasicKeypad;
-        }
-        else if (feedback == "BasicSlider") {
-            return HbFeedback::BasicSlider;
-        }
-        else if (feedback == "SensitiveSlider") {
-            return HbFeedback::SensitiveSlider;
-        }
-        else if (feedback == "BasicItem") {
-            return HbFeedback::BasicItem;
-        }
-        else if (feedback == "SensitiveItem") {
-            return HbFeedback::SensitiveItem;
-        }
-        else if (feedback == " ItemScroll") {
-            return HbFeedback::ItemScroll;
-        }
-        else if (feedback == "ItemPick") {
-            return HbFeedback::ItemPick;
-        }
-        else if (feedback == "ItemDrop") {
-            return HbFeedback::ItemDrop;
-        }
-        else if (feedback == "ItemMoveOver") {
-            return HbFeedback::ItemMoveOver;
-        }
-        else if (feedback == "BounceEffect") {
-            return HbFeedback::BounceEffect;
-        }
-        else if (feedback == "Checkbox") {
-            return HbFeedback::Checkbox;
-        }
-        else if (feedback == "MultipleCheckbox") {
-            return HbFeedback::MultipleCheckbox;
-        }
-        else if (feedback == "Editor") {
-            return HbFeedback::Editor;
-        }
-        else if (feedback == "TextSelection") {
-            return HbFeedback::TextSelection;
-        }
-        else if (feedback == "BlankSelection") {
-            return HbFeedback::BlankSelection;
-        }
-        else if (feedback == "LineSelection") {
-            return HbFeedback::LineSelection;
-        }
-        else if (feedback == "EmptyLineSelection") {
-            return HbFeedback::EmptyLineSelection;
-        }
-        else if (feedback == "PopUp") {
-            return HbFeedback::PopUp;
-        }
-        else if (feedback == "PopupOpen") {
-            return HbFeedback::PopupOpen;
-        }
-        else if (feedback == "PopupClose") {
-            return HbFeedback::PopupClose;
-        }
-        else if (feedback == "Flick") {
-            return HbFeedback::Flick;
-        }
-        else if (feedback == "StopFlick") {
-            return HbFeedback::StopFlick;
-        }
-        else if (feedback == "MultitouchActivate") {
-            return HbFeedback::MultitouchActivate;
-        }
-        else if (feedback == "RotateStep") {
-            return HbFeedback::RotateStep;
-        }
-        else if (feedback == "PositiveTacticon") {
-            return HbFeedback::PositiveTacticon;
-        }
-        else if (feedback == "NeutralTacticon") {
-            return HbFeedback::NeutralTacticon;
-        }
-        else if (feedback == "NegativeTacticon") {
-            return HbFeedback::NegativeTacticon;
-        }
-        else if (feedback == "NumberOfInstantFeedbacks") {
-            return HbFeedback::NumberOfInstantFeedbacks;
-        }
-        else if (feedback == "InstantUser") {
-            return HbFeedback::InstantUser;
-        }
-        else if (feedback == "InstantMaxUser") {
-            return HbFeedback::InstantMaxUser;
-        }
+    int index = HbFeedback::staticMetaObject.indexOfEnumerator("InstantEffect");
+    QMetaEnum metaEnum = HbFeedback::staticMetaObject.enumerator(index);
+
+    int intFeedback = metaEnum.keysToValue(feedback.toAscii());
+
+    if (intFeedback < HbFeedback::None || intFeedback > HbFeedback::InstantMaxUser) {
         return HbFeedback::None;
+    } 
+
+    return static_cast<HbFeedback::InstantEffect>(intFeedback);
     }
 
 public: