diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgsettings/settingsview/src/msgsettingsdataformcustomitem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgsettings/settingsview/src/msgsettingsdataformcustomitem.cpp Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,94 @@ +/* + * 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" + * 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: This class provides custom list item for the + * DataForm + * + */ + +#include +#include +#include +#include +#include + +MsgSettingsDataFormCustomItem::MsgSettingsDataFormCustomItem( + QGraphicsItem *parent) : + HbDataFormViewItem(parent) + { + } + +MsgSettingsDataFormCustomItem::~MsgSettingsDataFormCustomItem() + { + } + +HbAbstractViewItem* MsgSettingsDataFormCustomItem::createItem() + { + return new MsgSettingsDataFormCustomItem(*this); + } + +HbWidget* MsgSettingsDataFormCustomItem::createCustomWidget() + { + HbDataFormModelItem::DataItemType + itemType = + static_cast (modelIndex().data( + HbDataFormModelItem::ItemTypeRole).toInt()); + + switch (itemType) + { + case HbDataFormModelItem::CustomItemBase + 1: + { + //custom button + QString + str = + modelIndex().data(HbDataFormModelItem::KeyRole).toString(); + HbPushButton *button = new HbPushButton(str); + + return button; + } + default: + return 0; + } + } + +bool MsgSettingsDataFormCustomItem::canSetModelIndex(const QModelIndex &index) const + { + HbDataFormModelItem::DataItemType itemType = + static_cast (index.data( + HbDataFormModelItem::ItemTypeRole).toInt()); + + if (itemType >= HbDataFormModelItem::CustomItemBase && itemType + <= HbDataFormModelItem::CustomItemBase + 10) + { + return true; + } + return false; + } + +void MsgSettingsDataFormCustomItem::restore() + { + HbDataFormModelItem + * mItem = + static_cast (itemView()->model())->itemFromIndex( + modelIndex()); + + if (mItem) + { + QString str = mItem->contentWidgetData("text").toString(); + HbPushButton *button = static_cast(dataItemContentWidget()); + if (button) + { + button->setText(str); + } + } + }