securitydialogs/SecUi/SecUiTestQt/viewfutedataform.cpp
changeset 66 67b3e3c1fc87
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/viewfutedataform.cpp	Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,1390 @@
+/*
+* ====================================================
+*  Name        : viewfutedataform.cpp
+*  Part of     : fute/listdemo
+*  Description : Settings for listdemo, treedemo, griddemo
+*  Version     : %version: 1 %
+*
+*  Copyright (c) 2009 Nokia.  All rights reserved.
+*  This material, including documentation and any related computer
+*  programs, is protected by copyright controlled by Nokia.  All
+*  rights are reserved.  Copying, including reproducing, storing,
+*  adapting or translating, any or all of this material requires the
+*  prior written consent of Nokia.  This material also contains
+*  confidential information which may not be disclosed to others
+*  without the prior written consent of Nokia.
+* ====================================================
+*/
+
+#include "viewfutedataform.h"
+#include <hbdataformmodel.h>
+#include <hbabstractviewitem.h>
+#include <hblistviewitem.h>
+#include <hblistview.h>
+#include <hbtreeview.h>
+#include <hbgridview.h>
+#include <hbscrollbar.h>
+#include <hbframebackground.h>
+#include <hbaction.h>
+#include <hbmenu.h>
+#include <hblineedit.h>
+#include <hbinputeditorinterface.h>
+#include <hblistwidgetitem.h>
+#include <hbabstractitemview.h>
+#include <hbindexfeedback.h>
+
+#include <QStandardItem>
+#include <QGraphicsScene>
+#include <QAbstractItemView>
+
+Q_DECLARE_METATYPE(QList<int>)
+
+// Settings
+const QStringList TextStyles = (QStringList() << "Primary" << "Secondary");
+const QStringList CustomWidgets = (QStringList() << "Empty" << "Zoom slider" << "Volume Slider" << "Progress bar"  << "Button" << "Text Editor" );
+const QStringList OnOff = (QStringList() << "On" << "Off");
+const QStringList LaunchInPopups = (QStringList() << "Launch into popup" << "Launch into view") ;
+const QStringList SelectionModes = (QStringList() << "Single selection" << "Multiple selection" << "No selection");
+const QStringList ScrollModes = (QStringList() << "Pan" << "Pan with follow on");
+const QStringList GraphicsSizes = (QStringList() << "Small icon" << "Medium icon" << "Large icon" << "Thumbnail" << "Wide thumbnail");
+const QStringList LandscapeModes = (QStringList() << "Normal" << "Stretched");
+const QStringList OrientationTypes  = (QStringList() << "Portrait" << "Landscape");
+const QStringList ScrollHints  = (QStringList() << "Just visible" << "At top" << "At bottom" << "At center" );
+const QStringList IndexFeedbackPolicies = (QStringList() << "None" << "One Char" << "Three Char" << "String" << "detatch" );
+const QStringList IconLoadPolicies = (QStringList() << "Synchronous" << "Asynchronous when scrolling" << "Asynchronous" );
+
+// Add item
+const QStringList LeftColumnWidgets = (QStringList() << "Empty" << "Icon");
+const QStringList RightColumnWidgets = (QStringList() << "Empty" << "Icon");
+const QStringList ItemBackgrounds = (QStringList() << "None" << "Red" << "Green" << "Blue" << "Bitmap" << "Frame");
+const QStringList ItemTypes = (QStringList() << "Normal" << "Separator");
+const QStringList AnimationList = (QStringList() << "Appear" << "Disappear" << "TouchDown");
+
+const QStringList KConvenienceIcons = (QStringList() 
+    << ":/demo/list1"
+);
+
+ViewFuteDataForm::ViewFuteDataForm( HbAbstractItemView &view,
+                                   QGraphicsItem *parent):
+  HbDataForm(parent),
+  activity(None),
+  view(&view),
+  item(0),
+  mIndexFeedback(0)
+{
+    settingsFormModel = new HbDataFormModel();
+    initialise();
+}
+
+ViewFuteDataForm::~ViewFuteDataForm()
+{
+    delete settingsFormModel;
+}
+
+void ViewFuteDataForm::populateSettings()
+{
+    activity = Settings;
+    settingsFormModel->clear();
+
+    counter += populateCustomSettingsItem(-1);
+
+    //populateLaunchInPopup();
+    //counter += populateCustomSettingsItem(LaunchInPopup);
+
+    populateSelectionMode();
+    counter += populateCustomSettingsItem(SelectionMode);
+
+    populateScrollHint();
+    counter += populateCustomSettingsItem(ScrollHint);
+
+    populateRecycling();
+    counter += populateCustomSettingsItem(Recycling);
+
+    populateArrangeMode();
+    counter += populateCustomSettingsItem(ArrangeMode);
+
+    populateUniformItem();
+    counter += populateCustomSettingsItem(UniformItem);
+
+    populateFrame();
+    counter += populateCustomSettingsItem(Frame);
+
+    populateRichText();
+    counter += populateCustomSettingsItem(RichText);
+
+    populateScrollingStyle();
+    counter += populateCustomSettingsItem(ScrollingStyle);
+
+    populateInteractiveScrollBar();
+    counter += populateCustomSettingsItem(InteractiveScrollBar);
+
+    populateClampingStyle();
+    counter += populateCustomSettingsItem(ClampingStyle);
+
+    populateFrictionEnabled();
+    counter += populateCustomSettingsItem(FrictionEnabled);
+
+    populateGraphicsSize();
+    counter += populateCustomSettingsItem(GraphicsSize);
+
+    populateStretchingStyle();
+    counter += populateCustomSettingsItem(StretchingStyle);
+
+    populateMaximumRowCount();
+    counter += populateCustomSettingsItem(MaximumRowCount);
+
+    populateMinimumRowCount();
+    counter += populateCustomSettingsItem(MinimumRowCount);
+
+    //populateMirroring();
+    //counter += populateCustomSettingsItem(Mirroring);
+
+    populateIndexFeedbackPolicy();
+    counter += populateCustomSettingsItem(IndexFeedbackPolicy);
+/*
+    populateEnabledAnimations();
+    counter += populateCustomSettingsItem(Animations);
+*/
+    populatePixmapCacheEnabled();
+    counter += populateCustomSettingsItem(PixmapCache);
+
+    populateIconLoadPolicy();
+    counter += populateCustomSettingsItem(IconLoadPolicy);
+
+    setModel(settingsFormModel);
+}
+
+void ViewFuteDataForm::setInputData(    Activity    action,
+                                        int         item, 
+                                        QVariant    data)
+{
+    if (    item < 0
+        ||  action == None
+        ||  (   (   action == Settings
+                &&  item >= SettingsIndexLast) 
+            ||  (   action == AddItem
+            &&  item >= AddItemIndexLast))) {
+        return;
+    }
+
+    if (action == Settings) {
+        settingsData[item] = data;
+        data.isValid();
+    }
+    else if (action == AddItem) {
+        addItemData[item] = data;
+    }
+}
+
+
+int ViewFuteDataForm::populateCustomSettingsItem(int previousItem)
+{
+    Q_UNUSED(previousItem);
+    return 0;
+}
+
+void ViewFuteDataForm::initialise()
+{
+    settingsFormModel->clear();
+    counter=0;
+    for (int i=0; i< SettingsIndexLast; i++) {
+        settingsIndexes[i] = -1;
+    }
+    for (int i=0; i< AddItemIndexLast; i++) {
+        addItemIndexes[i] = -1;
+    }
+    for (int i=0; i< SettingsIndexLast; i++) {
+        settingsData[i] = QVariant();
+    }
+    for (int i=0; i< AddItemIndexLast; i++) {
+        addItemData[i] = QVariant();
+    }
+}
+
+int ViewFuteDataForm::nextIndex() const
+{
+    return counter;
+}
+
+ViewFuteDataForm::Activity ViewFuteDataForm::action() const
+{
+    return activity;
+}
+
+
+HbDataFormModel *ViewFuteDataForm::dataModel() const
+{
+    return settingsFormModel;
+}
+
+void ViewFuteDataForm::populateGraphicsSize()
+{
+    HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+    if ( prototype ) {
+        settingsIndexes[GraphicsSize] = counter++;
+        
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, 
+            QString("Graphics size:"));
+
+        item->setContentWidgetData("items", GraphicsSizes);
+
+        HbListViewItem::GraphicsSize graphicsSize = prototype->graphicsSize();
+        if (graphicsSize == HbListViewItem::SmallIcon) {
+            item->setContentWidgetData("selected", 0);
+        } else if (graphicsSize == HbListViewItem::MediumIcon) {
+            item->setContentWidgetData("selected", 1);
+        } else if (graphicsSize == HbListViewItem::LargeIcon) {
+            item->setContentWidgetData("selected", 2);
+        } else if (graphicsSize == HbListViewItem::Thumbnail) {
+            item->setContentWidgetData("selected", 3);
+        } else {
+            item->setContentWidgetData("selected", 4);
+        }
+    }
+}
+
+void ViewFuteDataForm::populateStretchingStyle()
+{
+    HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+    if ( prototype ) {
+        settingsIndexes[StretchingStyle] = counter++;       
+
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, 
+            QString("Landscape mode:"));
+
+        item->setContentWidgetData("items", LandscapeModes);
+        if (prototype->stretchingStyle() == HbListViewItem::StretchLandscape) {
+            item->setContentWidgetData("selected", 1);
+        } else {
+            item->setContentWidgetData("selected", 0);
+        }
+    }
+}
+
+void ViewFuteDataForm::populateMaximumRowCount()
+{
+    HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+    if ( prototype ) {
+        settingsIndexes[MaximumRowCount] = counter++;
+
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::SliderItem, 
+            QString("Max secondary text rows:"));  
+
+        int maximum = 0;
+        int minimum = 0;
+        prototype->getSecondaryTextRowCount(minimum, maximum);
+
+        item->setContentWidgetData("value", maximum);
+        item->setContentWidgetData("maximum", 10);
+        item->setContentWidgetData("minimum", 1);
+        item->setContentWidgetData("tickPosition", Hb::SliderTicksBelow);
+        item->setContentWidgetData("majorTickInterval",1);
+
+        // does not work
+        /*QStringList values;
+        values << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8" << "9" << "10"; 
+        item->setContentWidgetData("majorTickLabels",values);*/
+    }
+}
+
+void ViewFuteDataForm::populateMinimumRowCount()
+{
+    HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+    if ( prototype ) {
+        settingsIndexes[MinimumRowCount] = counter++;
+
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::SliderItem, 
+            QString("Min secondary text rows:"));  
+
+        int maximum = 0;
+        int minimum = 0;
+        prototype->getSecondaryTextRowCount(minimum, maximum);
+
+        item->setContentWidgetData("value", minimum);
+        item->setContentWidgetData("maximum", 10);
+        item->setContentWidgetData("minimum", 1);
+        item->setContentWidgetData("tickPosition", Hb::SliderTicksBelow);
+        item->setContentWidgetData("majorTickInterval",1);
+    }
+}
+
+void ViewFuteDataForm::populateFrame()
+{
+    settingsIndexes[Frame] = counter++;
+    HbAbstractViewItem *prototype = qobject_cast<HbAbstractViewItem *>(view->itemPrototypes().first());
+    const HbFrameBackground &frameBackground = prototype->defaultFrame();
+
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::ToggleValueItem, QString("Default frame:"));
+    if (frameBackground.isNull()) {
+        item->setContentWidgetData("text", "On");
+        item->setContentWidgetData("additionalText", "Off");
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateRecycling()
+{
+    settingsIndexes[Recycling] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::ToggleValueItem, QString("Item recycling:"));
+    if (view->itemRecycling()) {
+        item->setContentWidgetData("text", "On");
+        item->setContentWidgetData("additionalText", "Off");
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateUniformItem()
+{
+    HbListView *listView = qobject_cast<HbListView *>(view);
+    if (listView) {
+        settingsIndexes[UniformItem] = counter++;
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+            HbDataFormModelItem::ToggleValueItem, QString("Uniform Items:"));
+        if (view->uniformItemSizes()) {
+            item->setContentWidgetData("text", "On");
+            item->setContentWidgetData("additionalText", "Off");
+        } else {
+            item->setContentWidgetData("text", "Off");
+            item->setContentWidgetData("additionalText", "On");
+        }
+    }
+}
+
+void ViewFuteDataForm::populateRichText()
+{
+    HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+    if (prototype) {
+        settingsIndexes[RichText] = counter++;
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+            HbDataFormModelItem::ToggleValueItem, QString("Rich text support:"));
+        if (prototype->textFormat() == Qt::RichText) {
+            item->setContentWidgetData("text", "On");
+            item->setContentWidgetData("additionalText", "Off");
+        } else {
+            item->setContentWidgetData("text", "Off");
+            item->setContentWidgetData("additionalText", "On");
+        }
+    }
+}
+
+void ViewFuteDataForm::populateSelectionMode()
+{
+    settingsIndexes[SelectionMode] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Selection mode:"));
+    item->setContentWidgetData("items", SelectionModes);
+    if (view->selectionMode() == HbAbstractItemView::SingleSelection) {
+        item->setContentWidgetData("selected", 0);
+    } else if (view->selectionMode() == HbAbstractItemView::MultiSelection) {
+        item->setContentWidgetData("selected", 1);
+    } else {
+        item->setContentWidgetData("selected", 2);
+    }
+}
+
+
+void ViewFuteDataForm::populateLaunchInPopup()
+{
+    settingsIndexes[LaunchInPopup] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Launch target of next model:"));
+    item->setContentWidgetData("items", LaunchInPopups);
+    if (    settingsData[LaunchInPopup].isValid() 
+        &&  settingsData[LaunchInPopup].canConvert(QVariant::Bool)
+        &&  settingsData[LaunchInPopup].toBool()) {
+        item->setContentWidgetData("selected", 0);
+    } else {
+        item->setContentWidgetData("selected", 1);
+    }
+}
+
+void ViewFuteDataForm::populateArrangeMode()
+{
+    HbListView *listView = qobject_cast<HbListView *>(view);
+    if (listView) {
+        settingsIndexes[ArrangeMode] = counter++;
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+            HbDataFormModelItem::ToggleValueItem, QString("Arrange mode:"));
+        if (listView->arrangeMode()) {
+            item->setContentWidgetData("text", "On");
+            item->setContentWidgetData("additionalText", "Off");
+        } else {
+            item->setContentWidgetData("text", "Off");
+            item->setContentWidgetData("additionalText", "On");
+        }
+    }
+}
+
+void ViewFuteDataForm::populateScrollingStyle()
+{
+    settingsIndexes[ScrollingStyle] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Scroll mode:"));
+    item->setContentWidgetData("items", ScrollModes);
+    if (view->scrollingStyle() == HbScrollArea::Pan) {
+        item->setContentWidgetData("selected", 0);
+    } else {
+        item->setContentWidgetData("selected", 1);
+    }
+}
+
+void ViewFuteDataForm::populateClampingStyle()
+{
+    settingsIndexes[ClampingStyle] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+         HbDataFormModelItem::ToggleValueItem, QString("List bounce clamping:"));
+    if (view->clampingStyle() == HbScrollArea::BounceBackClamping) {
+        item->setContentWidgetData("text", "On");
+        item->setContentWidgetData("additionalText", "Off");
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateInteractiveScrollBar()
+{
+    settingsIndexes[InteractiveScrollBar] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+         HbDataFormModelItem::ToggleValueItem, QString("Interactive scrollbar:"));
+    if (view->verticalScrollBar()->isInteractive() == true
+        || view->horizontalScrollBar()->isInteractive() == true) {
+        item->setContentWidgetData("text", "On");
+        item->setContentWidgetData("additionalText", "Off");
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateFrictionEnabled()
+{
+    settingsIndexes[FrictionEnabled] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::ToggleValueItem, QString("List scroll inertia:"));
+    if (view->frictionEnabled()) {
+        item->setContentWidgetData("text", "On");
+        item->setContentWidgetData("additionalText", "Off");
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateOrientation()
+{
+    settingsIndexes[Orientation] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Orientation:"));
+    item->setContentWidgetData("items", OrientationTypes);
+    if (    settingsData[Orientation].isValid() 
+        &&  settingsData[Orientation].canConvert(QVariant::Int) 
+        &&  (    settingsData[Orientation].toInt() == 0
+            ||  settingsData[Orientation].toInt() == 1)) {
+            item->setContentWidgetData("selected", settingsData[Orientation].toInt());
+    } 
+    else {
+        item->setContentWidgetData("selected", 0);
+    }
+}
+
+void ViewFuteDataForm::populateMirroring()
+{
+    settingsIndexes[Mirroring] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::ToggleValueItem, QString("Layout mirrored:"));
+    if (    settingsData[Mirroring].isValid() 
+        &&  settingsData[Mirroring].canConvert(QVariant::Int)) {
+        if (settingsData[Mirroring].toInt() == Qt::LeftToRight) {
+            item->setContentWidgetData("text", "Off");
+            item->setContentWidgetData("additionalText", "On");
+        }
+        else if (settingsData[Mirroring].toInt() == Qt::RightToLeft) {
+            item->setContentWidgetData("text", "On");
+            item->setContentWidgetData("additionalText", "Off");
+        }
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateScrollHint()
+{
+    settingsIndexes[ScrollHint] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Scroll-to-target stop position:"));
+    item->setContentWidgetData("items", ScrollHints);
+    int initialValue = 0;
+    if (    settingsData[ScrollHint].isValid() 
+        &&  settingsData[ScrollHint].canConvert(QVariant::Int)
+        &&  settingsData[ScrollHint].toInt() >= 0
+        &&  settingsData[ScrollHint].toInt() <= QAbstractItemView::PositionAtCenter) {
+        initialValue = settingsData[ScrollHint].toInt();
+    }
+
+    item->setContentWidgetData("selected", initialValue);
+}
+
+void ViewFuteDataForm::populateIndexFeedbackPolicy()
+{
+    if (mIndexFeedback) {
+        settingsIndexes[IndexFeedbackPolicy] = counter++;
+        HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+            HbDataFormModelItem::RadioButtonListItem, QString("Index Feedback Policy:"));
+        item->setContentWidgetData("items", IndexFeedbackPolicies);
+        int initialValue = 0;
+
+        if (! mIndexFeedback->itemView() ) {
+            initialValue = 4;
+        } else {
+            initialValue = (int) mIndexFeedback->indexFeedbackPolicy();
+        }
+
+        item->setContentWidgetData("selected", initialValue);
+    }
+}
+
+void ViewFuteDataForm::resolveSettingsResults()
+{
+    if (!view) {
+        return;
+    }
+
+    HbListView *listView = qobject_cast<HbListView *>(view);
+
+    HbAbstractViewItem *prototype = view->itemPrototypes().first();
+    HbListViewItem *prototypeListView = qobject_cast<HbListViewItem *>(prototype);
+    if (prototypeListView) {
+        prototypeListView->setGraphicsSize(getGraphicsSize());
+        prototypeListView->setStretchingStyle(getStretchingStyle());
+        int minBefore = 1;
+        int maxBefore = 1;
+        prototypeListView->getSecondaryTextRowCount(minBefore, maxBefore);
+        if (    minBefore != 1
+            ||  maxBefore != 1
+            ||  getMinimumRowCount() != 1
+            ||  getMaximumRowCount() != 1 ) {
+            prototypeListView->setSecondaryTextRowCount(getMinimumRowCount(), getMaximumRowCount());
+        }
+    }
+
+    HbFrameBackground frame;
+    if (getFrame()){
+        frame.setFrameGraphicsName(QString());
+    } else {
+        frame.setFrameGraphicsName(QString(""));
+    }
+    prototype->setDefaultFrame(frame);
+
+    view->setItemRecycling(getRecycling());
+    view->setUniformItemSizes(getUniformItem());
+
+    if (prototypeListView) {
+        prototypeListView->setTextFormat(getRichText());
+    }
+    view->setSelectionMode(getSelectionMode());
+    view->setScrollingStyle(getScrollingStyle());
+    view->setClampingStyle(getClampingStyle());
+    view->setFrictionEnabled(getFrictionEnabled());
+
+    bool interactiveScrollBar = getInteractiveScrollBar();
+    if (view->scrollDirections() & Qt::Horizontal)
+    {
+        view->horizontalScrollBar()->setInteractive(interactiveScrollBar);
+    }
+    if (view->scrollDirections() & Qt::Vertical)
+    {
+        view->verticalScrollBar()->setInteractive(interactiveScrollBar);
+    }
+
+    // must be after interactive scrollbar setting
+    if (listView) {
+        listView->setArrangeMode(getArrangeMode());
+    }
+
+    if (mIndexFeedback) {
+        int indexFeedbackMode = getIndexFeedbackPolicy();
+        if (indexFeedbackMode == 4) {
+            mIndexFeedback->setItemView(0);
+        } else {
+            mIndexFeedback->setItemView(view);
+            mIndexFeedback->setIndexFeedbackPolicy((HbIndexFeedback::IndexFeedbackPolicy) indexFeedbackMode);
+        }
+    }
+
+    view->setItemPixmapCacheEnabled(getPixmapCacheEnaled());
+    view->setIconLoadPolicy(getIconLoadPolicy());
+/*
+    if (listView) {
+        listView->setEnabledAnimations(getEnabledAnimations());
+    }
+*/
+}
+
+HbListViewItem::GraphicsSize ViewFuteDataForm::getGraphicsSize()
+{
+    HbListViewItem::GraphicsSize graphicsSize(HbListViewItem::SmallIcon);
+
+    if (settingsIndexes[GraphicsSize] != -1) {
+        if (static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 1) {
+            graphicsSize = HbListViewItem::MediumIcon;
+        } else if (static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 2) {
+            graphicsSize = HbListViewItem::LargeIcon;
+        } else if (static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 3) {
+            graphicsSize = HbListViewItem::Thumbnail;
+        } else if (static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 4) {
+            graphicsSize = HbListViewItem::WideThumbnail;
+        }
+    } 
+
+    return graphicsSize;
+}
+
+HbListViewItem::StretchingStyle ViewFuteDataForm::getStretchingStyle()
+{
+    HbListViewItem::StretchingStyle stretchingStyle(HbListViewItem::NoStretching);
+
+    if (settingsIndexes[StretchingStyle] != -1) {
+        if (static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[StretchingStyle],0)))->dataItemContentWidget()->property("selected").toInt() == 1) {
+            stretchingStyle = HbListViewItem::StretchLandscape;
+        }
+    } 
+     
+    return stretchingStyle;
+}
+
+int ViewFuteDataForm::getMaximumRowCount()
+{
+    int maximumRowCount = 0;
+    if (settingsIndexes[MaximumRowCount] != -1) {
+        maximumRowCount = static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[MaximumRowCount],0)))->dataItemContentWidget()->property("value").toInt();
+    } 
+
+    return maximumRowCount;
+}
+
+int ViewFuteDataForm::getMinimumRowCount()
+{
+    int minimumRowCount = 0;
+    if (settingsIndexes[MinimumRowCount] != -1) {
+        minimumRowCount = static_cast<HbDataFormViewItem*>(itemByIndex(
+                settingsFormModel->index(settingsIndexes[MinimumRowCount],0)))->dataItemContentWidget()->property("value").toInt();
+    } 
+
+    return minimumRowCount;
+}
+
+bool ViewFuteDataForm::getFrame()
+{
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Frame],0)))->
+        dataItemContentWidget()->property("text").toString() == "On") {
+        return true;
+    }
+    return false;
+}
+
+bool ViewFuteDataForm::getRecycling()
+{
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Recycling],0)))->
+            dataItemContentWidget()->property("text").toString() == "On") {
+        return true;
+    }
+    return false;
+}
+
+bool ViewFuteDataForm::getUniformItem()
+{
+    if (settingsIndexes[UniformItem] != -1) {
+        if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[UniformItem],0)))->
+                dataItemContentWidget()->property("text").toString() == "On") {
+            return true;
+        }
+    }
+    return false;
+}
+
+Qt::TextFormat ViewFuteDataForm::getRichText()
+{
+    if (settingsIndexes[RichText] != -1) {
+        if (static_cast<HbDataFormViewItem*>(itemByIndex(
+            settingsFormModel->index(settingsIndexes[RichText],0)))->
+                dataItemContentWidget()->property("text").toString() == "Off") {
+            return Qt::PlainText;
+        } 
+        return Qt::RichText;
+    }
+    return Qt::PlainText;
+}
+
+HbAbstractItemView::SelectionMode ViewFuteDataForm::getSelectionMode()
+{
+    int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[SelectionMode],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (value == 0) {
+        return HbListView::SingleSelection;
+    } else if (value == 1) {
+        return HbListView::MultiSelection;
+    } else {
+        return HbListView::NoSelection;
+    }
+}
+
+bool ViewFuteDataForm::getLaunchInPopup()
+{
+    int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[LaunchInPopup],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (value == 0) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+
+bool ViewFuteDataForm::getArrangeMode()
+{
+    if (settingsIndexes[ArrangeMode] != -1) {
+        if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ArrangeMode],0)))->
+                dataItemContentWidget()->property("text").toString() == "On") {
+            return true;
+        } 
+    }
+    return false;
+}
+
+HbScrollArea::ScrollingStyle ViewFuteDataForm::getScrollingStyle()
+{
+    int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ScrollingStyle],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (value == 0) {
+        return HbScrollArea::Pan;
+    } else {
+        return HbScrollArea::PanWithFollowOn;
+    }
+}
+
+HbScrollArea::ClampingStyle ViewFuteDataForm::getClampingStyle()
+{
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ClampingStyle],0)))->
+            dataItemContentWidget()->property("text").toString() == "On") {
+        return HbScrollArea::BounceBackClamping;
+    } 
+    return HbScrollArea::StrictClamping;
+}
+
+bool ViewFuteDataForm::getFrictionEnabled()
+{
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[FrictionEnabled],0)))->
+            dataItemContentWidget()->property("text").toString() == "On") {
+        return true;
+    } 
+    return false;
+}
+
+Qt::LayoutDirection ViewFuteDataForm::getMirroring()
+{
+    int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Mirroring],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (value == 1) {
+        return Qt::RightToLeft;
+    } 
+    return Qt::LeftToRight;
+}
+
+Qt::Orientation ViewFuteDataForm::getOrientation()
+{
+    int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Orientation],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (value == 0) {
+        return Qt::Vertical;
+    } else {
+        return Qt::Horizontal;
+    } 
+}
+
+HbAbstractItemView::ScrollHint ViewFuteDataForm::getScrollHint()
+{
+    int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ScrollHint],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    return (HbAbstractItemView::ScrollHint)value;
+}
+
+int ViewFuteDataForm::getIndexFeedbackPolicy()
+{
+    int value = 0;
+    if (mIndexFeedback) {
+        value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[IndexFeedbackPolicy],0)))->
+            dataItemContentWidget()->property("selected").toInt();
+        return value;
+    }
+    return value;
+}
+
+bool ViewFuteDataForm::getInteractiveScrollBar()
+{
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[InteractiveScrollBar],0)))->
+            dataItemContentWidget()->property("text").toString() == "On") {
+        return true;
+    }
+    return false;
+}
+
+HbAbstractItemView::ItemAnimations ViewFuteDataForm::getEnabledAnimations()
+{
+    QVariant selectedAsVariant = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Animations],0)))->
+        dataItemContentWidget()->property("selectedItems");
+
+    QList<QVariant> selected = selectedAsVariant.value< QList<QVariant> >();
+
+    HbAbstractItemView::ItemAnimations mask = HbAbstractItemView::None;
+
+    HbListView *listView = qobject_cast<HbListView *>(view);
+    if (listView) {
+        if (selected.contains(0)) {
+            mask |= HbAbstractItemView::Appear;
+        }
+        if (selected.contains(1)) {
+            mask |= HbAbstractItemView::Disappear;
+        }
+        if (selected.contains(2)) {
+            mask |= HbAbstractItemView::TouchDown;
+        }
+    } else {
+        if (selected.contains(0)) {
+            mask |= HbAbstractItemView::TouchDown;
+        }
+    }
+    return mask;
+}
+
+bool ViewFuteDataForm::getPixmapCacheEnaled()
+{
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[PixmapCache],0)))->
+            dataItemContentWidget()->property("text").toString() == "On") {
+        return true;
+    }
+    return false;
+}
+
+HbAbstractItemView::IconLoadPolicy ViewFuteDataForm::getIconLoadPolicy()
+{
+    int selection = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[IconLoadPolicy],0)))->
+            dataItemContentWidget()->property("selected").toInt();
+    if ( selection == 0) {
+        return HbAbstractItemView::LoadSynchronously;
+    } else if (selection == 2) {
+        return HbAbstractItemView::LoadAsynchronouslyAlways;
+    } else {
+        return HbAbstractItemView::LoadAsynchronouslyWhenScrolling;
+    }
+}
+
+void ViewFuteDataForm::populateAddItem()
+{
+    activity = AddItem;
+    settingsFormModel->clear();
+
+    populatePrimaryText();
+    populateSecondaryText();
+    populateThirdText();
+    populateLeftColumn();
+    populateRightColumn();
+    populateType();
+    populateBackground();
+    populateAddItemCount();
+
+    setModel(settingsFormModel);
+
+    HbListView *listView = qobject_cast<HbListView *>(view);
+    HbTreeView *treeView = qobject_cast<HbTreeView *>(view);
+    if (listView || treeView) {
+        HbAction *action = new HbAction(tr("Format"));
+        connect(action, SIGNAL(triggered()), this, SLOT(formatTriggered()));
+
+        if (addItemIndexes[PrimaryText] != -1) {
+            if (qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->dataItemContentWidget())) {
+                HbLineEdit *editor = qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->dataItemContentWidget());
+                HbEditorInterface editInterface(editor);
+                editInterface.addAction(action);
+            }
+        }
+
+        if (addItemIndexes[SecondaryText] != -1) {
+            if (qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->dataItemContentWidget())) {
+                HbLineEdit *editor = qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->dataItemContentWidget());
+                HbEditorInterface editInterface2(editor);
+                editInterface2.addAction(action);
+            }
+
+        if (addItemIndexes[ThirdText] != -1) {
+            if (qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->dataItemContentWidget())) {
+                HbLineEdit *editor = qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->dataItemContentWidget());
+                HbEditorInterface editInterface2(editor);
+                editInterface2.addAction(action);
+            }
+        }
+        }
+    }
+}
+
+void ViewFuteDataForm::populatePrimaryText()
+{
+    addItemIndexes[PrimaryText] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+            HbDataFormModelItem::TextItem, QString("Primary text:"));
+    if (addItemData[PrimaryText].isValid() && addItemData[PrimaryText].canConvert(QVariant::String)) {
+        item->setContentWidgetData("text", addItemData[PrimaryText].toString());
+    }
+}
+
+void ViewFuteDataForm::populateSecondaryText()
+{
+    addItemIndexes[SecondaryText] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::TextItem, QString("Secondary text:"));
+    if (addItemData[SecondaryText].isValid() && addItemData[SecondaryText].canConvert(QVariant::String)) {
+        item->setContentWidgetData("text", addItemData[SecondaryText].toString());
+    }
+}
+
+void ViewFuteDataForm::populateThirdText()
+{
+    addItemIndexes[ThirdText] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::TextItem, QString("Third text:"));
+    if (addItemData[ThirdText].isValid() && addItemData[ThirdText].canConvert(QVariant::String)) {
+        item->setContentWidgetData("text", addItemData[ThirdText].toString());
+    }
+}
+
+
+void ViewFuteDataForm::populateLeftColumn()
+{
+    addItemIndexes[LeftColumn] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Left column widget:"));
+    item->setContentWidgetData(QString("items"), LeftColumnWidgets);
+    item->setContentWidgetData("selected", 0);
+}
+
+void ViewFuteDataForm::populateRightColumn()
+{
+    addItemIndexes[RightColumn] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::RadioButtonListItem, QString("Right column widget:"));
+    item->setContentWidgetData(QString("items"), RightColumnWidgets);
+    item->setContentWidgetData("selected", 0);
+}
+
+void ViewFuteDataForm::populateType()
+{    
+    HbListView *listView = qobject_cast<HbListView *>(view);
+    if (listView) {
+        addItemIndexes[Type] = counter++;
+        HbDataFormModelItem *item = settingsFormModel->
+            appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, QString("Type:"));
+        item->setContentWidgetData("items", ItemTypes);
+        item->setContentWidgetData("selected", 0);
+    }
+}
+
+void ViewFuteDataForm::populateBackground()
+{
+    addItemIndexes[Background] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->
+        appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, QString("Background:"));
+    item->setContentWidgetData("items", ItemBackgrounds);
+    item->setContentWidgetData("selected", 0);
+}
+
+void ViewFuteDataForm::populateAddItemCount()
+{
+
+    addItemIndexes[ItemCount] = counter++;
+    HbDataFormModelItem *item = settingsFormModel->
+        appendDataFormItem(HbDataFormModelItem::TextItem, QString("Item count:"));
+    if (addItemData[ItemCount].isValid() && addItemData[ItemCount].canConvert(QVariant::Int)) {
+        item->setContentWidgetData("text", addItemData[ItemCount].toInt());
+    } else {
+        item->setContentWidgetData("text", QString("1"));
+    }
+}
+
+void ViewFuteDataForm::populateEnabledAnimations()
+{    
+    settingsIndexes[Animations] = counter++;
+
+    HbListView *listView = qobject_cast<HbListView *>(view);
+
+    QStringList animations;
+    if (listView) {
+        animations << "Appear" << "Disappear";
+    }
+    animations << "TouchDown";
+
+    QList<QVariant> selected;
+    if (listView) {
+        if (view->enabledAnimations() | HbAbstractItemView::Appear) {
+            selected.append(0);
+        }
+        if (view->enabledAnimations() | HbAbstractItemView::Disappear) {
+            selected.append(1);
+        }
+        if (view->enabledAnimations() | HbAbstractItemView::TouchDown) {
+            selected.append(2);
+        }
+    } else {
+        if (view->enabledAnimations() | HbAbstractItemView::TouchDown) {
+            selected.append(0);
+        }
+    }
+
+    HbDataFormModelItem *item = settingsFormModel->
+        appendDataFormItem(HbDataFormModelItem::MultiselectionItem, QString("Enabled animations:"));
+    item->setContentWidgetData("items", animations);
+
+    item->setContentWidgetData("selectedItems", selected);
+}
+
+void ViewFuteDataForm::populatePixmapCacheEnabled()
+{
+    settingsIndexes[PixmapCache] = counter++;
+    
+    HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+        HbDataFormModelItem::ToggleValueItem, QString("Pixmap cache:"));
+    if (view->itemPixmapCacheEnabled()) {
+        item->setContentWidgetData("text", "On");
+        item->setContentWidgetData("additionalText", "Off");
+    } else {
+        item->setContentWidgetData("text", "Off");
+        item->setContentWidgetData("additionalText", "On");
+    }
+}
+
+void ViewFuteDataForm::populateIconLoadPolicy()
+{
+    settingsIndexes[IconLoadPolicy] = counter++;
+    
+    HbDataFormModelItem *item = settingsFormModel->
+        appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, QString("Icon load policy:"));
+    item->setContentWidgetData("items", IconLoadPolicies);
+    switch (view->iconLoadPolicy()) {
+        case HbAbstractItemView::LoadSynchronously: {
+            item->setContentWidgetData("selected", 0);
+            break;
+        }
+        case HbAbstractItemView::LoadAsynchronouslyWhenScrolling: {
+            item->setContentWidgetData("selected", 1);
+            break;
+        }
+        case HbAbstractItemView::LoadAsynchronouslyAlways: {
+            item->setContentWidgetData("selected", 2);
+            break;
+        }
+        default: {
+            break;
+        }
+    }    
+}
+
+QList <HbListWidgetItem *> ViewFuteDataForm::getListWidgetItems()
+{
+    QList <HbListWidgetItem *> items;
+
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->
+            dataItemContentWidget()->property("text").toString().isEmpty()
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->
+            dataItemContentWidget()->property("text").toString().isEmpty()
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->
+            dataItemContentWidget()->property("text").toString().isEmpty()
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[LeftColumn],0)))->
+            dataItemContentWidget()->property("selected").toInt() == 0
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[RightColumn],0)))->
+            dataItemContentWidget()->property("selected").toInt() == 0) {
+         return items;
+    }
+
+    QVariantList strings;
+    QVariantList icons;
+
+    QString primaryString = getPrimaryText();
+    QString secondaryString = getSecondaryText();
+    QString thirdString = getThirdText();
+
+
+    if (!thirdString.isEmpty()) {
+        if (primaryString.isEmpty()) {
+            primaryString = " ";
+        }
+        strings.append(primaryString);
+
+        if (!secondaryString.isEmpty()) {
+            strings.append(secondaryString);
+        } else {
+            strings.append(QVariant());
+        }
+        strings.append(thirdString);
+    } else if (!secondaryString.isEmpty()) {
+        if (primaryString.isEmpty()) {
+            primaryString = " ";
+        }
+        strings.append(primaryString);
+        strings.append(secondaryString);
+    } else if (!primaryString.isEmpty()) {
+        strings.append(primaryString);
+    }
+
+    QVariant value1 = getLeftColumn();
+    QVariant value2 = getRightColumn();
+    if (value2.canConvert<HbIcon>()) {
+        icons.append(value1);
+        icons.append(value2);
+    } else if (value1.canConvert<HbIcon>()) {
+        icons.append(value1);
+    }
+
+    QVariant background = getBackground();
+
+    int count = getAddItemCount();
+    for (int i = 0; i < count; i++) {
+
+        if (i != 0) {
+            QString s = QString("%1_%2").arg(primaryString).arg(i);
+            strings.replace(0, s);
+        }
+        
+        HbListWidgetItem *widgetItem = new HbListWidgetItem(getType());
+        
+        widgetItem->setData(strings, Qt::DisplayRole);
+        widgetItem->setData(strings.at(0), Hb::IndexFeedbackRole);
+        widgetItem->setData(icons, Qt::DecorationRole);
+
+        if (background.isValid()) {
+            widgetItem->setBackground(background);
+        }
+
+        items.append(widgetItem);
+    }
+
+
+    return items;
+}
+
+QList <QStandardItem *> ViewFuteDataForm::getStandardItems()
+{
+    QList <QStandardItem *> items; 
+
+    if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->
+            dataItemContentWidget()->property("text").toString().isEmpty()
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->
+            dataItemContentWidget()->property("text").toString().isEmpty()
+     &&  static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->
+            dataItemContentWidget()->property("text").toString().isEmpty()
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[LeftColumn],0)))->
+            dataItemContentWidget()->property("selected").toInt() == 0
+     && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[RightColumn],0)))->
+            dataItemContentWidget()->property("selected").toInt() == 0) {
+         return items;
+    }
+
+    QString primaryString = getPrimaryText();
+    if (primaryString.isEmpty()) {
+        primaryString = " ";
+    }
+
+    QString secondaryString = getSecondaryText();
+
+    QStringList displayTexts;
+    displayTexts.append(primaryString);
+
+    if (!secondaryString.isEmpty()) {
+        displayTexts.append(secondaryString);
+    }
+
+    QString thirdString = getThirdText();
+
+    if (!thirdString.isEmpty()) {
+        displayTexts.append(thirdString);
+    }
+
+
+    QVariant left = getLeftColumn();
+    QVariant right = getRightColumn();
+    QVariantList decorations;
+    decorations.append(left);
+    decorations.append(right);
+
+    QVariant background = getBackground();
+
+    int count = getAddItemCount();
+    for (int i = 0; i < count; i++) {
+
+        if (i != 0) {
+            QString s = QString("%1_%2").arg(primaryString).arg(i);
+            displayTexts.replace(0, s);
+        }
+
+        QStandardItem *item = new QStandardItem();
+        item->setData(displayTexts, Qt::DisplayRole);
+        item->setData(decorations, Qt::DecorationRole);
+
+        if (background.isValid()) {
+            item->setData(background, Qt::BackgroundRole);
+        }
+
+        items.append(item);
+    }
+    return items;
+}
+
+
+
+
+QString ViewFuteDataForm::getPrimaryText()
+{
+    return (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->
+            dataItemContentWidget()->property("text").toString());
+}
+
+QString ViewFuteDataForm::getSecondaryText()
+{
+    return (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->
+            dataItemContentWidget()->property("text").toString());
+}
+
+QString ViewFuteDataForm::getThirdText()
+{
+    return (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->
+            dataItemContentWidget()->property("text").toString());
+}
+
+QVariant ViewFuteDataForm::getLeftColumn()
+{
+    HbIcon icon(KConvenienceIcons.at(0));
+    int i = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[LeftColumn],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (i == 1) {
+        return icon;
+    }
+    return QVariant();
+}
+
+QVariant ViewFuteDataForm::getRightColumn()
+{
+    HbIcon icon(KConvenienceIcons.at(1));
+    int i = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[RightColumn],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    if (i == 1) {
+        return icon;
+    } 
+    return QVariant();
+}
+
+Hb::ModelItemType ViewFuteDataForm::getType()
+{
+    Hb::ModelItemType type = Hb::StandardItem;
+    if (   addItemIndexes[Type] != -1
+        && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[Type],0)))->
+            dataItemContentWidget()->property("selected").toInt() == 1) {
+        type = Hb::SeparatorItem;
+    }
+    return type;
+}
+
+QVariant ViewFuteDataForm::getBackground()
+{
+    HbIcon icon(KConvenienceIcons.at(2));
+    int i = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[Background],0)))->
+        dataItemContentWidget()->property("selected").toInt();
+    QVariant background;
+    if (i == 1) {
+        background = QColor(Qt::red);
+    } else if (i == 2) {
+        background = QBrush(Qt::green, Qt::SolidPattern);
+    } else if (i == 3) {
+        background = QBrush(Qt::blue, Qt::SolidPattern);
+    } else if (i == 4) {
+        background = icon;
+    } else if (i == 5) {
+        background = HbFrameBackground(":/demo/qsn_fr_list", HbFrameDrawer::NinePieces);
+    }
+    return background;
+}
+
+int ViewFuteDataForm::getAddItemCount()
+{
+    QString result = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ItemCount],0)))->
+                        dataItemContentWidget()->property("text").toString();
+    return result.toInt();
+}
+
+
+void ViewFuteDataForm::formatTriggered()
+{
+    HbMenu *menu = new HbMenu();
+    HbAction *action = menu->addAction("Bold");
+    action->setData("<b>Bold text </b>");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+    action = menu->addAction("Italic");
+    action->setData("<i>Italic text </i>");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+    action = menu->addAction("Underline");
+    action->setData("<u>Underlined text </u>");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+    action = menu->addAction("Link");
+    action->setData("<a href=\"link\">Link text</a> ");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+    action = menu->addAction("Color");
+    action->setData("<font color=red>Colored text </font> ");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+    action = menu->addAction("Font");
+    action->setData("<h3>Medium text </h3> ");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+    /*action = menu->addAction("List");
+    action->setData("<ul><li><a href=\"link\">Open</a><li><a href=\"link\">Save</a><li><a href=\"link\">Delete</a><li><a href=\"link\">Move</a></ul>");
+    connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));*/
+
+    menu->setPreferredPos(scene()->focusItem()->scenePos());
+    menu->open();
+}
+
+void ViewFuteDataForm::addFormating()
+{
+    HbAction *action = qobject_cast<HbAction *>(sender());
+    QGraphicsWidget* focused = focusWidget();
+    if (focused) {
+        HbLineEdit *item = qobject_cast<HbLineEdit*>(focused);
+
+        if (item) {
+            QString newText = item->text();
+            newText.append(action->data().toString());
+            item->setText(newText);
+        }
+    }
+}
+
+void ViewFuteDataForm::setIndexFeedback(HbIndexFeedback* indexFeedback)
+{
+    mIndexFeedback = indexFeedback;
+}
+
+